![]() |
|
Instructor: Monica Nicolescu | ||||||||
|
||||||||
Teaching assistant: Kai Xu | ||||||||
|
||||||||
Time and Place |
||||||||
| Tuesday, Thursday: 1:00pm-2:15pm, SEM 326 | ||||||||
Required Textbook |
||||||||
| Introduction to Algorithms, Second Edition, 2001. Authors: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein |
Course description |
| The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want to (a) find an algorithm to solve the problem, (b) prove that the algorithm solves the problem correctly, and (c) prove that we cannot solve the problem any faster. Designing an algorithm for a computational problem involves knowledge of the problem domain, a thorough knowledge of the data structures that are available and suitable and no small measure of creativity. This course concentrates on the above problems, studying useful algorithmic design techniques, and methods for analyzing algorithms. |
Prerequisites |
| CS 365. Good knowledge of data structures (such as linked lists and trees) and a good mathematical background are required. |
Syllabus |
| Following are the topics that will be discussed, listed in the approximate order in which they will be covered. |
|
Class schedule |
| The topics presented and the lecture notes for each class will gradually be posted below as we cover them in the class. The assignments and their due dates will also be posted in this table. Please check this web page regularly for updates. |
| Date | Topic | Readings | Assignments |
|
Jan 18 |
Introduction | Chapter 1 | --- |
|
Jan 20 |
Asymptotic notations, recurrences | Chapter 3, Appendix A | --- |
|
Jan 25 |
Solving recurrences | Chapter 4 | Hw1 out |
|
Jan 27 |
Sorting | --- | --- |
|
Feb 1 |
Sorting: Quicksort | Chapter 7 | Hw2 out |
|
Feb 3 |
Sorting: Quicksort | Chapter 7 | --- |
|
Feb 8 |
Homework problem review, exercise session | --- | Hw3 out |
|
Feb 10 |
Sorting in linear time | Chapters 7, 9 | --- |
|
Feb 15 |
Heaps | Chapter 6 | Hw4 out |
|
Feb 17 |
No class | --- | --- |
|
Feb 22 |
Binary search trees | --- | Hw 5 out |
|
Feb 24 |
Red-black trees | --- | --- |
|
Mar 1 |
Augmenting data structures | --- | --- |
|
Mar 3 |
Mid-term review | --- | --- |
|
Mar 8 |
MID-TERM | --- | --- |
|
Mar 10 |
Mid-term discussion | --- | --- |
|
Mar 15 |
Augmenting Data Structures, Hash Tables | --- | --- |
|
Mar 17 |
Hash Tables | --- | Hw6 out |
|
Mar 22 |
Dynamic Programming | Chapter 15 | --- |
|
Mar 24 |
Dynamic Programming | Chapter 15 | Hw7 out |
|
Mar 29 |
Spring Break - no class | --- | --- |
|
Mar 31 |
Spring Break - no class | --- | --- |
|
Apr 5 |
Dynamic Programming | Chapter 15 | --- |
|
Apr 7 |
Dynamic Programming, Greedy Algorithms | Chapters 15, 16 | --- |
|
Apr 12 |
Greedy Algorithms | Chapter 16 | --- |
|
Apr 14 |
Greedy Agorithms, Graph Algorithms: BFS | Chapters 16, 22 | --- |
|
Apr 19 |
Graph Algorithms: DFS, Topological Sort, Strongly Connected Components | Chapter 22 | Hw8 out |
|
Apr 21 |
Graph Algorithms: Minimum Spanning Trees | Chapters 22, 23 | --- |
|
Apr 26 |
Shortest Paths Algorithms: Single Source Shortest Paths | Chapter 24 | Hw9 out |
|
Apr 28 |
Shortest Paths Algorithms: All Pairs Shortest Paths | Chapter 25 | --- |
|
May 3 |
Review Lecture | --- | --- |
Assignments and grading |
|||||||||||||||||||||||||||
|
Homework assignments: There will be 10 homework assignments. The homeworks and their due dates will be posted on the course web page. Homeworks are due on their specified date at the beginning of the class. Some assignments will contain extra-credit problems and some may have a programming component. For each assignment the undergraduate students are required to solve the problems labeled U-required, while graduate students are required to solve all the problems. For the assignments that include extra-credit problems, the undergraduate students can earn extra-credit by solving either the extra-credit or the graduate level problems. Solutions to all the problems assigned will be provided. Please make sure that you have a CS department computer account - you will need it for the programming assignments. You can obtain a CS department account by filling out the account registration form at the CS department. Late policy: each late homework will incur a 10% penalty for each day of delay, but no homeworks may be submitted later than 3 days after the deadline. Academic integrity: Students are encouraged to study together, however each student must individually prepare his/her solutions. Cheating or plagiarism are not permitted and will be sanctioned according with the UNR policy on Academic Standards. You should carefully read the section on Academic Dishonesty found in the UNR Student Handbook (copies of this section are on-line). Your continued enrollment in this course implies that you have read it, and that you subscribe to the principles stated therein. Exams: there will be one mid-term and one final exam. Both exams will be closed books, closed notes. Permission to take exams on other dates than scheduled will not be given, except for extreme medical emergencies.
Grading policy (tentative, subject to change):
Grading scheme (tentative, subject to change):
|
Announcements |
Announcements regarding the assignments or other updates will be posted on the class web page and also sent by e-mail. Please check your UNR e-mail account, as this is the address I will use to contact you. If needed, implement e-mail forwarding.
|
|
Created by: Monica NICOLESCU (e-mail:monica@cs.unr.edu) Last update: 04/12/2004 |