CS 234 lecture notes


Reference materials and sample programs are often copyrighted may be used only by the participants of the class.
  • 09/11 Introduction, goals of the course, Efficiency and Complexity, Reading: text chapters 1-2, Big-O Exercises, UNIX Intro Exercise
  • 09/13 UNIX help session (by Chris Ingram)
  • 09/18 ADT and data structures Imperative Programming Languages (or why does it not matter which one do I use), Naomi Nishimura's CS240 notes on why do we use simplified syntax to describe algorithms/data structures.
  • 09/20 Lists and Stacks, Recursion vs. Iteration, Lists with insertions, notes on the use of Pointers, Reading: text chapter 3, Assignment 1.
  • 09/25 Trees Reading: text chapters 4.1-2, 4.6.
  • 09/27 Search Trees and AVL Trees Reading: text chapters 4.3-4.
  • 10/02 Splay Trees Reading: text chapter 4.5.
  • 10/04 B-Trees, External storage considerations Reading: text chapter 4.7.
  • 10/09 Digital Search, Assignment 2.
  • 10/11 Priority Queues (Heaps) Reading: text chapters 6.1-4.
  • 10/16 Hashing, Reading: text chapters 5.1-4.
  • 10/18 Sorting, Reading: text chapters 7.1-7.
  • 10/23 More Sorting, Reading: text chapters 7.9-11.
  • 10/25 Assignment 1 and 2 solutions, review for midterm
  • 10/30 MIDTERM 4:30-6:20; click to find the room
  • 11/01 Graphs: Representations and Applications, Reading: text chapter 9.1. Assignment 3
  • 11/06 Graph Algorithms, Reading: text chapters 9.2, 9.6.1.
  • 11/08 Algorithm Design: Greedy Algorithms, Reading: text chapters 9.3, 9.5.
  • 11/13 Network Flow Algorithms, Reading: text chapter 9.4.
  • 11/15 Algorithm Design: Divide and Conquer, Reading: text chapter 10.2.
  • 11/20 Algorithm Design: Dynamic Programming, Reading: text chapter 10.3.
  • 11/22 Algorithm Design: Hard Problems, Reading: text chapters 9.7, 10.5.
  • 11/27 Introduction to NP-completeness,
  • 11/29 slack, review for final, etc.

  • To print the slides 4-on-a-page download the file and then use psnup -n4 infile.ps outfile.ps.