Design and Analysis of Algorithms - Syllabus

Course Overview and Structure

Embark on a profound academic exploration as you delve into the Design and Analysis of Algorithms course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2065 Syllabus, this course (CSC-303) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 80+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Synopsis: Methods and tools for analyzing different algorithms. Different approaches of designing efficient algorithms like divide and conquer paradigm, greedy paradigm, dynamic programming. Algorithms pertaining various problems like sorting, searching, shortest path, spanning trees, geometric problems etc. NP-complete problems.
Goal:   Competency in analyzing different algorithms encountered. Ability to conquer the problem with efficient algorithm using the algorithm development paradigms.

Units

Key Topics

  • Compiler Structure
    UN-1.1

    Analysis and Synthesis Model of Compilation, including different sub-phases within analysis and synthesis phases.

  • Compiler Concepts
    UN-1.2

    Basic concepts related to Compiler, including interpreter, simple One-Pass Compiler, preprocessor, macros, symbol table, and error handler.

  • Search Structures
    UN-1.2.1

    Review of search structures including heaps, balanced trees, and hash tables.

Key Topics

  • Lexical Analysis
    UN-2.1

    The process of breaking the source code into a series of tokens. It involves the specification and recognition of tokens, input buffer, and finite automata relevant to compiler construction.

  • Syntax Analysis
    UN-2.2

    The process of analyzing the syntax of the source code. It involves basic parsing techniques, problem of left recursion, left factoring, ambiguous grammar, top-down parsing, bottom-up parsing, and LR parsing.

  • Semantic Analysis
    UN-2.3

    The process of analyzing the meaning of the source code. It involves static and dynamic checks, typical semantic errors, scoping, type checking, syntax directed definitions, and translation.

Key Topics

  • Symbol Table Design
    UN-3.1

    Function of Symbol Table, Information provided by Symbol Table, Attributes and Data Structures for symbol table

  • Run-time Storage Management
    UN-3.2

    Managing storage during runtime

  • Database Recovery
    UN-3.3

    Failure Classification, The Storage Hierarchy, Transaction Model, Log-Based recovery, Buffer Management, Checkpoints, Shadow Paging, Failure with Loss of Non-volatile Storage.

  • Querying Role Information
    UN-3.4

    Querying role information involves retrieving information about roles and their associated privileges. This topic covers the different methods for querying role information.