Lectures: |
||||||
---|---|---|---|---|---|---|
MWF | 2:00PM | - | 2:50PM | Cudahy 137 | ||
Office Hours: |
||||||
Course instructor |
  Prof. Dennis Brylow   | Mon | 3:00PM | - | 4:00PM | Cudahy 380 |
Mon | 7:00PM | - | 8:00PM | Cudahy 380 | ||
Wed | 3:00PM | - | 4:00PM | Cudahy 380 | ||
Fri | 11:00AM | - | 12: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% | |||||
Pop (Reading) Quizzes | 5% | |||||
Exam #1 | 10% | |||||
Exam #2 | 10% | |||||
Exam #3 | 15% | |||||
|
Schedule: |
||||||
---|---|---|---|---|---|---|
Week | Topics | Readings | Demos | Assignments | ||
01 | Introduction, Scheme | TLS Ch 1,2 | Lecture #3 | |||
02 | Scheme | TLS Ch 3 | Lecture #4 Lec5.scm Lec5.java |
HW #1 - Scheme | ||
03 | More Scheme | TLS Ch 4,5 | Tree.scm Lec7.scm |
HW #2 - Scheme | ||
04 | Even More Scheme | TLS Ch 6,7 | HW #3 - Yeah, More Scheme | |||
05 | Data Abstraction, Induction | EOPL Ch 1, 2 | HW #4 - Environments | |||
06 | Interpreters | EOPL 3.1 | Exam #1 | |||
07 | Front End | EOPL 3.2, 3.3 | Lecture #19 | HW #5 - Simple Interpreter | ||
08 | Conditionals, Local Binding Midterm Break |
EOPL 3.3, 3.4 | HW #6 - Conditionals | |||
09 | Procedures, Recursion Midterm Grades |
EOPL 3.5, 3.6 | HW #7 - Binding and Closures | |||
10 | Variable Assignment | EOPL 3.7 | HW #8 - Statements and Assignment | |||
11 | Types, Type Checking | EOPL 4.1, 4.2 | Exam #2 | |||
12 | Abstraction Boundaries Drop Day |
EOPL 4.3 | HW #9 - Type Checker | |||
13 | Type Inference Thanksgiving Break |
EOPL 4.4 | ||||
14 | Objects | EOPL Ch 5 | HW #10 - List Types | |||
15 | History of Programming Langauges | HW #11 - Object-Oriented Interpreter HW #12 - Presentation on Programming Language |