University of Denver Home Page | DU Department of Computer Science Home Page | Home Page for Catherine Durso |
Instructor:
Catherine Durso |
TALan Lin |
In Advanced Algorithms and Data Structures, we will develop alogrithms using several fundamental approaches: incremental algorithms, divide and conquer algorithms, dynamical programming, and greedy algorithms. We will analyze the algorithms for correctness and for resource requirements, primarily asymptotic running time. We will also anaylze a range of data structures, including a variety of trees and heaps. Additional topics will be addressed as time permits and interest dictates.
We will take a rigorous approach to the material, proving correctness and efficiency claims. Much of your efforts in the class will devising algorithms or data structures to perform specified tasks with the required efficiency, and demonstrating that the construct you have devised fits the criteria. In order to address a wide range of problems, few of these solutions will be in the form of working code. Often, you will use pseudocode, augmented by exposition.
The lecture is held in JGH at 7:00-8:50 on Tuesday and Thursday.
Homework will be assigned and due approximately every
two weeks.
I will assign a programming project requiring modest amounts of code, but, I hope, considerable thought. Alternatively, if you have a project you would like to pursue and it provides an appropriate exercise in the course material, you may arrange to use it as your project for the course. If you chooose this option, please arrange it with me not later than the week in which I assign the default project.
There will be two exams in this course. The midterm exam will, tentatively, be given on Thursday, May 4, in class. The cumulative final exam will be due on Tuesday, June 6, between 8:00 and 9:45 p.m. in our regular classroom. This is the date determined by the registrar (see DU 2006 Spring Exam Schedule).
The contributions of each type of work to your final grade are as follows:
evaluation type | total percent contribution |
---|---|
Homework | 30% |
Project | 15% |
Midterm | 25% |
Final Exam | 30% |
Grade cut-offs are as follows: A (90 to 100 points), B (78 to 89 points), C (66 to 77 points), D (51 to 65), F (50 and less). Further curving may only improve your grade.
Late Policy: A 5/100 marks deduction penalty will be applied every 24 hours after the due date. In special circumstances the penalty may be revoked, but I reserve the right to do so.
When you turn in work in this course, you are implicitly agreeing that you have followed the rules for collaboration set forth for that assignment. You should not view in any way another person's assignment, nor should you possess electronic copies or hard copies of another person's assignment before that assignment has been graded and returned.
If you are stuck with a problem, you are strongly encouraged to seek my help. I encourage you to discuss homework problems with your colleagues. However, you should write your own version of all solutions, whether you originated the method or not. If another student or a published source provided the main ideas of your solution, credit the source. The problems are designed for solution by deep thought, rather that web searches. Heavy reliance on literature searches will not get you the full benefit of the exercises.
The programming project may be undertaken individually, or in a group of two. You may use C++. If you prefer another language, please talk with me. All code should be the work of the individual or group. If you would like to use outside resources, please discuss those with me prior to including them.
The exams, whether in-class or take-home, must be the work of the individual, using at most the course text. On take-home questions, you may use references to review material for prerequisites for this course.
Please make sure you have read and understood the information available in the following web page:DU Honor Code
The calendar below contains links to homework assignments, programming projects, examples from class, and important dates for you to keep in mind.
Mon | Tues | Wed | Thur | Fri |
---|---|---|---|---|
March | ||||
March 27 | March 28 | March 29 | March 30 | March 31 |
April | ||||
April 3 |
April 4 problem set 1 posted |
April 5 |
April 6 | April 7 |
April 10 |
April 11 problem set 1 due |
April 12 |
April 13 | April 14 |
April 17 |
April 18 | April 19 |
April 20 | April 21 |
April 24 |
April 25 | April 26 | April 27 | April 28 |
May | ||||
May 1 | May 2 | May 3 | May 4 midterm |
May 5 |
May 8 |
May 9 timing function for C++ programming project |
May 10 |
May 11 | May 12 |
May 15 |
May 16 | May 17 | May 18 | May 19 |
May 22 |
May 23 | May 24 |
May 25 | May 26 |
May 29 |
May 30 | May 31 | ||
June | ||||
June 1 |
June 2 |
|||
June 5 | June 6 final 8:00-9:45 JGH 316 |
June 7 |
June 8 | June 9 |
The cumulative final exam will be given on Thursday, June 6, from 8:00 to 9:45 p.m.