PoPL 2018-Monsoon @ IIITH

Table of Contents

1 Announcements

1.1 September

[2018-09-14 Fri]
Your anonymous feedback to the course is important!
[2018-09-13 Thu]
Course pages updated with notes on λ-calculus.
[2018-09-04 Tue]
Course pages updated with board work of some classes.

1.2 August

[2018-08-31 Fri]
Assignment 2 deadline revised to [2018-09-10 Mon 21:00]. TAs requested to reflect change in Moodle as well.
[2018-08-27 Mon]
Cheating Policy published.
[2018-08-27 Mon]
Tutorial slot shifted to Saturdays 3:30pm at Himalaya 204
[2018-08-27 Mon]
Programming Assignment 2 posted on Moodle. Deadline 3rd September 5pm. [2018-09-10 Mon 21:00].
[2018-08-20 Mon]
Copy of Ch1 and Ch2 of Baader and Nipkow kept on reserve at the library.
[2018-08-19 Sun]
No lecture on [2018-08-21 Tue], but tutorial will be held @3:30pm in Himalaya 203.
[2018-08-12 Sun]
Assignment 1 due.
[2018-08-10 Fri]
Assignment 1 released on Moodle.
[2018-08-03 Fri]
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 203 Sat 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

Event Date Remarks
First day of class [2018-08-03 Fri]  
Add/Drop deadline [2018-08-07 Tue]  
Mid1 [2018-09-07 Fri] Exact date tbd
Mid1 papers dist. [2018-09-15 Sat]  
W grade deadline [2018-09-17 Mon]  
Mid2 [2018-10-12 Fri] Exact date tbd
Mid2 papers dist. [2018-10-20 Sat]  
Final [2018-11-20 Tue] Exact date tbd
Final papers dist. [2018-12-04 Tue]  

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)

6.1 Grading

Event Percentage
Mid 1 20
Mid 2 20
Final 35
Quizzes/HW 25

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.

8 Assignments

8.1 Reading

Relevant reading assignments will be posted whenever possible. Diligently completing the reading assignments will help you understand the lectures better.

8.2 Programming

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

No. Date Topic Reading Assignment Estimated
1 [2018-08-03 Fri] 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 [2018-08-07 Tue] Lexical scope and Notes on Currying 15m
    Higher-order functions and Higher Order Functions 1h
3 [2018-08-10 Fri] Map, reduce, and filter Notes on FP 2h
    Reduction and redexes:    
    a systems view    
4 [2018-08-14 Tue] ADDITION language: Abstract Syntax EOPL Ch2 2h
    Reduction, Board work (pdf)  
    Path based reduction Example (pdf)  
5 [2018-08-17 Fri] Abstract Reduction Systems Notes , TRAAT Ch1 and 6h
      Sec 2.1-2.4, 2.7  
    Operational Semantics of ADDITION Notes  
  [2018-08-21 Tue] No lecture (Wednesday Schedule)    
6 [2018-08-24 Fri] Interpreter Implementation in Racket Interpreter  
    IF+/ Language semantics. Errors Notes on IF+/  
7 [2018-08-28 Tue] Lexical Scope, Environments EOPL Ch2, Sec 3.1, 4h
    LEXICAL language:valuation semantics Sec 3.2  
    and implementation, Interpreter board work (pdf)  
8 [2018-08-31 Fri] Closures, FUNCTIONAL language EOPL Sec 3.3 2h
      board work (pdf)  
9 [2018-09-04 Tue] Extent and Dynamic 'scope' EOPL Sec 3.4, Sec 3.5 2h
    Evaluation Semantics for board work (pdf)  
    Recursion RECURSIVE language    
  [2018-09-07 Fri] 1st MIDSEM week (no class)    

9.2 1st Midsem to 2nd Midsem (Tentative)

No. Date Topic Readings Estimated
10 [2018-09-11 Tue] Lambda calculus EOPL Sec 3.6-3.7 4h
    Reduction and normal forms Notes  
11 [2018-09-14 Fri] Replacement, Substitution Notes 4h
12 [2018-09-18 Tue] PARLANG: a small Notes 4h
    parallel language with    
    shared memory Notes  
    Parallel reduction in    
    λ calculus    
  [2018-09-21 Fri] MUHARRAM: No class    
13 [2018-09-25 Tue] Church-Rosser Theorem Notes 4h
    Church numerals    
14 [2018-09-28 Fri] Y combinator Notes to be  
    Lambda Calculus encoding provided  
    of the Turing machine    
15 [2018-10-01 Mon] Hoare Logic I    
    (by Aseem Rastogi,    
    Microsoft Research)    
16 [2018-10-05 Fri] Hoare Logic II    
    (Aseem Rastogi)    
17 [2018-10-09 Tue] Reduction strategies: EOPL Sec 4.5 4h
    Call by value, Call by name    
  [2018-10-12 Fri] 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.

11 License

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.

Venkatesh Choppella

2018-09-18 Tue 21:42