SUNY Geneseo Department of Computer Science


Lecture Record

CSci 240, Spring 2007

Prof. Doug Baldwin

Caveat

These are electronic records of class discussion from CSci 240 (Foundations of Algorithms). They are generally captured as a class unfolds, and slightly cleaned up afterwards. They are not clean, carefully-planned lecture notes in the usual sense. They are more an electronic equivalent of notes on the blackboard: they record some of what the instructor said, some of what students said, the things that really happened in the class—including the misunderstandings, false starts, and similar things that happen in real classes. The goal of these notes is as much to help students remember how they learned as it is to help them remember what they learned (because the "how" of learning is at least as important as the "what").

Please make WWW or other electronic links to this page only—I want people reading these notes to see the “caveat” above.

Send comments, questions, etc. related to these notes to Doug Baldwin.


  1. Jan. 17 -- Introduction
  2. Jan. 19 -- Pre- and Postconditions
  3. Jan. 22 -- Introduction to Proof
  4. Jan. 24 -- Overview of Experimentation
  5. Jan. 26 -- Logic
  6. Jan. 29 -- Recursion Review
  7. Jan. 31 -- Introduction to Induction
  8. Feb. 2 -- Induction and Algorithms, Part 1
  9. Feb. 5 -- Induction and Algorithms, Part 2
  10. Feb. 7 -- Introduction to Recurrence Relations
  11. Feb. 9 -- Recurrence Relations and Recursive Algorithms
  12. Feb. 12 -- Introduction to Asymptotic Notation
  13. Feb. 16 -- Asymptotic Notation, Part 2
  14. Feb. 19 -- Introduction to the Master Theorem
  15. Feb. 21 -- The Master Theorem, Part 2
  16. Feb. 23 -- Exam 1, no notes
  17. Feb. 26 -- Loop Invariants
  18. Feb. 28 -- Correctness of Loops
  19. Mar. 2 -- Correctness of Insertion Sort
  20. Mar. 5 -- Proving Loop Invariants and Loop Performance
  21. Mar. 7 -- Guest Lecture, no notes
  22. Mar. 9 -- Guest Lecture, no notes
  23. Mar. 19 -- Performance of Insertion Sort
  24. Mar. 21 -- Quicksort
  25. Mar. 23 -- Performance of Quicksort
  26. Mar. 26 -- Mergesort
  27. Mar. 28 -- Performance of Mergesort
  28. Mar. 30 -- Motivation for Trees
  29. Apr. 2 -- Exam 2, no notes
  30. Apr. 4 -- Tree Definitions
  31. Apr. 6 -- Tree Search and Insertion
  32. Apr. 9 -- Performance of Ordered Binary Tree Search/Insert
  33. Apr. 11 -- Ordered Binary Tree Deletion, Part 1
  34. Apr. 13 -- Ordered Binary Tree Deletion, Part 2
  35. Apr. 16 -- Tree Deletion and Traversal
  36. Apr. 18 -- Tree Traversals, Part 2
  37. Apr. 20 -- Introduction to Heaps
  38. Apr. 23 -- Trees in Arrays
  39. Apr. 25 -- Heap Insertion
  40. Apr. 27 -- Sifting Down in Heaps
  41. Apr. 30 -- Some Uses of Priority Queues