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 |