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. |
|
Lectures = 1 [HEC Recommended 3] Labs = 0 Credit hours = 3
1. Discrete Mathematics or equivalent. 2. Data Structures or equivalent. 3. One undergraduate course in Algorithms or Complexity Theory is required.
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.
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.
Thursdays, 4:15 PM - 7:15 PM
Thomas Cormen, Charles Leiserson, Ronald Rivest, and Cliff Stein, Introduction to Algorithms, McGraw Hill Publishing Company and MIT Press, 2009 (3rd Edition).
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.
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.
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.
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 |
Midterm | November 11, 2010 | Class Time |
Final | January 24, 2011 | Evening Session |
Quizzes/Homeworks |
15% |
Midterm | 25% |
Final | 60% |
A+ | 0 |
A | 5 |
B+ | 1 |
B | 3 |
C+ | 2 |
C | 3 |
D+ | 1 |
D | 5 |
F | 8 |
If you wish to succeed in this course
If you wish to do better
If you wish to fail in this course