CS 200 - Spring 2017

Mathematical Foundations of Computing

Lectures & Readings

  1. Tues 2/14 - Course introduction, Sets. Exercises. Proof 1.1-1.9. Attendance.
  2. Thurs 2/16 - Propositional logic. Exercises. Proof 2.1-2.6. Attendance.
  3. Tues 2/21 - Predicate logic. Exercises. More exercises. Rosen 1.4-1.5. Proof 2.7-2.12. HW1 due.
  4. Thurs 2/23 - Proof techniques, arguments. Rosen 1.7-1.8. [Proof Chaps 4-9.] Attendance.
  5. Tues 2/28 - Growth of functions. Rosen 3.1-3.2. HW2 due. Program submission.
  6. Thurs 3/2 - Complexity of algorithms. Rosen 3.3.
  7. Tues 3/7 - Proof by Induction. Examples. Rosen 5.1. HW3 due.
  8. Thurs 3/9 - More proof by induction. Rosen 5.2-5.4. [Proof Chap 10.]
  9. Tues 3/14 - Number Theory. Code examples. Rosen 4.1-4.3. HW4 due.
  10. Thurs 3/16 - Cryptography. Rosen 4.6.
  11. Tues 3/21 - Review. Practice problems. Partial Solutions. HW5 due (use submit script twice).
  12. Thurs 3/23 - Midterm in class.
  13. Tues 4/4 - Counting. Rosen 6.1-6.2.
  14. Thurs 4/6 - Permutations and combinations. Examples. Rosen 6.3-6.5.
  15. Tues 4/11 - Generalized permutations and combinations. HW7 due.
  16. Thurs 4/13 - Probability. Rosen 7.1-7.2.
  17. Tues 4/18 - Recurrence relations. Rosen 8.1-8.3. HW8 due.
  18. Thurs 4/20 - Relations, Equivalence Relations. Rosen 9.1-9.5.
  19. Tues 4/25 - Graphs. Rosen 10.1-10.4. HW9 due.
  20. Thurs 4/27 - Graphs algorithms, P vs NP. Rosen 10.5-10.8.
  21. Tues 5/2 - Finite state machines. Rosen 13.3. HW10 due.
  22. Thurs 5/4 - Regular expressions. Trees. Rosen 13.3.
  23. Tues 5/9 - Spanning Trees, Graph algorithms, Context-Free grammars. Rosen 11.1-11.5, 13.1. HW11 due.
  24. Thurs 5/11 - Turing machines and computability. Course wrap-up. Notes on complexity. Rosen 13.5.