3 credits | Prepared by Ronnie W. Smith, August 2018 |
P: CSCI 2530. Formal techniques to support the design and analysis of algorithms. Asymptotic complexity bounds, techniques of analysis, and algorithmic strategies.
This course applies techniques and knowledge gained from the discrete mathematics and data structures courses to fundamentals of algorithm design and analysis. The focus is on algorithms that provide an efficient solution to a computational problem. Efficiency refers to optimizing the time and space cost required during execution of the algorithm. While algorithms are ultimately implemented as computer programs, design and analysis fundamentals are independent of any particular implementation language.
Introduction to Algorithms , Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, 3rd edition, MIT Press, 2009.
Encylopedic coverage of algorithms that can also serve as a reference for a computing professional. After careful coverage of the first four chapters, instructors can pick and choose from many different topics. Common choices have included sorting, dynamic programming and greedy algorithms, graph algorithms, computational geometry, and NP-completeness fundamentals.
Grading is a based on a combination of homework assignments, quizzes/exams, and a comprehensive final exam. Representative weightings are 25% for homework, 50% for the quizzes/exams, and 25% for the final exam.
Grade | Meaning |
---|---|
A | Achievement substantially exceeds basic course expectations |
A− | |
B+ | |
B | Achievement exceeds basic course expectations |
B− | |
B+ | |
C | Achievement adequately meets basic course expectations |
C− | |
D+ | |
D | Achievement falls below basic course expectations |
D− | |
F | Failure – achievement does not justify credit for course |