Syllabus: CSCI 451 - Design and Analysis of Algorithms
Course Description:
Principles and concepts for design and analysis of correct and efficient algorithms, including greedy algorithms, divide-and-conquer methods, and dynamic programming. Time and space complexity of algorithms, including amortized analysis.
Prerequisites:
CSCI 2310 Discrete Mathematics for Computer Science, CSCI 357 Data Structures.
Textbook:
- Algorithms, Dasgupta, Papadimitriou, Vazirani. 2nd Edition. McGraw Hill, ISBN 0073523402.
- Foundation of Algorithms Using C++ Pseudocode. Third edition. Jones & Bartlett Learning. ISBN 0763706205.
Course Learning Objectives:
- Design algorithms using the divide-and-conquer approach,
- Analyze the design and time complexity of basic graph algorithms.
- design algorithms using the greedy technique,
- design algorithms using a dynamic programming approach,
Course Topics:
- Big-O Notation: Time and Space Complexity
- Divide-and-Conquer Algorithms
- Graph Algorithms
- Greedy Algorithms
- Dynamic Programming
Course Grading
| Attendance |
15% |
| Homework |
25% |
| Programming Assignments |
20% |
| Exams |
40% |