Design and Analysis of Algorithms - Syllabus
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.
Units
1.1 Algorithm Analysis: worst, best and average cases, space and time complexities. Mathematical background: asymptotic behavior, solving recurrences.
1.2 Data Structures Review: linear data structures, hierarchical data structures, data structures for representing graphs and their properties. Search structures: heaps, balanced trees, hash tables.
Unit 2
2.1 Divide and Conquer: Concepts, applications, sorting problems(quick, merge), searching (binary), median finding problem and general order statistics, matrix multiplications.
2.2 Greedy Paradigm: Concepts, applications, Knapsack problem, job sequencing, Huffman codes.
2.3 Dynamic Programming: Concepts, applications, Knapsack problem, longest common subsequence, matrix chain multiplications.
Unit 3
3.1 Graph Algorithms: breadth-first and depth-first search and their applications, minimum spanning trees (Prim's and Kruskal's algorithms), shortest path problems (Dijkstra's and flyod's algorithms), algorithm for directed acyclic graphs (DAGs).
3.2 Geometric Algorithms: Concepts, polygon triangulation, Convex hull computation.
3.3 NP Completeness: Introduction, class P and NP, cooks theorem, NP complete problems: vertex cover problem.
3.4 Introductions: Randomized algorithms concepts, randomized quick sort, approximation algorithms concepts, vertex cover problem.