Cleveland State University Department of Electrical Engineering and Computer Science

advertisement
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
Download