Introduction: The senior/graduate-level course surveys important classes of algorithms used in computer science and engineering. It introduces formal techniques for analyzing the complexity and computability of algorithms. It also studies and analyzes some commonly-used data structures and algorithms, with primary emphasis on the development of efficient implementation. The course covers them in considerable depth and discusses engineering issues with a careful explanation on the mathematical proof.
Prerequisites: CSCE 3193 Programming Paradigms (C or higher) and MATH 2603 Discrete Math (C or higher)
Required Textbook:
Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein, The MIT Press, 3rd edition, 2009, ISBN 978-0262033848
Recommended Reference:
Algorithms, Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 4th edition, 2010, ISBN 978-0321573513
The Art of Computer Programming, Vol. 1: Fundamental Algorithms, Donald E. Knuth, Addison-Wesley Professional; 3rd edition, 1997, ISBN 978-0201896831
Course Goal: Analyze the complexity and performance of algorithms; Familiarize with major algorithms and data structures; Apply important algorithmic design paradigms and methods of analysis; Synthesize efficient algorithms in common engineering design situations.