CS 33200 Reading Assignments and Class Lectures

This page documents what we do in class. It contains programs that we will discuss in class, reading assignments from our textbook, links to other sources of information, etc.

The reading assignments are listed by the date on which they were assigned. Any sample program files are listed by the date on which they were used. When you are viewing a source code page, you can use your browser's "File -> Save As..." menu item to save a copy of the code on your computer. It is a good idea for you to "play" with these example programs; compile them, run them, make simple changes to them and compile and run them again.

  • Thursday, December 8.
    • Here is an improved list of review problems for the second exam. I might add a few more problems in the next couple of days.
    • Here is a Java implementation of the tree and graph traversal algorithms.
  • Tuesday, December 6.
    • Here is a preliminary list of review problems for the second exam. I will add a few more problems in the next couple of days.
  • Thursday, December 1.
    • From the textbook, read Chapter 22, Sections 22.3 (pages 603-610).
    • From the textbook, read Chapter 23, Sections 23.1-23.2 (pages 624-636).
    • Interesting story in the New York Times.
  • Tuesday, November 29.
    • See the homework page for your sixth (and last) homework assignment.
    • From the textbook, read Chapter 22, Sections 22.1 and 22.2 (pages 589-601).
    • Here is a summary of the "greedy strategies" that we will consider.
      1. Making change (sometimes works, sometimes doesn't)
      2. Knapsack (works for Fractional Knapsack, not for 0-1) (CLRS, pages 425-427)
      3. Bin packing (provides a "reasonable" approximate solution)
      4. Activity selection problem (CLRS, Section 16.1)
      5. Task scheduling problem
      6. MST (CLRS, Section 23.1-23.2)
  • Tuesday, November 22.
    • From the textbook, read Chapter 16, Sections 16.1 and 16.2 (pages 414-427).
    • Do Exercises 15.1-2, 15.1-3, and 15.1-4 (page 370). These are just practice exercises. This is not homework that you will turn in.
    • Do Exercise 15.3-2 (page 389). This is just a practice exercise. This is not homework that you will turn in.
    • The following handout explains the maximum contiguous subsequence, maximum independent subsequence, longest increasing subsequence, and longest common subsequence problems.
  • Thursday, November 17.
    • From the textbook, read Problem 15-5, Edit Distance (pages 406-408). Also read the handout from class on the Edit Distance problem
    • The following website at MIT gives very interesting explanations of several dynamic programming problems.
    • The following zip file contains dynamic programming solutions to Longest Increasing Subsequence problem.
    • The following zip file contains dynamic programming solutions to Longest Common Subsequence problem.
  • Tuesday, November 15.
    • From the textbook, read Section 15.4 (pages 390-396) on the "Longest common subsequence" problem.
    • The following handout explains the maximum contiguous subsequence, maximum independent subsequence, and longest increasing subsequence problems.
  • Thursday, November 10.
    • See the homework page for your fifth homework assignment.
    • The following document describes all the different knapsack problems that we went over in class.
  • Tuesday, November 1.
    • See the homework page for your fourth homework assignment.
    • From the textbook, read Section 15.3 (pages 378-389).
    • The following zip file contains "dynamic programming" versions of CutRod from Section 15.1.
  • Thursday, October 27.
    • From the textbook, read Section 15.2 (pages 370-377).
    • The following zip file contains "dynamic programming" versions of the Fibonacci numbers.
  • Tuesday, October 25.
    • The midterm exam is today.
    • From the textbook, read Section 15.1 (pages 357-369).
  • Thursday, October 20.
    • Remember, the midterm exam will be (next) Tuesday, October 25.
    • Here is another collection of review questions for the upcoming midterm.
  • Thursday, October 13.
    • The midterm exam will be Tuesday, October 25.
    • The following zip file contains versions of Select from Chapter 9.
  • Tuesday, October 11.
    • From the textbook, read Sections 9.1-9.3 (pages 213-222).
    • Do Exercises 9.1-1 (page 215). These are just practice exercises. This is not homework that you will turn in.
    • Here is a small collection of review material for the upcoming midterm.
  • Thursday, October 6.
    • From the textbook, read Section 8.1 (pages 191-193).
    • The following zip files contains versions of Heapsort and Quicksort.
    • Do Exercises 7.1-1, 7.1-2 (page 174), Exercise 7.2-2, 7.2-3 (page 178), and Exercise 7.4-2 (page 184). These are just practice exercises. This is not homework that you will turn in.
    • There will be a midterm exam soon. Here is a small collection of additional review problems for you to work on.
  • Tuesday, October 4.
    • See the homework page for your third homework assignment.
    • From the textbook, read Sections 7.1-7.2 (pages 170-178) and Section 7.4 (pages 180-184).
    • Do Exercises 6.1-1, 6.1-4, 6.1-6 (page 153), Exercise 6.2-1 (page 156), and Exercise 6.3-1 (page 159). These are just practice exercises. This is not homework that you will turn in.
  • Thursday, September 15.
    • From the textbook, read the Introduction to Part II (pages 147-150) and Sections 6.1-6.4 (pages 151-161).
    • Do Exercises 4.3-1, 4.3-2, 4.3-3, 4.3-5, 4.3-6 (page 87) and 4.5-1 (page 96). These are just practice exercises. This is not homework that you will turn in.
  • Tuesday, September 13.
    • See the homework page for your second homework assignment.
    • From the textbook, read Sections 4.3 and 4.5 (pages 83-87 and 93-96).
    • Do Exercise 4.2-1 (page 82). These are just practice exercises. This is not homework that you will turn in.
  • Thursday, September 8.
    • The following zip file contains several versions of the Max-Sub-Array algorithm.
  • Tuesday, September 6.
    • From the textbook, read Section 4.2 (pages 75-82).
    • Do Exercises 4.1-1 and 4.1-2 (page 74). These are just practice exercises. This is not homework that you will turn in.
  • Thursday, September 1.
    • From the textbook, read Chapter 4 (pages 65-74).
    • Do Exercises 3.1-3, 3.1-4 and 3.1-6 (page 53). These are just practice exercises. This is not homework that you will turn in.
    • Here is a copy of the small C/C++ "development environment" that I use in class. If you would like to try it, download this zip file and unzip it into your C:\ drive.
  • Tuesday, August 30.
    • See the homework page for your first homework assignment.
    • From the textbook, read Chapter 3 (pages 43-60). Section 3.1 is important, but Section 3.2 is mostly "reference material" that you should just skim over and refer back to when needed.
    • The following two C files let us test the merge sort algorithm.
    • Do Exercise 2.3-1 and Exercise 2.3-2 (page 37). These are just practice exercises. This is not homework that you will turn in.
  • Thursday, August 25.
    • From the textbook, read Section 2.3 (pages 29-37).
    • The following two C files let us test the insertion sort algorithm.
    • Do Exercise 2.1-2 (page 22) and Exercise 2.2-2 (page 29). These are just practice exercises. This is not homework that you will turn in.
  • Tuesday, August 23.
    • From the textbook, read Chapter 1 (pages 5-14) and Sections 2.1-2.2 (pages 16-29).
    • Here is a short list that demonstrates some elementary examples of the kinds of problems we will work with in this course.


Return to the CS 33200 home page.


compliments and criticisms