![]() |
|
COMP 311 is an introduction to the principles of programming languages. It focuses on:
A secondary theme is software engineering. All of the programming assignments in this course are conducted using test-driven development and pair-programming, two of the major tenets of Extreme Programming.COMP 311 consists of three parts:
The course enables students to ask relevant technical questions about the semantics and pragmatics of the old, new, and future programming languages that they are likely to encounter in the workplace (e.g., Fortran, C, C++, Java, Visual Basic, C#, Perl). They will also be able to build simple interpreters for new languages or for "special-purpose" languages embeded in software applications.
Students are encouraged to discuss the material covered in class and in assignments on the mailing list comp311-l@mailman.rice.edu. Please subscribe so you will also receive messages sent to the mailing list.
Notes in the notation we use in class.
Please take a look at the course information discussed on the first day of classes
Please refer to the assignments column in the below.
| # |
Date |
Day |
Topic |
Reference |
Assignments |
| 1 |
8/22 | M |
Introduction & Motivation | |
|
| 2 |
8/24 | W |
Parsing | Parsing | Project 1 Assigned |
| 3 |
8/26 | F |
|||
| 4 |
8/29 | M |
The Scope of Variables | Essentials, ch. 1 | |
| 5 |
8/31 | W |
A Syntactic Interpreter for LC | Review 1 | |
| 6 |
9/2 | F |
|||
| 9/5 | M |
Labor Day - No Classes | |||
| 7 |
9/7 | W |
A Syntactic Interpreter for LC (cont'd) | Project
1 Due 12 noon, 9/7 Project 2 Assigned |
|
| 8 |
9/9 | F |
A Meta Interpreter for LC | Essentials, ch. 3.1-3.6, 3.8 | |
| 9 |
9/12 | M |
|||
| 10 |
9/14 | W |
Eliminating Meta Errors | ||
| 11 |
9/16 | F |
|||
| 12 |
9/19 | M |
Data Domains Supporting Recursive Definitions | The Why of Y | Project
2 Due 12 noon, 9/20 (ppd 1 day) Project 3 Assigned |
| 13 |
9/21 | W |
|||
| 14 |
9/23 | F |
Recursive Definitions and Environments | ||
| 15 |
9/26 | M |
|||
| 16 |
9/28 | W |
|||
| 17 |
9/30 | F |
The lambda calculus as a model of computation |
Optional Homework Exercises Review 2 |
|
| 18 |
10/3 | M |
Assignment and Mutability | Essentials, ch. 3.7, 3.9 | |
| 19 |
10/5 | W |
|||
| 20 |
10/7 | F |
Environment Representation and Control | Essentials, ch. 7, 8 | |
| 10/10 | M |
Midterm Recess - No Classes | |||
| 21 |
10/12 | W |
Environment Representation and Control II | Essentials, ch. 7, 8 | Project 3 Due 12 noon, 10/12 Project 4 Assigned Project 4xc (extra credit) Offered |
|
22 |
10/14 |
F |
Object-Oriented Languages, Featherweight Java | Essentials, ch. 5 | |
|
23 |
10/17 |
M |
|||
|
24 |
10/19 |
W |
|||
|
25 |
10/21 |
F |
Review |
Project 4 Due 12 noon, 10/21 Exam 1 handed out in class, 10/21 Sample mid-term Sample evaluations of Jam programs Project 5 Assigned, 10/21 |
|
|
26 |
10/24 |
M |
What Is a Type?, Types and Safety | Essentials, ch. 4 | |
| 27 |
10/26 |
W |
Types and datatype | ||
|
28 |
10/28 |
F |
Exam 1 Due in class, 10/31 | ||
|
29 |
10/31 |
M |
Polymorphism | Essentials, ch. 6 | |
|
30 |
11/2 |
W |
Exam Discussion | ||
|
31 |
11/4 |
F |
Implicit Polymorphism | Type Inference Study Guide |
Project 5 Due 12 noon, 11/4 Project 6 (PDF) assigned |
|
32 |
11/7 |
M |
Final Words on Types | ||
|
33 |
11/9 |
W |
The Meaning of Function Calls | Essentials, ch. 8 | |
|
34 |
11/11 |
F |
Continuation-Passing Style | ||
|
35 |
11/14 |
M |
Type Inference Study Guide | ||
|
36 |
11/16 |
W |
Explaining letcc and error & The True Meaning of Function Calls | ||
|
37 |
11/18 |
F |
Garbage Collection | Uniprocessor Garbage Collection Techniques |
Project 6 Due noon, Monday 11/21 Project 7 assigned |
|
38 |
11/21 |
M |
|||
|
39 |
11/23 |
W |
OO Code Optimization |
Exam 2 handed out in class, 11/23 Sample Exam 2 |
|
| 11/25 |
F |
Thanksgiving Recess - No Classes | |||
|
40 |
11/28 |
M |
TBA | ||
|
41 |
11/30 |
W |
TBA | ||
|
42 |
12/2 |
F |
TBA |
Project 7 due at 11:59 PM, 12/2 Exam 2 due at 11:59 PM, 12/2 |
Students with disabilities are encouraged to contact me during the first two weeks of class regarding any special needs. Students with disabilities should also contact Disabled Student Services in the Ley Student Center and the Rice Disability Support Services.