CS3304 Analysis of Algorithms
Syllabus
Review of Data Structures and Algorithms
Divide and Conquer Algorithms
Graphs (Part 1)
Graphs (Part 2)
Dynamic Programming
Linear Programming and Reductions
Limits to Computation (Part 1)
Limits to Computation (Part 2)
Resources
Task
Number
Percentage of Final Grade
Per Item
Discussions
8
20%
2.5%
Assignments
4
20%
5%
Journals
8
10%
1.25%
Graded Quiz
2
20%
10%
Final Exam
1
30%
30%
Objectives
Articulate the characteristics and design of fundamental patterns of algorithms
Implement algorithms using the Java programming language
Understand the characteristics of the different algorithm designs including:
Brute Force
Backtracking
Branch and Bound
Greedy
Divide and Conquer
Linear Programming
Dynamic Programming
Asymptotically analyze algorithms
Describe and discuss theoretical computer science concepts such as hard problems, NP completeness, and the halting problem.
Textbooks
Schaffer, C.A. (2011). A Practical Introduction to Data Structures and Algorithms Analysis (3.1 ed.). Blacksburg, VA: Virginia Tech University, Department of Computer Science. Available at http://people.cs.vt.edu/~shaffer/Book/C++3e20100119.pdf
Dasgupta, S., Papadimitriou, C.H., & Vazirani, U.V. (2006). Algorithms. Berkeley, CA: University of California Berkeley, Computer Science Division. Available at http://algorithmics.lsi.upc.edu/docs/Dasgupta-Papadimitriou-Vazirani.pdf
November 15, 2024
November 15, 2024
Back to top