Spring 2002, CSE 428: Schedule of Lectures
WEEK 1
- Tue 8 Jan.
Introduction. Administrativia. Overview of the course.
- 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)
WEEK 2
- Tue 15 Jan.
[Lecture Notes 3]
Hw 1 distributed.
- Thu 17 Jan.
Reading from text: Chapter 3.
[Lecture Notes 4.1,
Lecture Notes 4.2]
Quiz 1 (in class).
WEEK 3
- 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.
- Thu 24 Jan.
Reading from text: Chapter 4.
Quiz 2 (in class).
Hw 1 due. Hw 2 distributed.
WEEK 4
- 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)
- 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).
WEEK 5
- Tue 5 Feb.
Dynamic variables and management of the Heap (Cont.ed).
[Lecture Notes 8 and 9].
(Chapter 5)
- Thu 7 Feb.
Run Time errors and Exception Handling (Chapter 6)
Quiz 4 (in class).
Hw 2 due. Hw 3 distributed.
WEEK 6
- Tue 12 Feb.
Object Oriented (Chapter 7)
- Thu 14 Feb.
Discussion of solution of recommended exercises.
Midterm 1, 8:15-10:15pm in 10 Sparks.
WEEK 7
- Tue 19 Feb.
Concurrency in Java. [Lecture Notes 13].
(Chapter 11)
- Thu 21 Feb.
Concurrency in Java.
[Lecture Notes 14].
(Chapter 11)
Quiz 5 (in class).
Hw 3 due. Hw 4 distributed.
WEEK 8
- Tue 26 Feb. Class canceled
- Thu 28 Feb. Class canceled
Mar 4 - Mar 8: Spring Break
WEEK 9
- Tue 12 Mar.
Concurrency in Java [Lecture Notes 17 and 18]
(Chapter 11)
- Thu 14 Mar.
Concurrency in Java [Lecture Notes 17 and 18]
(Chapter 11)
Quiz 6 (in class).
WEEK 10
- Tue 19 Mar.
Programming with events in Java. Example: A simple GUI.
[Lecture Notes 19 and 20, html
and ppt]
(Chapter 10)
- 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. .
WEEK 11
- Tue 26 Mar.
Functional Programming.
[Lecture Notes 21 and 23]
(Chapter 8)
Hw 5 distributed. .
- Thu 28 Mar. Discussion of solution of recommended exercises.
Midterm 2, 8:15-10:15pm in 10 Sparks.
WEEK 12
- Tue 2 Apr.
Functional Programming.
[Lecture Notes 21 and 23]
(Chapter 8)
- Thu 4 Apr.
Functional Programming (Chapter 8)
[Lecture Notes 24 and 25]
[Additional notes.]
Quiz 8 (in class).
WEEK 13
- Tue 9 Apr.
Functional Programming (Chapter 8)
[Lecture Notes 24 and 25]
[Code used in class: L25a, L25b]
- Thu 11 Apr.
Functional Programming (Chapter 9)
[Lecture Notes 26]
[Lecture Notes 26 (additional)]
Quiz 9 (in class).
Hw 5 due. Hw 6 distributed.
WEEK 14
- Tue 16 Apr.
Logic Programming (Chapter 9)
Code discussed in class:
mothers.pl,
lists.pl.
- Thu 18 Apr.
Logic Programming (Chapter 9)
(Quiz 10 moved to next class.)
Code discussed in class:
length.pl,
nats.pl,
L26.pl.
WEEK 15
- Tue 23 Apr.
Logic Programming (Chapter 9)
Quiz 10 (in class).
Hw 6 due.
- Thu 25 Apr.
Note: The above schedule is subject to change.