Principles of Programming Languages
Logistics
Professor: Venkatesh Chopella
Grading Scheme
| Component | Weightage | 
|---|---|
| Quizzes (Tuesday) | 10 | 
| Quizzes (Friday) | 15 | 
| HW (8) | 40 | 
| Project | 30 | 
| Class Participation | 5 | 
Upcoming Deadlines
- Functional Language (21st October 23:55) hw06
 - Bisimilarity (29th September 23:55) hw05
 - Lexical Interpreter (22nd September 23:59) hw04
 - Arithmetic Language (8th September 23:59) hw03
 - Functional programming in Elm (1st September) hw02
 - Functional programming in Racket (25th August) hw01
 
Material
Books
Course Pages
Lectures
Lecture 1
- [O] Reading assignment: 
- Course Objectives
 - The Racket Guide, Chapters 1-6:
 - How to Design Programs, Chapters 1-5
 - Essentials of Programming Languages Chapter 1, Foreword
 
 
Lecture 2
- Reading assignment:
 
Lecture 3
On lexical scope and higher-order functions
- Reading assignment: 
- Currying I don’t get the point (of examples)
 - Higher Order Functions Still a bit confused
 - Functional Programming Yeeep
 
 
Lecture 4
- Reading assignment: 
- Streams I’m so lost
 - Evaluation in Racket
 
 
Lecture 5
- Reading assignment:
 
Lecture 6
- Reading assignment: 
- Coinduction and Term Graphs : Induction
 
 
Lecture 7
- Reading assignment: 
- Coinduction and Term Graphs : Coinductive terms, behaviour
 
 
Lecture 8
- Reading assignment: 
- None
 
 
Lecture 9
- Reading assignment: 
- Coinduction and Term Graphs : Bisimulation
 
 
Lecture 10
- Reading assignment:
 
Lecture 11
- Reading assignment: 
- Abstract reduction systems
 - Abstract reduction systems: board
 - TRaAT: Chapters 1, Sec 2.1
 
 
Lecture 12
- Reading assignment: 
- TRaAT: 2.2, 2.7
 
 
Lecture 13
- Reading assignment:
 
Lecture 14
- Reading assignment: 
- Essentials of Programming Languages Chapter 2 Sec 3.2
 - Essentials of Programming Languages Chapter 2 Sec 3.1
 - Notes on lexical scope
 - Notes on dynamic scope recursion
 - Scope: board work
 
 
Lecture 15
- Reading assignment:
 
Lecture 16
- Reading assignment: 
- Essentials of Programming Languages Chapter 2 Sec 3.4
 - Essentials of Programming Languages Chapter 2 Sec 3.5