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.