About CS 225 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 124, CS 125.


Prereqs enforced by the system: CS 124 and CS 125

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, 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 124, CS 125. The main course materials aside from lectures will be course notes that summarize main topics and will be posted before each class. These and additional supplementary materials will be posted on blackboard. All materials for the class will be freely available.


Homework for the course will be a combination of written assignments and programming assignments. Written assignments will generally be distributed every 10 to 14 days and may include small programming exercises, while programming assignments will be less frequent but will require more programming effort. All homework solutions are expected to be an original, individual effort. (60% of final grade). In addition to homework, a midterm and final exam will be conducted (40% of final grade).

Course Dates



Votey Bldg 307 (View Campus Map)


to on Tuesday and Thursday

Important Dates

Note: These dates may not be accurate for select courses during the Summer Session.

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


    There are no courses that meet this criteria.