Lectures: |
||||||
---|---|---|---|---|---|---|
MWF | 1:00PM | - | 1:50PM | Cudahy 137 | ||
Office Hours: |
||||||
Course instructor |
  Prof. Dennis Brylow   | Mon | 3:00PM | - | 4:00PM | Cudahy 380 |
Tue | 4:00PM | - | 5:00PM | Cudahy 380 | ||
Wed | 2:00PM | - | 3:00PM | Cudahy 380 | ||
| ||||||
Textbooks: |
||||||
Essentials of Programming Languages.
Second Edition.
Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes.
MIT Press. |
||||||
The Little Schemer.
Fourth Edition.
Daniel P. Friedman and Matthias Felleisen.
MIT Press. |
||||||
We will make our way quickly through all of
The Little Schemer
during the first few weeks. It is a quick read, and an excellent
introduction to both functional programming style and the Scheme dialect
for beginners. Essentials of Programming Languages is, at best, a terse book. I have chosen it because the interpreter project at the core of this book is first class (no pun intended,) and I know that together we can make our way through the dense verbiage contained therein. I will assign many of the problems contained in EOPL, and others may make excellent exam questions. |
||||||
| ||||||
Course Outcomes: |
||||||
Upon completing this course, students will be able to: |
||||||
| ||||||
Grading Policy: |
||||||
Homework | 60% | |||||
Exam #1 | 10% | |||||
Exam #2 | 10% | |||||
Exam #3 | 20% | |||||
|
Schedule: |
||||||
---|---|---|---|---|---|---|
Week | Topics | Readings | Demos | Assignments | ||
01 | Introduction, Scheme | TLS Ch 1,2 | ||||
02 | Scheme | TLS Ch 3 | Lec4.scm Lec5.scm | HW #1 - Scheme | ||
03 | More Scheme | TLS Ch 4,5 | Lec5.java Lec7.scm | HW #2 - Scheme | ||
04 | Even More Scheme | TLS Ch 6,7 | Lec8.scm | HW #3 - Yeah, More Scheme | ||
05 | Data Abstraction, Induction | EOPL Ch 1, 2 | Lec12.scm | HW #4 - Environments | ||
06 | Interpreters | EOPL 3.1 | Exam #1 | |||
07 | Front End | EOPL 3.2 | Lec17.scm Lec20.scm | |||
08 | Conditionals Midterm Break |
EOPL 3.3 | HW #5 - Simple Interpreter | |||
09 | Local Binding Midterm Grades |
EOPL 3.4 | HW #6 - Conditionals | |||
10 | Procedures, Recursion | EOPL 3.5, 3.6 | Lec25.scm | HW #7 - Binding and Closures | ||
11 | Variable Assignment | EOPL 3.7 | HW #8 - Recursion Exam #2 |
|||
12 | Types, Type Checking Drop Day |
EOPL 4.1, 4.2 | ||||
13 | Abstraction Boundaries Thanksgiving Break |
EOPL 4.3 | ||||
14 | Type Inference | EOPL 4.4 | HW #9 - Statements and Assignment | |||
15 | Continuation Passing Style | EOPL Ch 7,8 | HW #10 - Type Checker |