About CS 3250 A
Principles of programming language design and fundamental implementation concepts. Syntax, semantics, and static analysis of programs. Provable properties of programming languages such as type safety. Prerequisites: CS 2240, CS 2250.
Notes
Prereqs enforced by the system: CS 2240, CS 2250; Open to degree and PACE students
Section Description
The focus of this course is on the design of programming languages (PLs) and general underlying concepts. We will emphasize:
Syntax (form): What language constructs are desirable or feasible? How do we want to write programs?
Semantics (meaning): How do we precisely define and document what language features should “do”?
Implementation: How do we implement a language so that its features behave on a computer the way we document/intend them to?
Reasoning about programs: Well-designed languages allow careful, even formal, thought and reasoning, not just hacking. How can formal reasoning be integrated in PL design and used for programming?
Program properties, aka Metatheory: How can we define and prove general properties of programs, such as type safety, based on language design?
Static (compile-time) analysis: Ensures properties of programs, by predicting the meaning of programs based solely on their form.
Section Expectation
Prerequisites: CS 2240, CS 2250.
Course materials will include a textbook and other course notes posted to Brightspace. Students should expect to spend 6-8 hours a week on coursework outside of class.
Evaluation
Homework for the course will be a combination of written assignments and programming assignments. All homework solutions are expected to be an original, individual effort. (50% of final grade).
In addition to homework, a midterm and final exam will be conducted (45% of final grade). Attendance and participation will account for an additional 5% of final grade.
Important Dates
Note: These dates may change before registration begins.
Courses may be cancelled due to low enrollment. Show your interest by enrolling.
| Last Day to Add | |
|---|---|
| Last Day to Drop | |
| Last Day to Withdraw with 50% Refund | |
| Last Day to Withdraw with 25% Refund | |
| Last Day to Withdraw |
Resources
Remind Me Form
Remind yourself about CS 3250 A.
We'll send you a reminder before Fall 2026 registration begins.
