THIS SCHEDULE MAY CHANGE AT ANY TIME DURING THE SEMESTER!

 

Date

Topic

Reading

Lectures

Homework

Tuesday Aug 30

Introduction

Syllabus, Scott, Ch.1

Lecture1 [ppt, pdf]

 

Friday

Sep 2

Programming language syntax. Formal languages: Regular expressions and Context-free grammars

Scott, Ch.2.1-2.2

Lecture2 [ppt, pdf]

HW1 (50pts, PL Syntax)

Friday

Sep 9

Scanning, Parsing,

Top-down parsing, Recursive-descent

Scott, Ch.2.3.1-2.3.2

Quiz 1

Lecture3 [ppt, pdf]

 

Tuesday

Sep 13

Top-down parsing: LL(1) grammars

Scott, Ch.2.3.2-2.3.3

Lecture4 [ppt, pdf]

Friday

Sep 16

Logic programming and Prolog. Horn clauses, Resolution principle; Prolog: Search trees, Unification, Backtracking, Backward chaining

Scott, Ch.12.1

Quiz 2

Lecture5 [ppt, pdf]

HW1 due,

HW2 (50pts, Prolog)

Tuesday

Sep 20

Prolog: Lists, Programming with lists, Arithmetic, Imperative control flow

Scott, Ch.12.2

Lecture6 [ppt, pdf]

Friday

Sep 23

Prolog: Negation by failure, Generate-and-test paradigm

Quiz 3

Lecture7 [ppt, pdf]

Tuesday

Sep 27

Binding and scoping. Binding time, Storage, Stack smashing, Static and dynamic scoping

Scott, Ch.3.1-3.5

Lecture8 [ppt, pdf]

Friday

Sep 30

Programming language semantics. Semantic analysis, Attribute grammars, ASTs

Scott, Ch.4.1-4.3

Lecture9 [ppt, pdf]

HW2 due,

Tuesday

Oct 4

Attribute grammars

Quiz 4

Lecture10 [ppt, pdf]

HW3 (25pts, Scoping and

Attribute grammars)

Friday

Oct 7

Review

Lecture11 [ppt, pdf]

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

Lecture12 [ppt, pdf]

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

Lecture13 [ppt, pdf]

Friday
Oct 21

Drop deadline

Scheme: Let-bindings, Typing, Scoping, Closures

Scott, Ch.3.6 (on closures)

Lecture14 [ppt, pdf]

Tuesday
Oct 25

Lambda calculus: Syntax and semantics, Free and bound variables,

Substitution

Quiz 5

Lecture15 [ppt, pdf]

HW4 due,

HW5 (60pts, Scheme 2)

Friday
Oct 28

Lambda calculus: Reduction rule, Normal forms, Reduction strategies, Church-Rosser theorem

Lecture16 [ppt, pdf]

Tuesday Nov 1

Lambda calculus: Applied lambda calculus, Simply- typed lambda calculus (System F1)

Quiz 6

Lecture17 [ppt, pdf]

Friday

Nov 4

Catch-up and Review

Lecture18 [ppt, pdf]

HW5 due

Tuesday
Nov 8

Exam 2

 

Friday

Nov 11

Haskell: Getting started, Interpreters, Algebraic data types, Pattern matching

Lecture19 [ppt, pdf]

Tuesday

Nov 15

Haskell: Algebraic data types, Pattern matching, Lazy evaluation, Types and type inference

Lecture20 [ppt, pdf]

HW6 (50pts, Haskell)

Friday

Nov 18

P/NC deadline

Haskell, conclusion: Type classes and Monads

 

 

 

Quiz 7

Lecture21 [ppt, pdf]

Tuesday

Nov 22

Data abstraction and types. Type systems, Three views of types, Type equivalence, Types in C

Scott, Ch.7.1-7.2

 

 

 

Lecture22 [ppt, pdf] (Lec21 on Mediasite)

Tuesday

Nov 29

Data abstraction, conclusion: Types in C, Primitive and Composite Types

Scott, Ch 8,

Quiz 8

Lecture23 [ppt, pdf]

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)

 

Lecture24_Part2 [ppt, pdf] (Lec23 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

Lecture26 [ppt, pdf]

HW7 due

Dec 15 6:30-9:30pm

Final Exam

 

A