PoPL 2016-Monsoon @ IIIT-H

Table of Contents

1 Announcements

  • [2016-08-05 Fri] Homework 1 announced. Due [2016-08-13 Sat] 5pm. Due [2016-08-16 Tue] Due [2016-08-19 Fri] 5pm.
  • Intro to Mathematical Computer Science by Prof. K Viswanath in the library reference section.
August Schedule
  • [2016-08-16 Tue] No class because IIIT following Mon schedule.
  • [2016-08-30 Tue]: Class cancelled.
  • [2016-08-27 Sat]: PA2 announced. Due [2016-08-31 Wed] 5pm.
  • [2016-09-01 Thu]: Make up class @ 3:30pm, Himalaya 105
September Schedule
  • [2016-09-15 Thu] tutorial slot converted to Lecture slot.
October Schedule
  • [2016-10-21 Fri]: Class Cancelled (Instr out of station)
  • [2016-10-25 Tue]: Tutorial Lecture 19
  • [2016-10-27 Thu]: Lecture No. 19 Tutorial
November Schedule
  • [2016-11-01 Tue]: Tutorial in place of Lecture.
  • [2016-11-03 Thu]: Lecture No. 22 in place of Tutorial
  • [2016-11-10 Thu]: tutorial slot converted to Lecture No. 25.
  • [2016-11-11 Fri]: Lecture No. 26 (last) of the semester.
  • [2016-11-15 Tue]">TUTORIAL (optional). Will be held by the instructor and will be mainly a doubt clearing session.

2 Course Title and Instructors

Principles of Programming Languages (PoPL)
Tue, Fri 2pm-3:30pm. Himalaya 105 202
Thu 3:30pm-5pm Himalaya 201
Venkatesh Choppella
Instructor's Office Hours
Fridays 3:30pm - 4:30pm, B5-205C Vindhya (SERC)
  • Saraswati Soumya (Office Hours: Wed 3:30pm-4:30pm, B5-206C Vindhya, SERC)
  • Itisha Dewan (Office Hours: Tue 3:30pm-4:30pm, Reading room)

3 Course Calendar

4 Objectives, Prerequisites, Texts and Syllabus

Please see the course announcement page.

5 Course infrastructure

5.1 Course server

Course pages
http://moodle.iiit.ac.in (Available for registered IIIT students only).

5.2 Course Mailing Lists


This mailing list is for you to post questions, etc., on the material in the course, or ideas related to the course. Announcements about the course will also be made on this list.

To subscribe to the list, please

  • send a blank email
  • with subject "Subscribe" (without quotes)
  • to popl-subscribe@lists.iiit.ac.in
  • and NOT to popl@lists.iiit.ac.in

5.2.1 Course Mailing List Archives

5.2.2 Popl Instructors mailing list


This mailing list is for the PoPL course TA's only.

Students may only post to this list, not read it. If you are a student, and wish to contact anyone in the PoPL team relating to your personal situation vis a vis the administrative aspects of the course please use this list. E.g, if you missed an exam, you should use this email list to request for a make up, not emails of individual TA's or the instructor. Emails about the content of the course (e.g, doubts about material in the book or lectures) should be mailed to the popl@lists.iiit.ac.in list.

6 Grading (tentative)

6.1 Grading

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

6.2 Reading Assignments

Relevant reading assignments will be posted in advance of the lecture, whenever possible. Students are expected to read the material assigned to them before coming to class.

6.3 Programming Assignments

Programming Assignments will be given time to time, and some will 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. The details of the commit process will be announced soon.

7 Important dates

Event Date Remarks
First day of class [2016-08-02 Tue]  
Add/Drop deadline [2016-08-09 Tue]  
Quiz1 [2016-08-19 Fri]  
Mid1 [2016-09-08 Thu] Exact date tbd
Mid1 papers dist. [2016-09-15 Thu]  
W grade deadline [2016-09-19 Mon]  
Mid2 [2016-10-17 Mon] 11:30am-1pm
Mid2 papers dist. [2016-11-07 Mon]  
Final [2016-11-18 Fri] 3pm-6pm
Final papers dist. [2016-11-30 Wed]  

8 Lecture plan

No. Date Topic Reading Assignment Estimated
1 [2016-08-02 Tue] Iterative Systems and computational process course objectives 5min
    Basic Functional Programming of algorithms The Racket Guide [Ch 1-6] 2h
      HtDP [Ch 1-5] 3h
      EoPL [Foreword, Ch1] 2h
      SICP [Sec 1.1-1.2] 2h
2 [2016-08-05 Fri] Inductive data types. Recursion on lists:. The Racket Guide [Ch 1-6] 3h
    list-length, list-append HtDP [Ch 1-5] 2h
3 [2016-08-09 Tue] Higher-order functions: compose, iterate, Notes on FP 2h
    Map, reduce, and filter. Notes on Currying 1h
      Class notes  
4 [2016-08-13 Sat] Algorithmic Problem solving and Class notes 1h
    the Mapcode combinator Viswanath, Ch1-2 3h
      Viswanath, Ch3-6 4h
5 [2016-08-19 Fri] Streams Class notes 2h
6 [2016-08-23 Tue] Disjoint Union data types SICP Sec 2.4 2h
7 [2016-08-26 Fri] Abstract Syntax trees and define-datatype EOPL, Ch2 4h
    ARITHMETIC language: syntax and interpreter    
8 [2016-09-01 Thu] AST annotation    
    ALGEBRAIC language: global environments    
9 [2016-09-02 Fri] Quiz 2. Env datatype, LEXICAL language EOPL, Ch2 4h
10 [2016-09-06 Tue] LEXICAL language contd. EOPL, Ch3, Sec 3.2 4h
  [2016-09-09 Fri] 1st MIDSEM week    
11 [2016-09-15 Thu] Closures: AST annotation and implementation EOPL Sec 3.3 4h
12 [2016-09-16 Fri] Recursion: AST annotation    
13 [2016-09-20 Tue] Recursion implementation EOPL Sec 3.4 4h
14 [2016-09-27 Tue] Y combinator and Recursion Class Notes 4h
15 [2016-09-30 Fri] Substitutions Class Notes 4h
    Explicit Ref with store passing    
    AST annotation    
16 [2016-10-04 Tue] Explicit and Implicit Refs EOPL Sec 4.1 to 4.3 8h
17 [2016-10-07 Fri] Object Oriented Programming Class Notes 2h
  [2016-10-11 Tue] DUSSERA: No class    
18 [2016-10-14 Fri] Embedding objects in Scheme Class notes on Javascript 8h
      Class notes on Safe JS  
      Objects in Scheme revisited  
      Javascript embedding  
      in Scheme  
  [2016-10-18 Tue] 2nd MIDSEM week    
  [2016-10-21 Fri] NO CLASS (Instructor travelling)    
19 [2016-10-25 Tue] TUTORIAL Continuation Passing Style EoPL Sec 6.1 2h
  [2016-10-27 Thu] Continuation Passing Style TUTORIAL    
20 [2016-10-28 Fri]   EoPL Sec 6.2 4h
    Register machines and imperative form class notes  
    Representation independence    
  [2016-11-01 Tue] No class    
    Single Stepping class notes 4h
21 [2016-11-03 Thu] Continuation Passing Interpreters EoPL Sec 5.1,5.2,5.3  
22 [2016-11-04 Fri] Continuation Passing AST annotation class notes 2h
23 [2016-11-08 Tue] Exceptions, Break, Abort, Letcc EoPL Ch 5.4 2h
24 [2016-11-10 Thu] Cooperating Threads EoPL Sec 5.5 Class notes 2h
    Monads I    
25 [2016-11-11 Fri] Monads I II Class Notes 4h
26 [2016-11-15 Tue] TUTORIAL 10am-11:30am 2pm (Optional, but    
    attendance will be taken).    
    Tutorial will be taken by the instructor    
    and will be a doubt-clearing session.    

9 Tutorial plan

Please see the tutorials page.

10 Programming Assignments

11 Texts and References

11.1 Text Books

How to Design Programs (HtDP)
available online. Reading assignments will be assigned from this book.
Essentials of Programming Languages (EoPL)
by Friedman and Wand. Prentice Hall India.

Readings will be assigned from this book. You are expected to purchase this book. A few copies will be available in the library.

11.2 Other references

Structure and Interpretation of Computer Programs
by Abelson and Sussman. Available online. Accompanying video lectures also available online.
Simply Scheme: Introducing Computer Science
by Brian Harvey and Matthew Wright. Available online.
Programming Languages: Applications and Interpretation
by Shriram Krishnamurti. Available online.
Visit http://www.racket-lang.org

Author: Venkatesh Choppella

Created: 2016-11-12 Sat 16:56

Emacs 24.3.1 (Org mode 8.2.10)