CS 3540: Programming Languages and Paradigms

the PLT lambda log of the Racket project

What's New?

Here is a zip file containing the starter code you need to write lexical-address. If you would rather code in Dr. Racket than on paper, download it and give it a try.

Schedule

Week Date Unit Topic Notes & Code Assignments
1 Tue, 01/16 A Gentle Introduction to the Study of Languages 01 notes Homework 0
Thu, 01/18 An Introduction to Racket Learning a New Language: Racket 02 notes & code Homework 1
2 Tue, 01/23 & Functional Programming More Primitive Racket 03 notes & code Homework 2
Thu, 01/25 Racket Data Structures 04 notes & code
3 Tue, 01/30 Racket Functions 05 notes & code Homework 3
Thu, 02/01 Higher-Order Functions 06 notes & code
4 Tue, 02/06 Thinking Functionally 07 notes & code
Thu, 02/08 Inductive Specifications Inductive Definitions of Data 08 notes Quiz 1
5 Tue, 02/13 & Recursive Programs Defining Recursive Programs 09 notes & code Homework 4
Thu, 02/15 Recursive Programming Techniques 10 notes & code
6 Tue, 02/20 Recursive Programs and Loops 11 notes & code Homework 5
Thu, 02/22 Recursive Programs and Programming Languages 12 notes & code
7 Tue, 02/27 An Application of Recursion: Variable Binding 13 notes & code Homework 6
Thu, 02/29 An Application of Recursion: A Small Interpreter 14 notes & code
8 Tue, 03/05 Recursive Programming Review 15 notes & code
Thu, 03/07 Syntactic Abstraction Syntactic Abstraction 16 notes & code Quiz 2
. Tue, 03/12 SPRING BREAK
Thu, 03/14
9 Tue, 03/19 Local Variables as Syntactic Abstraction 17 notes & code Homework 7
Thu, 03/21 off day
10 Tue, 03/26 Variable Reference and Scope 18 notes & code Homework 8
Thu, 03/28 Lexical Addresses 19 notes & code
11 Tue, 04/02 Lexical Addresses, Part 2 20 notes & code
Thu, 04/04 Data Abstraction Data Abstraction and Variety 22 notes & code Quiz 3
12 Tue, 04/09 The Finite Function ADT 23 notes & code Homework 9
Thu, 04/11 Programs with State 24 notes & code
13 Tue, 04/16 Objects as Closures 25 notes & code Code review
Thu, 04/18 Building a Language Interpreter 26 notes & code Homework 10
14 Tue, 04/23 Creating New Syntax 21 notes & code
Thu, 04/25 Bringing It All Together Optimization in a Simple Interpreter 28 notes & code Homework 11
15 Tue, 04/30 The Next Big Thing? 29 notes & code
Thu, 05/02 Back to the Future 30 notes & code
F Thu, 05/09 1:00 - 2:50 p.m. Final Exam