University of Denver Home Page | DU Department of Computer Science Home Page | Home Page for Catherine Durso |
Instructor:Catherine Dursocdurso"AT"cs"DOT"du"DOT"edu )
Office: JGH 106 303 871 3598 Office Hours: Tuesday 2:00-4:00pm, Thursday 1:00-3:00pm and by appointment |
passuell"AT"cs"DOT"du"DOT"edu
)
This course presents some fundamental data structures, including lists, stacks, queues, hashes, and binary trees. Students will master a number of algorithms including Mergesort and Quicksort. We will study techniques for analyzing the running time and space requirements of these algorithms, and of other algorithms based on the data structures. The goals for the course are for the students to analyze running times of algorithms, and to design algorithms using appropriate data structures to solve non-trivial computing problems.
The material in this course should provide students tools to approach more sophisticated programming problems than previous courses have presented.
There will be approximately weekly assignments of pencil-and-paper exercises. The assignments will consist of basic exercises, not to be handed in, with solutions available, and a small number of exercises to be completed and handed in.
There will be a programming assignment in which students implement and test applications of techniques adressed in class. These assignments may be done in C, C++, or Java.
The lecture for section 1 is held 10:00-11:50am MW in JGH 316.
The midterm for this section is on Wednesday, October 17, at 10:00-11:50am
The final for this section is on Monday, November 19, at 10:00-11:50am
The lecture for section 2 is held 10:00-11:50 TR in JGH 216.
The final for this section is on Tuesday, November 20, at 10:00-11:50am
The midterm for this section is on Thursday, October 18, at 10:00-11:50am
Introduction to Algorithms, ed. 3, Cormen, Leiserson, Rivest, and Stein
homework | 30% total |
in-class exam | 20% |
programming assignment | 30% |
final | 20% |
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. In general,
You may certainly type your solutions, however, handwriting is acceptable as long as I find it to be readable, understandable and organized. Please turn in paper copies in class on the due date. Assignments will be posted here.
Note that solutions to some exercises and problems can be found on links from the online supplement to the text . You may consult these solutions.
Exercises appear in the text after most sections. They are labeled chapter.section-exercise. For example, the third exercise from the second section of chapter 5 is 5.2-3.
Problems are listed at the end of each chapter. They are labeled with the chapter and the problem number. For example, the sixth problem from chapter 3 is 3-6.
Assignments will typically include a few exercises for you to do as warmup, not to be turned in, and one or two problems to hand in.
Exercise 2.1-1, |
Exercise 2.2-1, 2.2-2 |
problem 1 10 points |
Exercise 2.3-1, 2.3-5, 2-4 |
1. (5 points) Problem 2.3-4 |
2. (5 points) Problem 2.3-7 |
Exercise 3.1-1, 3.1-2, 3.2-3(from first principles) |
1. (5 points) Problem 3-2 |
1. (5 points)Problem 3-4 a, c, d, h |
Exercise 4.1-1, 4.1-5, 4.4-6, 4-2a |
1. (5 points) Problem 4.4-4 |
1. (5 points) 4-1 |
Exercise 5.2-2, 5.2-5, 10.1-1 |
1. (5 points) Problem 5.3-3 (hint: consider n=3 carefully) |
2. (5 points) Problem 10.1-2 |
3. (5 points) Suppose you start with an array of size 1. You insert n elements using the following strategy: Whenever the array is full, you allocate an array of twice the size of the current array and write the current elements into the new array. If there are k elements in the array, this is k writes. Give a big-Theta bound on the total number of 'writes' required to insert n elements. (Hint: consider n=2^m.) |
Exercise 10.1-1, 10.1-3, 10.1-4,10.2-1, 10.2-2,10.3-1, 10.4-1,10.4-2,10.6-6 |
1. (5 points) 10-1 Please interpret x as a node, k as a value, SUCCESSOR and PREDECESSOR as the next larger and next smaller values, and use sentinel node implementation. |
1. (5 points) 11.2-2 |