CIS 5000

Software Foundations

University of Pennsylvania · UGRD · Fall 2026

1 section
Add to a schedule

Catalog description

This course introduces basic concepts and techniques in the foundational study of programming languages. The central theme is the view of programs and programming languages as mathematical objects for which precise claims may be made and proved. Particular topics include operational techniques for formal definition of language features, type systems and type safety properties, polymorphism, constructive logic, and the Coq proof assistant. This course is appropriate as an upper-level undergraduate CIS elective. Undergraduates who have satisfied the prerequisites are welcome to enroll. There are no formal prerequisites, but students should know how to program at the level of a couple of undergrad courses and have developed some "mathematical maturity" (through two or more undergraduate math courses, including at least one involving rigorous proofs); a course in functional programming or compilers may also be helpful.

Sections

Current meeting, instructor, credit, and enrollment details

Updated 5 hours ago

001

Availability not recently verified
Class #pennsylvania_2-CIS5000Fall 2026UGRD1 credits
Days & times
No scheduled meeting time
Meeting dates
Location
Instructor
Staff
Class numbers and section codes come from the registrar.
Spot missing or incorrect course data?