PoPL 2018-Monsoon @ IIITH
Table of Contents
- 1. Announcements
- 2. Course Info
- 3. Important dates
- 4. Objectives, Prerequisites and Syllabus
- 5. Course infrastructure
- 6. Grading (tentative)
- 7. Cheating Policy
- 8. Assignments
- 9. Lecture plan
- 10. Texts and References
- 11. License
- Your anonymous feedback to the course is important!
- Course pages updated with notes on λ-calculus.
- Course pages updated with board work of some classes.
- Assignment 2 deadline revised to . TAs requested to reflect change in Moodle as well.
- Cheating Policy published.
- Tutorial slot shifted to Saturdays 3:30pm at Himalaya 204
- Programming Assignment 2 posted
on Moodle. Deadline
3rd September 5pm. .
- Copy of Ch1 and Ch2 of Baader and Nipkow kept on reserve at the library.
- No lecture on , but tutorial will be held @3:30pm in Himalaya 203.
- Assignment 1 due.
- Assignment 1 released on Moodle.
- Text books (EOPL) put in reserve at the library.
2 Course Info
- CSC 415
- Principles of Programming Languages (PoPL)
- Tue, Fri 10am-11:30am. Himalaya 203
Wed 3:30pm-5pm Himalaya 203Sat 3:30pm-5pm Himalaya 204
- Venkatesh Choppella
- Teaching Assistants
- Siddharth Bhat, Nitin John Raj
- Office Hours
- Venkatesh: Fridays, 4:00pm-5:00pm B5-205C Vindhya (SERC)
- Nitin: Tuesdays, 4:00pm-5:00pm B5-206C
- Siddharth: Thursdays, 3:30pm-4:30pm, A3-109
3 Important dates
|First day of class|
|Mid1||Exact date tbd|
|Mid1 papers dist.|
|W grade deadline|
|Mid2||Exact date tbd|
|Mid2 papers dist.|
|Final||Exact date tbd|
|Final papers dist.|
4 Objectives, Prerequisites and Syllabus
Please see the course announcement page.
5 Course infrastructure
- Course web pages
- Course feedback form
- This form is for you to provide anonymous continuous feedback throughout the course.
Will not be used.Moodle will be used for discussion, not the gitlab forum, at least for now.
6 Grading (tentative)
7 Cheating Policy
- If you are caught cheating in the homeworks, you will receive a zero for that homework and all previous homeworks.
- If you are caught cheating in the exams, your case will be taken up by the Office of the Dean of Academics.
Relevant reading assignments will be posted whenever possible. Diligently completing the reading assignments will help you understand the lectures better.
Programming Assignments will be given time to time, and some may be graded. Doing these assignments is the best way to understand the material and prepare for the exams and quizzes. Approx. 6-8 hours per week of effort is expected from the student towards reading and programming assignments. All programming assignments need to be committed.
9 Lecture plan
9.1 Before 1st Midsem
|1||Course Objectives, Administrivia||course objectives||5min|
|Basic Functional Programming with Racket||The Racket Guide [Ch 1-6]||2h|
|Recursion and Tail Recursion||HtDP [Ch 1-5]||3h|
|EoPL [Foreword, Ch1]||1hr|
|SICP [Sec 1.1-1.2]||2h|
|2||Lexical scope and||Notes on Currying||15m|
|Higher-order functions||and Higher Order Functions||1h|
|3||Map, reduce, and filter||Notes on FP||2h|
|Reduction and redexes:|
|a systems view|
|4||ADDITION language: Abstract Syntax||EOPL Ch2||2h|
|Reduction,||Board work (pdf)|
|Path based reduction||Example (pdf)|
|5||Abstract Reduction Systems||Notes , TRAAT Ch1 and||6h|
|Sec 2.1-2.4, 2.7|
|Operational Semantics of ADDITION||Notes|
|No lecture (Wednesday Schedule)|
|6||Interpreter Implementation in Racket||Interpreter|
|IF+/ Language semantics. Errors||Notes on IF+/|
|7||Lexical Scope, Environments||EOPL Ch2, Sec 3.1,||4h|
|LEXICAL language:valuation semantics||Sec 3.2|
|and implementation, Interpreter||board work (pdf)|
|8||Closures, FUNCTIONAL language||EOPL Sec 3.3||2h|
|board work (pdf)|
|9||Extent and Dynamic 'scope'||EOPL Sec 3.4, Sec 3.5||2h|
|Evaluation Semantics for||board work (pdf)|
|Recursion RECURSIVE language|
|1st MIDSEM week (no class)|
9.2 1st Midsem to 2nd Midsem (Tentative)
|10||Lambda calculus||EOPL Sec 3.6-3.7||4h|
|Reduction and normal forms||Notes|
|12||PARLANG: a small||Notes||4h|
|parallel language with|
|Parallel reduction in|
|MUHARRAM: No class|
|14||Y combinator||Notes to be|
|Lambda Calculus encoding||provided|
|of the Turing machine|
|15||Hoare Logic I|
|(by Aseem Rastogi,|
|16||Hoare Logic II|
|17||Reduction strategies:||EOPL Sec 4.5||4h|
|Call by value, Call by name|
|2nd MIDSEM week|
10 Texts and References
- Essentials of Programming Languages 3rd Edition. Friedman and Wand. This is the main text for the course.
- How to Design Programs. Felleisen et al. Available online.
- Structure and Interpretation of Programs. Abelson and Sussman. Available online. Accompanying video lectures also available online.
- Term Rewriting and All That. Baader and Nipkow. Photocopy of Chapters 1 and 2 available on reserve in the IIITH library.
- Programming Languages: Application and Interpretation 2nd Edition. Available online.
- Simply Scheme: Introducing Computer Science. Brian Harvey and Matthew Wright. Available online.
- Racket Guide. Available as part of Racket 7.0 documentation.
Material in the POPL course pages is covered by the Creative Commons CC-BY-NC-ND Attribution-NonCommercial-NoDerivs license. You are free to use the material for non commercial purposes without changing it and after attribution.