|
Jan 15.
Introduction and course logistics.
[slides]
|
Read T&N Chap. 1 and C Ref Chap. 1.
|
|
Jan 17.
Programming language paradigms.
[slides]
|
|
|
Jan 22.
Brief history of programming languages.
[slides]
|
Homework 1 assigned.
|
|
Jan 24.
Syntax: grammars and parsing.
[slides]
|
Read T&N Chap. 2 and 3, and
C Ref Chap. 2.
|
|
Jan 29.
Grammars and parsing (cont'd).
|
Homework 1 due.
Read C Ref Chap. 7.
|
|
Jan 31.
Imperative programming.
[slides]
|
Homework 2 assigned.
Read T&N Chap. 12 and
C Ref Chap. 8.
|
|
Feb 5.
Introduction to ML (guest lecture by Ricky Chang).
[slides]
[OCaml examples]
|
|
|
Feb 7.
Functions: parameter passing mechanisms.
[slides]
|
Read T&N Chap. 9 and
C Ref Chap. 4 and 9.
|
|
Feb 12.
Functions: scope, activation records.
[slides]
|
Homework 2 due.
|
|
Feb 14.
Buffer overflow.
[slides]
|
Homework 3 assigned.
Read Smashing the stack.
|
Feb 19.
Types. Overloading and polymorphism.
[slides]
Quiz #1.
|
Read T&N Chap. 5 and
C Ref Chap. 5 and 6.
|
|
Feb 21.
Type inference.
|
Homework 3 due.
|
|
Feb 26.
Midterm #1.
|
|
|
Feb 28.
Garbage collection.
[slides]
|
Homework 4 assigned.
Read T&N Chap. 11.
|
|
Mar 4.
Exceptions.
[slides]
|
Read T&N Sec. 7.7.
|
|
Mar 6.
Code analysis tools.
[slides]
|
Homework 4 due.
|
|
Spring break.
|
|
Mar 18.
Concurrent programming: mutual exclusion, semaphores, monitors.
[slides]
|
Read T&N Chap. 17.
|
|
Mar 20.
Concurrent programming: Java threads, synchronization.
|
Homework 5 assigned.
|
|
Mar 25.
Concurrent programming: race conditions, Java memory model.
|
|
|
Mar 27.
Lambda calculus.
[slides]
|
Homework 5 due.
Read T&N Sec. 14.1.
|
Apr 1.
Functional programming in Scheme.
[slides]
Quiz #2.
|
Read T&N Sec. 14.2 and
Why functional programming matters.
|
|
Apr 3.
Introduction to JavaScript.
[slides]
|
Homework 6 assigned.
|
|
Apr 8.
Security vulnerabilities in scripting languages.
[slides]
|
|
|
Apr 10.
Logic programming.
[slides]
|
Homework 6 due.
Read T&N Chap. 15.
|
|
Apr 15.
Modules and objects
(guest lecture by Ricky Chang).
[slides]
|
Read T&N Sec. 13.1 and 13.2.
|
|
Apr 17.
Midterm #2.
|
|
Apr 22.
Introduction to Python.
[slides]
Quiz #3.
|
Homework 7 assigned.
Read T&N Sec. 13.5.
|
Apr 24.
Simula and Smalltalk.
[slides]
|
Read T&N Sec. 13.3.
|
Apr 29.
Introduction to C++.
[slides]
|
Homework 7 due.
|
|
May 1.
C++ (cont'd). Last day of class.
|
|
|
May 13 (2-5pm).
Final.
|