Spring 2002, CSE 428: Schedule of Lectures

    WEEK 1

  1. Tue 8 Jan. Introduction. Administrativia. Overview of the course.
  2. Thu 10 Jan. Syntax of a language. Example: a subset of the English sentences. The need for formal definition of programming languages. [Lecture Notes 1] Formal definition of context-free grammars. Derivations and derivation trees. Ambiguity. [Lecture Notes 2] (Tucker & Noonan, Chapter 2, up to p. 36)
  3. WEEK 2

  4. Tue 15 Jan. [Lecture Notes 3]  Hw 1 distributed.
  5. Thu 17 Jan. Reading from text: Chapter 3. [Lecture Notes 4.1, Lecture Notes 4.2]  Quiz 1 (in class).
  6. WEEK 3

  7. Tue 22 Jan. Reading from text: finish Chapter 3 and start Chapter 4. Structured Operational Semantics; Type declarations; Typing expressions and programs; State and state transformations.
  8. Thu 24 Jan. Reading from text: Chapter 4.  Quiz 2 (in class).  Hw 1 due. Hw 2 distributed.
  9. WEEK 4

  10. Tue 29 Jan. Procedures and functions. Call-by-value and call-by-reference. [Lecture Notes 7.1] Memory management: global, local and dynamic variables [Lecture Notes 7.2] (Chapter 5)
  11. Thu 31 Jan. Memory management (Cont.ed). Stack-based implementation of imperative and OO languages. Local variables and management of the stack. Activation records. Static and Dynamic scope. Static link. [Lecture Notes 7.2]. Dynamic variables and management of the Heap. [Lecture Notes 8 and 9]. (Chapter 5)  Quiz 3 (in class).
  12. WEEK 5

  13. Tue 5 Feb. Dynamic variables and management of the Heap (Cont.ed). [Lecture Notes 8 and 9]. (Chapter 5)
  14. Thu 7 Feb. Run Time errors and Exception Handling (Chapter 6)  Quiz 4 (in class).  Hw 2 due. Hw 3 distributed.
  15. WEEK 6

  16. Tue 12 Feb. Object Oriented (Chapter 7)
  17. Thu 14 Feb. Discussion of solution of recommended exercises.  Midterm 1, 8:15-10:15pm in 10 Sparks.
  18. WEEK 7

  19. Tue 19 Feb. Concurrency in Java. [Lecture Notes 13]. (Chapter 11)
  20. Thu 21 Feb. Concurrency in Java. [Lecture Notes 14]. (Chapter 11)  Quiz 5 (in class).  Hw 3 due. Hw 4 distributed.
  21. WEEK 8

  22. Tue 26 Feb. Class canceled
  23. Thu 28 Feb. Class canceled
  24. Mar 4 - Mar 8: Spring Break

    WEEK 9

  25. Tue 12 Mar. Concurrency in Java [Lecture Notes 17 and 18] (Chapter 11)
  26. Thu 14 Mar. Concurrency in Java [Lecture Notes 17 and 18] (Chapter 11)  Quiz 6 (in class).
  27. WEEK 10

  28. Tue 19 Mar. Programming with events in Java. Example: A simple GUI. [Lecture Notes 19 and 20, html and ppt] (Chapter 10)
  29. Thu 21 Mar. Programming with events in Java (Cont.ed). Example: Tic Tac Toe. [Lecture Notes 19 and 20, html and ppt] Timed systems. [Lecture Notes 20] Example: Space Invaders (Chapter 10)  Quiz 7 (in class).  Hw 4 due. .
  30. WEEK 11

  31. Tue 26 Mar. Functional Programming. [Lecture Notes 21 and 23] (Chapter 8)  Hw 5 distributed. .
  32. Thu 28 Mar. Discussion of solution of recommended exercises.  Midterm 2, 8:15-10:15pm in 10 Sparks.
  33. WEEK 12

  34. Tue 2 Apr. Functional Programming. [Lecture Notes 21 and 23] (Chapter 8)
  35. Thu 4 Apr. Functional Programming (Chapter 8) [Lecture Notes 24 and 25] [Additional notes.]  Quiz 8 (in class).
  36. WEEK 13

  37. Tue 9 Apr. Functional Programming (Chapter 8) [Lecture Notes 24 and 25] [Code used in class: L25a, L25b]
  38. Thu 11 Apr. Functional Programming (Chapter 9) [Lecture Notes 26] [Lecture Notes 26 (additional)]  Quiz 9 (in class).  Hw 5 due. Hw 6 distributed.
  39. WEEK 14

  40. Tue 16 Apr. Logic Programming (Chapter 9) Code discussed in class: mothers.pl, lists.pl.
  41. Thu 18 Apr. Logic Programming (Chapter 9) (Quiz 10 moved to next class.) Code discussed in class: length.pl, nats.pl, L26.pl.
  42. WEEK 15

  43. Tue 23 Apr. Logic Programming (Chapter 9)  Quiz 10 (in class).  Hw 6 due.
  44. Thu 25 Apr.
  45. Note: The above schedule is subject to change.