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
| 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
CS 3250 A is closed to new enrollment.
Fill out the form fields and you will be notified when the course is updated with details for next term. What can you do while you wait? Get your application started now by completing our pre-registration form.
