CS800: Homework and Reading Assigments
This webpage serves as an outline of the topics covered in each class.
You will also find links to the handouts here.
Announcements
-
Our last slides (and pdf).
-
Remember that for you may prepare one double-sided letter-size "cheat-sheet" for the final exam. This cheat-sheet must be prepared by
you and cannot be photopied. You will have to hand it in at the end of the exam - make a copy beforehand
if you want to keep it for your records.
-
The final exam will take place on Saturday, May 19th, 2007, 12:30-2:30pm in room 70-1445. It will cover mostly areas discussed after
the midterm but you should have a reasonable understanding of the earlier topics as well. Here is a
practice final exam and the solutions.
-
To make our last week a little less crammed, I am cancelling the last quiz and homework to give you more time to prepare
for your final exam. Here is the last homework from the Winter quarter - you are welcome to practice on it,
discuss it between yourselves and with the tutors.
-
A boredom-prevention mechanism: bonus homework problems, due Thursday, May 17th, 4pm.
Your overall
homework score will be computed as follows: 1. Let x be the average of your five highest homework scores.
(For the purposes of this algorithm, 0% for cheating is the highest possible score.)
2. Let y be your bonus score from this week's homework. 3. Return x + y/10.
Example: If you scored 90% on every homework and you get 100% on the bonus problems, your overall score is 90%+10%=100%.
-
Today's slides (also pdf) are now available.
-
Homework 7 is available, it is due Tuesday, 5/15/07, 4pm.
-
Quiz 6 will take place in class on Tuesday, May 8th, 4-4:10pm. Study graph algorithms (topological sort, shortest paths, minimum spanning
trees, Ford-Fulkerson), and the O(n log n) algorithms for the closest pair of points and convex hull.
-
Office hours shortened on Tuesday: due to a faculty meeting, my office hours will run 2-3pm (not 1-3pm as originally planned).
I'd be glad to talk to part-time students (and anybody else who has a conflict at 2pm) after the class.
-
Homework due dates update, since the project deadline is drawing near:
Homework 7 will be posted here on Monday and it will be due next Tuesday. Homework 8 will be posted on Thursday
and it will be due on Thursday of week 10.
-
We will continue with previous week's slides and hopefully we will also cover a significant part of
this week's slides (also
pdf).
-
Project output errata: Some of the outputs for the project had vertices indexed starting with 0 instead of 1, the problem is now fixed.
Also, after scaling the "thin" inputs to coordinates < 1000, I happened to use a different scaling factor for the
x and y coordinates. Thus, the scaled-down input has a different pair of closest points - I included another .pair file
to reflect this.
-
Project testing will happen during class time on Thursday, May 3rd, 2007, 4-5:40pm. We will meet in ICL5 - you are welcome
to bring your laptops, or use the computers in the lab (the lab got recently converted to a Mac lab, there are no Sun stations
anymore).
-
The first batch of inputs for the project is now available. The files ending with .in are input files.
The .pair files specify the pair of the points which are the closest, and their distance. The .hull files specify all the edges
on the convex hull (in no particular order).
Update: Several of you noticed that some input files contain points that have coordinates larger than the promised 1000. For
compatibility, I left the original files in the directory and I also created .conv files which contain the same points with
coordinates scaled down by an appropriate factor. The convex hull stays the same for both .in and .conv files. The closest pair
of points also stays the same, but the distance gets scaled down (I am posting only the distance for the original .in files).
-
- Homework 6 is due May 6th, 6pm (notice the change of the due date, it is due on Sunday so that the due date
does not clash with the project testing). Please bring the homeworks to the tutoring center, or slide under the tutoring center door
before the deadline. You are also welcome to e-mail or fax your solutions.
-
No quiz in week 8 - we will test the projects instead.
-
Quiz 5 will take place on April 24th, 2007, 4-4:10pm. Study graph algorithms (BFS, DFS), matrix chain multiplication,
longest common subsequence, longest increasing subsequence.
- Homework 5, due April 26th, 2007, 4pm.
-
Practice midterm is now available. Try to solve the midterm
yourselves before looking up the solutions.
-
Quiz 4 will take place on April 10th, 2007, 4-4:10pm. Study dynamic programming and greedy algorithms, focus on interval
scheduling algorithms and the longest increasing subsequence problem.
-
Midterm will take place next Tuesday, 4/17/07, 4-5:40pm. It will cover all topics discussed in class and on the homeworks in
the first five weeks. Practice midterm will be available soon.
- Homework 4, due April 12th, 2007, 4pm.
-
Project is now available.
-
Due to incompatibilities of different versions of powerpoints, I decided to upload the slides also in a pdf form,
check the new links below.
-
Quiz 3 will take place on April 5th, 2007, 4-4:10pm. Please note the change of date (Thursday instead of Tuesday)
to accommodate those who celebrate the holidays on Tuesday.
Study material from homeworks 1 and 2 (we will discuss some of the solutions on Tuesday), and from class
the Select, Huffman, and Knapsack algorithms.
- Homework 3, due April 5th, 2007, 4pm.
-
Quiz 2 will take place on March 27th, 2007, 4-4:10pm. Study HeapSort, Lower-bounds for sorting,
and RadixSort.
- Homework 2, due March 29th, 2007, 4pm.
- Quiz 1 will take place on March 20th, 2007, 4-4:10pm. Study asymptotic notation,
binary search, MergeSort and the definition of the heap.
- Homework 1, due March 22nd, 2007, 4pm.
Week 1
-
Tuesday, March 13th
- Buy the book, check the course website frequently.
- Covered in class: Introduction (Section 1.2,), Running times and
Asymptotic notation (Sections 2.1 and 2.2)
- Slides: ppt, pdf
- Plan for the near future: MergeSort as an example of a divide-and-conquer
algorithm (discussion started in Section 2.4
and fully discussed in Section 5.1), Heapsort
(partially discussed in Section 2.5), Recurrences (demonstrated on MergeSort
and Linear-time Median). Also the following
topics that are not discussed in the book: lower-bounds for sorting,
RadixSort, Linear-time Median.
-
Thursday, March 15th
- Covered in class: MergeSort (Sections 2.4 and 5.1), basic Recurrences (Section 5.1).
- Briefly discussed: HeapSort (Section 2.5).
- Slides: ppt, pdf
- Plan for the next week: Heapsort continued (Section 2.5),
lower-bounds for sorting, RadixSort, Linear-time Median.
-
Homework 1, due March 22nd, 2007, 4pm.
Week 2
-
Tuesday, March 20th, and Thursday, March 22nd
-
Professor Homan covered: HeapSort (Section 2.5), Lower-bounds for sorting
(notes),
RadixSort (notes), and
introduction to Linear-time Median. (Disclaimer: the above notes were written mostly for the instructor's use and as such might not be
written in the most educational way.)
-
Plan for next week: Linear-time median, Statement of the Master Theorem, Greedy Algorithms.
Week 3
-
Tuesday, March 27
-
Covered in class: Linear-time median revisited (the Select algorithm, the randomized version is discussed and analyzed in
section 13.5 - we skipped the analysis for now, we will come back to it later), Master Theorem.
-
Slides: ppt, pdf
-
Thursday, March 29
-
Covered in class: The Huffman coding (section 4.8), and the Knapsack algorithms (section 6.4).
-
Slides: ppt, pdf
-
Plan for next two weeks: we will continue discussing greedy and dynamic programming algorithms, namely variants
of the interval scheduling problem (check the sections in the Greedy algorithms chapter and the Dynamic programming chapter),
longest increasing subsequence, longest common subsequence, matrix chain multiplication.
Week 4
-
Tuesday, April 3
-
Discussed solutions to selected problems on hw1 and hw2.
- Covered in class: Interval scheduling, greedy algorithms (Section 4.1).
-
Slides: ppt,
pdf
-
Thursday, April 5
-
Discussed solution to the bonus problem on hw2, and solution to quiz3.
-
Covered in class: Weighted interval scheduling (Section 6.1), and the longest increasing subsequence.
-
Slides: continued with Tuesday's slides
-
Plan for next week: more dynamic programming algorithms: longest common substring (Section 6.6), matrix chain multiplication.
Week 5
-
Tuesday, April 10
-
Continued discussion of the longest common subsequence (traced a given input).
-
Covered in class: Longest common substring (Section 6.6).
-
Started discussion of the matrix chain multiplication problem.
-
Slides:
ppt,
pdf
-
Thursday, April 12
-
Discussed solutions to hw4.
-
Covered in class: Matrix chain multiplication.
-
Slides: continued from Tuesday
-
Plan for next week: introduction to graph algorithms, breadth-first search, depth-first search.
Week 6
-
Tuesday, April 17
-
Thursday, April 19
-
Discussed solutions to some problems on the midterm. Please come to my office hours or to the tutoring center for
more detailed answers and solutions to the problems which we did not have the time to discuss.
Part time students: feel free to talk to me after the classes.
-
Covered in class: Introduction to graph algorithms - breadth-first search, depth-first search (Section 3.2).
-
Slides:
ppt,
pdf
-
Plan for next week: we will continue with graph algorithms, namely we will finish the topological sort (Chapter 3.6),
then we will discuss the strongly connected components (Section 3.5 discusses the slower algorithm)
and the minimum spanning tree algorithms (Kruskal, Prim - Sections 4.5 and 4.6).
-
Longer-term plan: shortest-paths algorithms (Dijkstra, Floyd-Warshall, Bellman-Ford - Sections 4.4 and 6.8),
network flows (Ford-Fulkerson, Edmonds-Karp - Chapter 7).
Week 7
-
Tuesday, April 24
-
Covered in class: topological sort (Section 3.6), strongly connected components (Section 3.5 discusses the slower algorithm),
introduction to the minimum spanning tree algorithms (Prim - Section 4.5).
-
Slides:
ppt,
pdf
-
Thursday, April 26
-
Covered in class: minimum spanning trees (Prim, Kruskal - Section 4.5), the Union-Find datastructure (Section 4.6),
Dijkstra's algorithm for single source shortest paths (Section 4.4).
-
Slides: continued with Tuesday's slides
-
Plan for next week: continue shortest paths algorithms (Sections 4.4 and 6.8), then move to
network flows (Ford-Fulkerson, Edmonds-Karp - Chapter 7).
Week 8
-
Tuesday, May 1
-
Covered in class: continued shortest paths in graphs (Floyd-Warshall, Bellman-Ford - Sections 6.8 and 6.10),
introduction to flow networks and the Ford-Fulkerson algorithm (Section 7.1).
-
Slides:
ppt,
pdf
-
Thursday, May 3
-
Project testing in lab ICL-5. Notice the new project grading policy section.
-
Plan for next week: continue flow networks (Chapter 7), introduction to linear programming (Section 11.6),
introduction to NP-completeness (Chapter 8).
Week 9
-
Tuesday, May 8
-
Covered in class: flow networks continued (Chapter 7).
-
Thursday, May 10
-
Covered in class: briefly discussed linear and integer programming (Chapter 11.6),
covered polynomial-time reductions and class P (Chapter 8).
-
Slides:
ppt,
pdf
-
Plan for next week: NP-completeness (Chapter 8), a brief discussion of approximation and randomized algorithms, final review.