CS 105 — Programming Languages (Fall 2022)

What you need to do each week

September 5 to September 11: What you need to do

Tuesday

Scan the syllabus

Get the textbook Programming Languages: Build, Prove, and Compare, from Donna Cirelli

Consider ordering the Ullman book in time for early October

Wednesday

Attend lecture on programming with proof systems and laws (notes, slides)

Take a first look at CQs and homework for programming with proof systems and laws

Thursday or Friday

Attend recitation: Data-driven, rule-driven programming process

Friday

Read about the experiences of successful students, and read the tips for CS 105 students

Pick up model solutions for recitation (after 2:30pm)

September 12 to September 18: What you need to do

Monday

Attend 1st lecture on operational semantics (notes, slides)

Tuesday

Submit CQs and homework for programming with proof systems and laws (or use an extension token to submit on Wednesday)

Wednesday

Attend 2nd lecture on operational semantics (notes, slides)

Take a first look at CQs and homework for operational semantics

Thursday

Model solutions to programming with proof systems and laws are released

Thursday or Friday

Attend recitation: Derivation trees, semantic rules, preview of metatheory

Friday

Get the take-home handout on metatheory

Pick up model solutions for recitation (after 2:30pm)

September 19 to September 25: What you need to do

Monday

Attend 3rd lecture on operational semantics (notes, slides)

Tuesday

Submit CQs and homework for operational semantics (or use an extension token to submit on Wednesday)

Wednesday

Attend lecture on Scheme (notes, slides)

Take a first look at CQs and homework for Scheme

Thursday

Model solutions to operational semantics are released

Thursday or Friday

Attend recitation: Scheme list functions, calculational proofs, functions with accumulating parameters

Friday

Pick up model solutions for recitation (after 2:30pm)

September 26 to October 2: What you need to do

Monday

Attend 1st lecture on higher-order functions (notes, slides)

Tuesday

Submit CQs and homework for Scheme (or use an extension token to submit on Wednesday)

Wednesday

Attend 2nd lecture on higher-order functions (notes, slides)

Take a first look at CQs and homework for higher-order functions

Thursday

Model solutions to Scheme are released

Thursday or Friday

Attend recitation: Higher-order functions on lists, abstracting over comparison functions

Friday

Pick up model solutions for recitation (after 2:30pm)

October 3 to October 9: What you need to do

Monday

Attend 1st lecture on continuations (notes, slides)

Tuesday

Submit CQs and homework for higher-order functions (or use an extension token to submit on Wednesday)

Wednesday

Attend 2nd lecture on continuations (notes, slides)

Take a first look at CQs and homework for continuations

Thursday

Model solutions to higher-order functions are released

Thursday or Friday

Attend recitation: Searching with success and failure continuations

Friday

Pick up model solutions for recitation (after 2:30pm)

October 10 to October 16: What you need to do

Monday

No class (Indigenous Peoples' Day)

Tuesday

Submit CQs and homework for continuations (or use an extension token to submit on Wednesday)

Wednesday

Attend 1st lecture on ML (notes, slides)

Take a first look at CQs and homework for ML

Thursday

No recitations this week

Model solutions to continuations are released

Friday

No recitations this week

October 17 to October 23: What you need to do

Monday

Attend 2nd lecture on ML (notes, slides)

Wednesday

Attend 1st lecture on type systems (notes, slides)

Thursday or Friday

Attend recitation: Patterns and types in Standard ML

Friday

Pick up model solutions for recitation (after 2:30pm)

October 24 to October 30: What you need to do

Any day

If you haven't already, visit the instructor's office hours for five minutes (deadline is October 31).

Monday

Attend 2nd lecture on type systems (notes, slides)

Tuesday

Submit CQs and homework for ML (or use an extension token to submit on Wednesday)

Wednesday

Attend 3rd lecture on type systems (notes, slides)

Take a first look at CQs and homework for type systems

Thursday

Model solutions to ML are released

Thursday or Friday

Attend recitation: Type rules and type checking

Friday

Pick up model solutions for recitation (after 2:30pm)

October 31 to November 6: What you need to do

Monday

Attend 1st lecture on type inference (notes, slides)

Wednesday

Attend 2nd lecture on type inference (notes, slides)

Thursday

Submit CQs and homework for type systems (or use an extension token to submit on Friday)

Thursday or Friday

Attend recitation: Programming Typed uScheme or regression testing of type checker

Friday

Take a first look at CQs and homework for type inference

Pick up model solutions for recitation (after 2:30pm)

Saturday

Model solutions to type systems are released

November 7 to November 13: What you need to do

Monday

Attend 3rd lecture on type inference (notes, slides)

Tuesday

Attend recitation: Solving conjunction constraints

Wednesday

Attend 1st lecture on modules (notes, slides)

Thursday

Attend recitation: Solving conjunction constraints

Pick up model solutions for recitation (after 2:30pm)

Friday

No recitations (Veterans' Day) (makeup Tuesday)

November 14 to November 20: What you need to do

Monday

Attend 2nd lecture on modules (notes, slides)

Tuesday

Submit CQs and homework for type inference (or if you have an extension token left, use it to submit on Wednesday)

Wednesday

Attend 1st lecture on lambda calculus (notes, slides)

Take a first look at CQs and homework for modules

Thursday

Model solutions to type inference are released

Thursday or Friday

Attend recitation: Modules: Abstraction functions, representation invariants

Friday

Pick up model solutions for recitation (after 2:30pm)

November 21 to November 27: What you need to do

Monday

Attend 2nd lecture on lambda calculus (notes, slides)

Tuesday

Submit CQs and homework for modules (or if you have an extension token left, use it to submit on Wednesday)

Wednesday

No class (Thanksgiving Break)

Thursday

Model solutions to modules are released

November 28 to December 4: What you need to do

Monday

Attend 1st lecture on Smalltalk (notes, slides)

Take a first look at CQs and homework for Smalltalk

Wednesday

Attend 2nd lecture on Smalltalk (notes, slides)

Thursday or Friday

Attend recitation: Getting started with Smalltalk

Friday

Pick up model solutions for recitation (after 2:30pm)

December 5 to December 11: What you need to do

Monday

Attend 3rd lecture on Smalltalk (notes, slides)

Wednesday

Attend 4th lecture on Smalltalk (notes, slides)

Thursday or Friday

Attend recitation: Abstract base classes, double dispatch

Friday

Pick up model solutions for recitation (after 2:30pm)

December 12 to December 18: What you need to do

Monday

Attend lecture on my answers to your questions (notes, slides)

Tuesday

Submit CQs and homework for Smalltalk (or if you have an extension token left, use it to submit on Wednesday)

Thursday

Model solutions to Smalltalk are released