Course meetings: Tuesdays and Thursdays, 12:30-1:45 in Olsson 011.
Textbook: No required text. Course will revolve around reading research papers. A list of recommended books for background reading is available at http://www.cs.virginia.edu/~cs655/books.html.
Expected background: Experience programming in several different languages, some compiler experience, a theory course. Undergraduates who have not taken CS415 must obtain permission of the instructor to take this course.
Web page: http://www.cs.virginia.edu/~cs655 - Check this page frequently for couse announcements. All lectures and assignments will be available on the web.
|email@example.com||Instructor and TA. We answer this religiously. If you don't get an answer within 8 hours something is wrong.|
|firstname.lastname@example.org||Goes to all students in the class and staff. Students should only mail this list for important announcements.|
|phone||x2-2218 (office), (804) 825-0207 (mobile)|
|office hours||Monday 1:30-2:30; Thursdays after class; other times, by email appointment.|
TA: John Haskins, Jr.
Students are also encouraged to consult outside experts - many of the authors of papers we read are easily available by email. (Note: if they get annoyed by your questions, don't say I sent you!)
Always list the resources you used (students, outside experts, papers, web sites) on your submission.
|Introduction and Background|
|Thursday, 20 January||Introduction: Why programming languages matter?|
|Thursday, 27 January||Operational Semantics|
|Tuesday, 1 February||Milestones in Programming Languages, Before Algol|
|Thursday, 3 February||Algol60|
|Tuesday, 8 February||Algol successors: Algol68, Bliss, C, Pascal|
|Thursday, 10 February||Types|
|Tuesday, 15 February||Data Abstraction (CLU), Reasoning about Data Abstractions|
|Thursday, 17 February||What Is Object-Oriented Programming?|
|Tuesday, 22 February||When is Subtyping Safe?|
|Thursday, 24 February||Object-Oriented Languages|
|Tuesday, 29 February||Guest Lecture by John Viega: Multiple Inheritance and Automated Delegation|
|Thursday, 2 March||Axiomatic Semantics and Program Verification|
|Tuesday, 7 March||Proof-Carrying Code|
|Thursday, 9 March||Lambda Calculus|
|Spring Break, 11 March - 19 March||Ponder the power of Lambda|
|Tuesday, 21 March||Fixed Points|
|Thursday, 23 March||Functional Languages, Type Inference|
|Tuesday, 28 March||Mock Trial Part 1: Openings, Prosecution Witnesses|
|Thursday, 30 March||Mock Trial Part 2: Defense Witnesses, Closings|
|Tuesday, 4 April||Denotational Semantics|
|Thursday, 6 April||Type Inference Revisited|
|Tuesday, 11 April||Monitors, Transactions|
|Thursday, 13 April||Dataflow Languages: Id|
|Tuesday, 18 April||Aspect-Oriented Programming|
|Thursday, 20 April||Guest Lecture: John Thornley|
|Tuesday, 25 April||Static Checking, Type Qualifiers|
|Thursday, 27 April||Other Ways to Program|
|Monday, 1 May, 6:30pm-9pm||Student project presentations, in the Rotunda Lower West Oval Room|
|Tuesday, 2 May||Who wants to be a hecto-billionaire?|
University of Virginia
CS 655: Programming Languages
Last modified: Mon Feb 26 12:48:27 2001