Programming Language Concepts
Syllabus
Course Information
Course Number and Section: CS:3820:0001
Semester, Year: Fall 2025
Time: 3:30-4:45pm TTh
Location: LR2 VAN
Instructor: Andrew Marmaduke
Office Location: 1B JH
Office Hours: 1:30-3pm WTh
email: [first]-[last]@uiowa.edu
TA: Tristan MacKinlay
TA Office Location: 1B JH
TA Office Hours: 1-2:30pm M and 3-4:30pm W
TA: Xiangzhe Yuan
TA Grader
DEO: Alberto Segre, 14D MLH
Description
This course will cover concepts of programming languages: syntax, semantics, introductory type theory, functional programming, lambda calculus.
The book Functional Programming in Lean by David Thrane Christiansen (https://lean-lang.org/functional_programming_in_lean/) will be used.
The course will use the Lean programming language (https://lean-lang.org/).
There is extensive community documentation available (https://leanprover-community.github.io/).
Learning Objectives
After taking this course, you should be able to:
- create novel languages with syntax and semantics;
- analyze languages and their meanings;
- evaluate recursive functions and inductive definitions;
- create functional programs;
- understand standard programming languages like the lambda calculus.
Grading System
Plus/minus grading will be used for this course. The grading is based on 10-14 homeworks (15%), two midterms (20% each), a project (20%), and a final exam (25%).
Github Classroom will be used to submit and automatically grade homework.
Homework is pass/fail, there is no partial credit.
Collaboration
Students are allowed to collaborate in their project groups.
It is expected that every student in the group is capable of explaining and solving the solution to all homework problems.
No collaboration is allowed outside of homework assignments and the project.
Late Policy
Late submissions will be accepted up to 48 hours after the deadline.
After the stated deadline, the maximum achievable score for a late assignment is 90%.
Twenty-four (24) hours after the stated deadline, the maximum achievable score for a late assignment is 80%.
Forty-eight (48) hours after the stated deadline, the maximum achievable score for a late assignment is 0%.
Starting early is key, and the TA and I will be glad to help with any questions you may have on the assignments.
Please visit us often during our office hours.
Resources for Students
Speaking Center: http://clas.uiowa.edu/rhetoric/for-students/speaking-center
Tutor Iowa: http://tutor.uiowa.edu/
The College of Liberal Arts and Sciences: Important Policies and Procedures
Please visit https://provost.uiowa.edu/student-course-policies for important policies and procedures.