CS 511 Advanced Algorithm Analysis
Department of Computer Science, IIU

Fall 2010

Section M

 

The fundamental beliefs underlying the Honor Code of my classroom are that my student has the right to live in an academic environment that is free from the injustices caused by any form of intellectual dishonesty, and that the honesty and integrity of all members of my classroom contribute to its pursuit for Truth.

 

Course Structure

Lectures = 1 [HEC Recommended 3]        Labs = 0        Credit hours = 3

 

Prerequisites

1. Discrete Mathematics or equivalent.    2. Data Structures or equivalent.    3. One undergraduate course in Algorithms or Complexity Theory is required.

 

Course Objectives

The goal of this course is to develop the appropriate background, foundation and experience for advanced study in Computer Science. Students will develop the necessary skills from both a theoretical perspective as well as applying their knowledge on various problem sets. Particularly, the course objectives: Develop mathematical skills for algorithm design, analysis, evaluation and computational cost; Develop the skills to design and implement efficient programming solutions to various problems; Develop data structure techniques for various aspects of programming; Develop applicational knowledge of dynamic programming, graphs, hash tables, sorting, searching and tree structures.

 

Course Outline

Advanced algorithm analysis including the introduction of formal techniques and the underlying mathematical theory. NP-completeness. Search Techniques. Randomized Algorithms. Heuristic and Approximation Algorithms. Topics include asymptotic analysis of upper and average complexity bounds using big-O, little-o, and theta notation. Fundamental algorithmic strategies (brute-force, greedy, divide-and-conquer, backtracking, branch-and-bound, pattern matching, and numerical approximations) are covered. Also, include are standard graph and tree algorithms. Additional topics include standard complexity classes, time and space tradeoffs in algorithms, using recurrence relations to analyze recursive algorithms, non-computable functions, the halting problem, and the implications of non-computability. Algorithmic animation is used to reinforce theoretical results. Upon completion of the course, students should be able to explain the mathematical concepts used in describing the complexity of an algorithm, and select and apply algorithms appropriate to a particular situation.

 

Class Time

Thursdays, 4:15 PM - 7:15 PM

 

Texts

Our Primary Source

Thomas Cormen,  Charles Leiserson,  Ronald Rivest, and  Cliff Stein,  Introduction to Algorithms, McGraw Hill Publishing Company and MIT Press, 2009 (3rd Edition).

Our Secondary Source

Michael T. Goodrich and Roberto Tamassia, Algorithm Design: Foundations, Analysis, and Internet Examples, John Wiley & Sons, Inc., 2002.

Gilles Brassard, Fundamentals of algorithmics, Englewood, N.J. : Prentice Hall, c1996.

Robert Sedgewick, Algorithms, Reading, Mass : Addison-Wesley, c1983.

Alfred V. Aho, Data structures and algorithms, Reading, Mass, Addison-Wesley, c1983.

HEC Recommended Text Books/Reference Books:

T. H. Cormen, C.E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms /3E, MIT Press, 2009.

Vijay V. Vazirani, Approximation Algorithms, Springer, 2004.

Mikhail J. Atallah (Editor), Algorithms and Theory of Computation Handbook, CRC Press, 1998.

 

Ethics

The Honor Code will be strictly enforced in the classroom. It is a violation to represent joint work as your own or to let others use your work; always acknowledge any assistance you received in preparing work that bears your name. You are expected to work independently unless explicitly permitted to collaborate on a particular assignment. It is not a violation to discuss approaches to problems with others; however, it is a violation to use wording or expressions in your assignments that have been written by others without acknowledging the source.

Tentative Schedule

Instr.   Topics Class Strength
1. Sept. 16 Intro: Problem, complexity, writing pseudocodes using addition as an example.  
2. Sept. 23 Intro: Automata, computability, and complexity theories.  
3. Sept. 30 Insertion sort, complexity analysis 29
4. Oct.  07 Asymptotic behavior 27
5. Oct. 14 Efficiency: formal and mathematical definitions and properties 30
6. Oct.  21 Growth functions, bounding summations, recurrences, graphs, trees, etc. 27
7. Oct.  28 Dynamic programming, matrix chain multiplication problem. 30
8. Nov. 04 Convex hull, Graham's scan 31
9. Nov. 11 Midterm  
10. Nov. 18 Midterm Solutions; Amortized Analysis  
11. Nov. 25 Amortized Analysis; Aggregate Analysis 27
12. Dec. 02 Accounting and Potential Methods 24
13. Dec. 09 Dynamic Table 31
14. Dec. 16 Problems  
15. Dec. 23 Dynamic Tables; Problems 25
16. Dec. 30 Problems 26
17. Jan. 06 Revision; something about final 19
18. Jan. 13 No Class  
19. Jan. 20 No Class  
20. Jan. 24 Final  

Instructions/Lectures

 

Exams

Midterm November 11, 2010 Class Time
Final January 24, 2011 Evening Session

 

Points Distribution

Quizzes/Homeworks

15%
Midterm 25%
Final 60%

 

Grades

 

A+ 0
A 5
B+ 1
B 3
C+ 2
C 3
D+ 1
D 5
F 8

 

CS 511 Advanced Algorithm Analysis Fall 2010

You can do it if you try!

If you wish to succeed in this course
If you wish to do better
If you wish to fail in this course

 


 
Back