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:
cs655-staff@cs.virginia.edu | Instructor and TA. We answer this religiously. If you don't get an answer within 8 hours something is wrong. |
cs655-students@cs.virginia.edu | Goes to all students in the class and staff. Students should only mail this list for important announcements. |
evans@virginia.edu | |
phone | x2-2218 (office), (804) 825-0207 (mobile) |
office | Olsson, 236A |
office hours | Monday 1:30-2:30; Thursdays after class; other times, by email appointment. |
predator@cs.virginia.edu |
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.
Project | 30% | Position Papers | 30% |
Problem Sets | 20% | Exam | 20% |
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 |
Structured Languages | |
Thursday, 3 February | Algol60 |
Tuesday, 8 February | Algol successors: Algol68, Bliss, C, Pascal |
Data Languages | |
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 |
Semantics | |
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 |
Functional Languages | |
Tuesday, 21 March | Fixed Points |
Thursday, 23 March | Functional Languages, Type Inference |
Mock Trial | |
Tuesday, 28 March | Mock Trial Part 1: Openings, Prosecution Witnesses |
Thursday, 30 March | Mock Trial Part 2: Defense Witnesses, Closings |
Denotational Semantics | |
Tuesday, 4 April | Denotational Semantics |
Thursday, 6 April | Type Inference Revisited |
Concurrent Programming | |
Tuesday, 11 April | Monitors, Transactions |
Thursday, 13 April | Dataflow Languages: Id |
Research Topics | |
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 |
Project Presentations | |
Monday, 1 May, 6:30pm-9pm | Student project presentations, in the Rotunda Lower West Oval Room |
PL Jeopardy | |
Tuesday, 2 May | Who wants to be a hecto-billionaire? |
University of Virginia CS 655: Programming Languages |
cs655-staff@cs.virginia.edu Last modified: Mon Feb 26 12:48:27 2001 |