CS 511 Advanced Algorithm Analysis
Department of Computer Science, IIU

Fall 2010

Section W

 

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

Fridays, 2:30 PM - 5:30 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. 17 Intro: Problem, complexity, writing pseudocodes using addition as an example.  
2. Sept. 24 Intro: Automata, computability, and complexity theories. 11
3. Oct. 01 Insertion sort, complexity analysis  
4. Oct. 08 Asymptotic behavior 12
5. Oct. 15 Efficiency: formal and mathematical definitions and properties 15
6. Oct. 22 Growth functions, bounding summations, recurrences, graphs, trees, etc. 17
7. Oct. 29 Dynamic Programming 15
8. Nov. 05 Matrix Chain Multiplication Problem 13
9. Nov. 12 Convex hull; Graham scan 12
10. Nov. 19 Correctness of Graham scan 15
11. Nov. 26 Midterm  
12. Dec. 03 Midterm Solution; Quiz 14
13. Dec. 10 Amortized Analysis; Aggregate Analysis 16
14. Dec. 17 Accounting and Potential Methods 11
15. Dec. 24 Dynamic Tables 14
16. Dec. 31 Dynamic Tables 12
17. Jan. 07 Revision; Something about final 13
18. Jan. 14 No Class  
19. Jan. 21 Final  

Instructions/Lectures

 

Exams

Midterm November 26, 2010 Class Time
Final January 21, 2011 Evening Session

 

Points Distribution

Quizzes/Homeworks

15%
Midterm 25%
Final 60%

 

Grades

 

A+ 0
A 4
B+ 0
B 3
C+ 0
C 0
D+ 0
D 0
F 8

 

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