PoPL 2026-Monsoon @ IIITH

PoPL 2026-Monsoon @ IIITH

Venkatesh Choppella

Table of Contents

  1. 1. Course Information
  2. 2. Objectives, Prerequisites and Overview
  3. 3. Course Infrastructure
  4. 4. Lecture Schedule
  5. 5. Texts and References
  6. 6. Grading and Submission Policies
  7. 7. Academic Integrity
  8. 8. Important Dates
  9. 9. License

1. Course Information🔗

Course Details

CS1.402 Principles of Programming Languages (PoPL)

Credit (L-T-P-C): 3-1-0-4

Lectures

Mon, Thu 3:35 pm - 5:00 pm (SH1)

Instructor
Teaching Assistants
Office Hours
  • Venkatesh: Tue 1:30-2:30pm (501 Himalaya D Block)

2. Objectives, Prerequisites and Overview🔗

Please see the course announcement page for details on course objectives and prerequisites.

3. Course Infrastructure🔗

Course Webpage

https://faculty.iiit.ac.in/~venkatesh.choppella/popl

GitLab Classroom

(Restricted access) TBA

Source Code Repository

The Racket/Scheme source code for all the code in Essentials of Programming Languages (3rd Edition) is available at https://github.com/mwand/eopl3.

4. Lecture Schedule🔗

No.

Date

Topic

Readings

1

2026-07-30 Thu

Intro to Recursive Functions in Racket and Lean

RG and Ch 1: FPiL

2

2026-08-03 Mon

Types, Currying and Higher-Order Functions

RG and Ch 1: FPiL

3

2026-08-06 Thu

Product and Sum Types, Structures, Inductive Type, Type Classes, Propositional Logic

Ch 1-3: Logic and Proof in Lean

4

2026-08-10 Mon

Valuation Semantics and Natural Deduction for Propositional Logic. Introduction to Proofs in Lean

Ch 1-4: Logic and Proof in Lean

5. Texts and References🔗

5.1. Main Texts🔗

There is no single text for the course. Material will be drawn from several online resources.

LEAN

TODO

EOPL

Essentials of Programming Languages 3rd Edition. Friedman and Wand. This is the main text for the course. Available on Amazon.in. Copies on reserve in the library.

HtDP

How to Design Programs. Felleisen et al. Available online. Uses Racket exclusively.

Mapcode book

An introduction to mathematical computer science. Kasturi Viswanath. Copies available on reserve at the library.

TRaAT

Term Rewriting and All That. Baader and Nipkow. Chapters 1 and 2. Chapter copies on reserve in the library.

SICP

Structure and Interpretation of Programs. Abelson and Sussman. Available online. Accompanying video lectures also available online.

PLAI

Programming Languages: Application and Interpretation 2nd Edition. Shriram Krishnamurti. Available online.

SSICS

Simply Scheme: Introducing Computer Science. Brian Harvey and Matthew Wright. Available online.

RG

Racket Guide. Available as part of Racket language documentation.

5.3. Reading Resources & Tools🔗

The following resources are recommended for functional programming and theorem proving components:

Topic / Resource

URL / Reference Link

Intro to FP using Racket

racket-lang.org

Functional Programming in Lean

lean-lang.org/functional_programming_in_lean/

Lean Language Reference Manual

https://lean-lang.org/doc/reference/latest/

Theorem Proving in Lean

lean-lang.org/theorem_proving_in_lean4/

Lean Community Portal

leanprover-community.github.io/

6. Grading and Submission Policies🔗

6.1. Grades Breakup🔗

Assessment Component

Weight (%)

Homeworks (HWs)

25

Quiz 1 (Q1)

10

Quiz 2 (Q2)

10

Midsem Exam (Mid)

25

Endsem Exam (Final)

30

6.2. Late Submission Policy🔗

Delay Period

Maximum Grade Credit

On Time (t+0)

100%

Up to 3 days late (t+3d)

95%

Up to 1 week late (t+1wk)

85%

Up to 2 weeks late (t+2wk)

70%

Up to 3 weeks late (t+3wk)

50%

Up to 4 weeks late (t+4wk)

25%

7. Academic Integrity🔗

7.1. Collaboration and Resource Policy🔗

You are encouraged to discuss the course material and the homework and its solutions with your classmates. After consulting with your friends and online resources, however, you are expected to implement the homework solutions on your own.

When collaborating with your classmates in projects, please ensure that you properly credit your fellow contributors.

7.2. Generative AI Policy🔗

The use of Generative AI tools (such as ChatGPT, GitHub Copilot, Claude, etc.) is permitted under the following guidelines. To ensure academic integrity, this policy is strictly enforced through verifiable mechanisms:

  • Allowed Assistance: You may use AI tools to explain programming language concepts, debug syntax errors, understand Lean 4 compiler errors, or brainstorm algorithms.

  • Prohibited Direct Copying: Directly copying and submitting AI-generated code as your own work is prohibited.

  • Verification through Live Defense (Vivas): Course grading includes mandatory and random oral examinations (vivas) conducted by the TAs or Instructor. During the viva:

    1. You will be asked to explain the logic, semantics, and design choices of specific parts of your submitted code.

    2. You will be asked to perform a minor live modification or extension to your code (e.g., changing a recursive function definition or adding a simple rule) to demonstrate practical understanding. Failure to explain your code or perform the live modification will result in a grade of zero for the assignment and referral for disciplinary action.

  • Verification through Version Control (Git): All submissions must be accompanied by a logical Git commit history on GitLab Classroom. Submissions containing only a single monolithic commit of completed code without developmental history will be automatically flagged for audit and mandatory viva defense.

  • Attribution-Friendly Submissions: If you use a generative AI tool to write, refactor, or structure any portion of your code, you must explicitly attribute it. Honest, clear attribution of AI assistance is treated as a valid academic citation rather than cheating, provided you include a header comment in your submission containing:

    1. The specific tool used (e.g., Claude 3.5 Sonnet).

    2. The prompt(s) used to generate the code.

    3. The exact parts of the code generated or inspired by the AI, and how you modified or integrated them. Note that even with proper attribution, you must still fully understand the code and pass the Live Defense checks to receive credit.

7.3. Penalties for Unfair Means🔗

Homeworks

If you are caught adopting unfair means in doing homeworks, you will receive a zero for that homework and all previous homeworks.

Quizzes

If you are caught adopting unfair means in a quiz, you will receive a zero for that quiz and all previous quizzes.

8. Important Dates🔗

Almanac on the intranet

Event

Date

First Day of Classwork

2026-07-30 Thu

Add/Drop deadline

2026-08-05 Wed

Quiz 1

2026-08-27 Thu

Midsem Exams

2026-09-21 Mon to 2026-09-24 Thu

Quiz 2

2026-10-22 Thu

Withdrawal of course with 'W'

2026-11-02 Mon

Last Day of Classwork

2026-11-19 Thu

Endsem Exams

2026-11-23 Mon to 2026-11-30 Mon

Declaration of Results

2026-12-15 Tue

9. 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.