COURSE DESCRIPTION

NAME OF INSTITUTION Lahore Garrison University
PROGRAM (S) TO BE EVALUATED Computer Science , Spring 2023
Course Description : This is a graduate level course. The major objective of this course is providing comprehensive knowledge of modern computer algorithms and solving scientific and engineering problems efficiently and accurately. The students will be guided, how to analyze complex algorithms comparing efficiencies of these algorithms. Students will not only be taught the design of the existing algorithms but on the other hand it will be focused to teach them designing techniques using rigorous mathematical approaches. The students will be motivated to think about procedures solving real world problems optimally and correctly. Real world problem will be taken as examples to create feelings about the usefulness of this course.
Course Code CSC
Course Title Advanvce Algorithm Analysis
Credit Hours 3+0
Prerequisites by Course(s) and Topics
Assessment Instruments with Weights (homework, quizzes, midterms, final, programming assignments, lab work, etc.) SESSIONAL (Quizzes, Assignments, Presentations) =25 %
Midterm Exam =25 %
Final Exam = 50%
Course Coordinator Dr. Tahir Alyas
URL (if any)
Current Catalog Description
Textbook (or Laboratory Manual for Laboratory Courses)
Reference Material
Course Goals The course goal of "Advance Analysis of Algorithm" is to enable students to develop a deep understanding of advanced algorithms and their analysis techniques. The course aims to build on the foundational knowledge of algorithms and data structures acquired in earlier courses and provide students with the ability to analyze and design more complex algorithms for a wide range of computational problems. Through this course, students will learn how to apply various techniques for algorithm analysis, such as asymptotic analysis, recurrence relations, and amortized analysis. They will also gain an understanding of important algorithm design paradigms, such as divide and conquer, dynamic programming, and greedy algorithms, and learn how to apply them to solve real-world problems. The course will also cover advanced topics in algorithm analysis, such as randomized algorithms, graph algorithms, and network flow algorithms. Students will learn how to analyze the efficiency and correctness of these algorithms and apply them to solve complex problems in various domains, including computer science, engineering, natural sciences, and social sciences. Overall, the course goal is to equip students with the knowledge and skills necessary to analyze and design advanced algorithms and enable them to apply this knowledge to solve complex computational problems in a wide range of domains.
Course Learning Outcomes (CLOs):
At the end of the course the students will be able to:DomainBT Level*
Students should develop a sound theoretical understanding of advanced algorithms and practical problem solving skills using them. BT 1
Analyze average and worst-case running times of given algorithm. BT 1
Students should gain a good understanding on a wide range of advanced algorithmic problems, their relations and variants, and application to real-world problems BT 2
Analyze and design algorithms on further advanced topics such as computational geometry, operations research, cryptography, number theoretic, algorithms etc. BT 1
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain
Topics Covered in the Course, with Number of Lectures on Each Topic (assume 15-week instruction and one-hour lectures)
WeekLectureTopics Covered
Week 1 1 Introduction to course
2 Logic and Proving Techniques
Week 2 3 Asymptotic order of growth
4 Recursive Exponentiation
Week 3 5 Sorting Algorithm: Brute Force Approach
6 Design of Algorithms using Brute Force Approach
Week 4 7 Designing Algorithms using Divide-and-Conquer Multiplication, recurrence relations
8 Generating Permutations, 0-1 Knapsack Algorithm Analysis
Week 5 9 Greedy Algorithms: Analysis of Merge-sort and Quick Sort Algorithm
10 Substitution Method, Recursion-Tree Method, Master Therom
Week 6 11 Dynamic Programming
12 Dynamic Programming for Solving Optimization Problems
Week 7 13 Linear Vs Non-linear Data Structures
14 Matrix Chain Multiplication Problem
Week 8 1 hours Mid Term
Week 9 15 Graph Theory and Types of Graphs
16 BFS and DFS
Week 10 17 Breadth-first search, Dijkstra’s algorithm,
18 Greedy Algorithms
Week 11 19 Minimum spanning trees, Huffman encoding,
20 Horn formulas,
Week 12 21 set cover (approximation algorithm)
22 Dynamic Programming
Week 13 23 Shortest paths in DAGs (revisited),
24 longest increasing subsequence
Week 14 25 edit distance, knapsack problem
26 Complexity Theory
Week 15 27 Turing machine
28 P and NP, undecidability
Week 16 29 Halting problem
30
Week 17 2 hours Final Term
Laboratory Projects/Experiments Done in the Course
Programming Assignments Done in the Course
Instructor Name Dr. Tahir Alyas
Instructor Signature
Date