SCHEDULE MAY CHANGE AT ANY TIME DURING THE SEMESTER!

 

Date

Topic

Reading

Lectures

Homework

Friday Aug 29

Introduction

Syllabus, Scott, Ch.1

Lecture1

 

Tuesday Sep 2

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

Scott, Ch.2.1-2.2

Lecture2

HW1 (50pts, PL Syntax)

Tuesday
Sep 9

Scanning, Parsing,

Top-down parsing, Recursive-descent

Scott, Ch.2.2 and Ch.2.3.1

Lecture3

 

Friday

Sep 12

Drop deadline

Top-down parsing: LL(1) grammars

Scott, Ch.2.3.2-2.3.3

Lecture4

Tuesday
Sep 16

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

Scott, Ch.12.1

Lecture4.5

 

Lecture5

snowy.pl, likes.pl, classmates.pl

Friday

Sep 19

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

Scott, Ch.12.2

Lecture6

HW1 due Thursday Sep 18,

HW2 (50pts, Prolog)

Tuesday Sep 23

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

Lecture7

dcg.pl

maps_and_folds.pl

Friday

Sep 26

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

Scott, Ch.3.1, 3.2, 3.3.1, 3.3.2, and 3.3.6

Lecture7.5

 

Lecture8

Tuesday

Sep 30

Programming language semantics. Semantic analysis, Attribute grammars, ASTs

Scott, Ch.4.1-4.3

Lecture9

Friday

Oct 3

Attribute grammars

Lecture10

HW2 due Thursday Oct 2,
HW3
(50pts, Scoping and

Attribute grammars)

Tuesday

Oct 7

Catch-up and review

Lecture10.5

Lecture11

Friday

Oct 10

Exam 1

 

Tuesday

Oct 14

Functional programming. Reduction semantics, referential transparency,

Scheme: S-expressions, Lists, Recursion

Scott, Ch.11.1-11.3

Lecture12

Friday

Oct 17

Scheme: Equality, Higher-order functions, Map and fold, Tail recursion

Scott, Ch.11.5-11.6

Lecture13

higher_order.rkt

HW3 due Thursday Oct 16,

HW4 (50pts, Scheme 1)

Tuesday
Oct 21

Scheme: Let-bindings, Typing, Scoping, Closures

Scott, Ch.3.6 (on closures)

Lecture14

Friday
Oct 24

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

Substitution

 

 

Scott, Ch.11.7 (Companion Site)

Lecture14.5

 

Lecture15

Tuesday
Oct 28

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

Scott, Ch.11.7 (Companion Site)

Lecture16

HW4 due Monday Oct 27,

HW5 (50pts, Scheme 2)

Friday Oct 31

Lambda calculus: Applied lambda calculus and combinators

Lecture17

Tuesday

Nov 4

Catch-up and Review

HackRPI Ad

Lecture18

HW5 due Monday Nov 3

Friday
Nov 7

W-drop deadline

Exam 2

 

Tuesday

Nov 11

Haskell: Getting started, Types and functions

Lecture19

fun.hs

Friday

Nov 14

P/NC deadline

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

Lecture20

Plan.hs

HW6 (50pts, Haskell)

Tuesday

Nov 18

Haskell, conclusion: List comprehensions, ADTs and Maybe, Higher-Order Functions

 

 

 

Lecture21

Friday

Nov 21

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

Scott, Ch.7.1-7.2

 

 

 

Lecture22

Tuesday

Dec 2

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

Scott, Ch 8

Lecture23

HW6 due Monday Dec 1,

HW7 (50pts, Data & control abstraction)

Friday

Dec 5

Control abstraction and parameter passing mechanisms

Scott, Ch.9.1-9.3,

Lecture24

 

 

Tuesday

Dec 9

Object-oriented languages. Encapsulation and inheritance, Initialization and finalization, Dynamic dispatch, Polymorphism.

Scott, Ch.10.1-10.4

Lecture25

 

 

Friday

Dec 12

Catch-up and Review

Lecture26

HW7 due Thursday Dec 11

Dec 17

Final Exam

 

A