Cleveland State University Department of Electrical Engineering and Computer Science CIS 390: Introduction to Algorithms Catalog Description: CIS 390 Introduction to Algorithms Pre-requisite: CIS 265 and MTH 220 This course offers a systematic study of algorithms and their complexity, including sorting, searching, selecting, and algorithms for graphs. Algorithm design methods, including greedy, divide-and-conquer, and dynamic programming are also covered. NP-complete problems will be briefly introduced as the topic of computational complexity. Algorithm implementation is required as a form of programming projects. Textbook: Anany Levitin, Introduction to The Design and Analysis of Algorithms, 3/E, Pearson, ISBN: 0-13-231681-1-8 Coordinator: Dr. Haodong Wang Phone: 216-687-4730 Email: hwang@cis.csuohio.edu Expected Outcomes: At the end of this course, a student should be able to: 1. Have a solid concept of algorithm design and analysis; 2. Understand P, NP, and NP-Complete; 3. Solve simple/moderate difficult algorithmic problems arising in applications; 4. Implement the algorithm design by using high-level programming languages. Fulfillment of CS Program Objectives and Outcomes: Objectives: 1. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution 3. An ability to apply math foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices Outcomes: (a) An ability to apply knowledge of computing and mathematics appropriate to the program’s student outcomes and to the discipline (b) An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution (j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices. Contribution of Course to Meeting the Professional Component: Math & Basic Science: 2 credit; Engineering Topics: 1 credits; General Education: 0 credit Prerequisites by Topic: Data Structures and algorithms, Discrete Mathematics Topics: 1. Class introduction 2 2. Algorithmic Problem Solving and Some Representative Problems 3. Analysis Framework and Asymptotic Notations 3 4. Non-recursive algorithms, Recursive algorithms, and Bruteforce algorithms 5. Exhaustive search, Depth-first and Breadth-first search 4 6. Decrease-by-one, Decrease-by-a-Constant-Factor, Variablesize-decrease 7. Divide-and-Conquer, and Closest pair 5 8. Presorting, Balanced search trees, and Heap sort 5 9. Dynamic Programming I II 3 10. Prim’s, Dijkstra’s, Huffman Codes 5 11. Lower-bound arguments, Decision trees 3 12. P, NP and NP-complete problems, Numerical algorithms 3 13. Final exam 3 Total Computer Usage: Linux 3 3 3 45