THIS SCHEDULE MAY CHANGE AT ANY TIME DURING
THE SEMESTER!
Date |
Topic |
Reading |
Lectures |
Homework |
Tuesday Aug 30 |
Introduction |
Syllabus, Scott, Ch.1 |
|
|
Friday Sep 2 |
Programming language syntax. Formal languages: Regular expressions and Context-free grammars |
Scott, Ch.2.1-2.2 |
HW1 (50pts, PL Syntax) |
|
Friday Sep
9 |
Scanning, Parsing, Top-down parsing, Recursive-descent |
Scott, Ch.2.3.1-2.3.2 |
Quiz 1 |
|
Tuesday Sep 13 |
Top-down parsing: LL(1) grammars |
Scott, Ch.2.3.2-2.3.3 |
||
Friday Sep 16 |
Logic programming and Prolog. Horn clauses, Resolution principle; Prolog: Search trees, Unification, Backtracking, Backward chaining |
Scott, Ch.12.1 |
Quiz 2 |
HW1 due, HW2 (50pts, Prolog) |
Tuesday Sep 20 |
Prolog: Lists, Programming with lists, Arithmetic, Imperative control flow |
Scott, Ch.12.2 |
||
Friday Sep 23 |
Prolog: Negation by failure, Generate-and-test paradigm |
Quiz 3 |
||
Tuesday Sep 27 |
Binding and scoping. Binding time, Storage, Stack smashing, Static and dynamic scoping |
Scott, Ch.3.1-3.5 |
||
Friday Sep 30 |
Programming language semantics. Semantic analysis, Attribute grammars, ASTs |
Scott, Ch.4.1-4.3 |
HW2 due, |
|
Tuesday Oct 4 |
Attribute grammars |
Quiz 4 |
HW3 (25pts, Scoping and Attribute grammars) |
|
Friday Oct 7 |
Review |
|||
Tuesday Oct 11 |
Exam 1 |
|
||
Friday Oct 14 |
Functional programming. Reduction semantics, referential transparency, Scheme: S-expressions, Lists, Recursion |
Scott, Ch.11.1-11.3 |
HW3 due, HW4 (40pts, Scheme 1) |
|
Tuesday Oct 18 |
Scheme: Equality, Higher-order functions, Map and fold, Tail recursion |
Scott, Ch.11.5-11.6 |
||
Friday Drop deadline |
Scheme: Let-bindings, Typing, Scoping, Closures |
Scott, Ch.3.6 (on closures) |
||
Tuesday |
Lambda
calculus: Syntax and semantics, Free and bound variables, Substitution |
Quiz 5 |
HW4 due, HW5 (60pts, Scheme 2) |
|
Friday |
Lambda
calculus: Reduction rule, Normal forms, Reduction strategies, Church-Rosser
theorem |
|||
Tuesday Nov 1 |
Lambda calculus: Applied lambda calculus, Simply- typed lambda calculus (System F1) |
Quiz 6 |
||
Friday Nov 4 |
Catch-up
and Review |
HW5 due |
||
Tuesday |
Exam 2 |
|
||
Friday Nov 11 |
Haskell: Getting started, Interpreters, Algebraic data types, Pattern matching |
|||
Tuesday Nov 15 |
Haskell: Algebraic data types, Pattern matching, Lazy evaluation, Types and type inference |
HW6 (50pts, Haskell) |
||
Friday Nov
18 P/NC deadline |
Haskell,
conclusion: Type classes and Monads |
|
Quiz 7 |
|
Tuesday Nov 22 |
Data abstraction and types.
Type systems, Three views of types, Type equivalence, Types in C |
Scott, Ch.7.1-7.2 |
||
Tuesday Nov 29 |
Data abstraction, conclusion: Types in C, Primitive and
Composite Types |
Scott, Ch 8, |
Quiz 8 |
HW6 due, HW7 (50pts, Data & control abstraction) |
Friday Dec 2 |
Control abstraction and parameter passing. Object-oriented languages. Encapsulation and inheritance, Initialization and finalization, Dynamic dispatch, Polymorphism. |
Scott, Ch.9.1-9.3, Scott, Ch.10.1-10.4 |
Lecture24_Part1
[ppt, pdf]
(Lec22 on Mediasite) |
|
Tuesday Dec 6 |
Concurrency.
Message passing vs. shared memory, Java concurrency |
Scott, Ch.13.1 |
Lecture25 [ppt, pdf] (Lec24 on Mediasite) |
|
Friday Dec 9 |
Catch-up and Review |
Quiz 9 |
HW7 due |
|
Dec
15 6:30-9:30pm |
Final Exam |
|
A |