![]() |
|
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 news group rice.owlnews.comp311.
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 |
|
|
|
| 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 | ||
| 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 |
Project 3 Due 12 noon, 9/19 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 |
Data in the lambda calculus |
Project 3 Due 12 noon, 10/8 Homework 1 Assigned |
|
| 18 |
10/4 |
M |
|||
| 19 |
10/6 |
W |
|||
| 20 |
10/8 |
F |
Data in the lambda calculus |
Due: Project 3, 12 noon, 10/8 Homework 1 |
|
|
|
10/11 |
M |
Midterm Recess - No Classes | ||
| 21 |
10/13 |
W |
Assignment and Mutability | Essentials, ch. 3.7, 3.9 | Project 4 |
|
22 |
10/15 |
F |
Due: Homework 1, 10/15 in class | ||
| 23 |
10/18 |
M |
Environment Representation and Control | Essentials, ch. 7, 8 | |
| 24 |
10/20 |
W |
Review | Due:
Project 4, 12 noon, 10/20 Exam 1 handed out in class, 10/20 |
|
|
25 |
10/22 |
F |
Environment Representation and Control (cont'd) | Project 5 | |
| 26 |
10/25 |
M |
Object-Oriented Languages, Featherweight Java | Essentials, ch. 5 | |
| 27 |
10/27 |
W |
Object-Oriented Languages, Featherweight Java | Due: Exam 1, in class, 10/27 | |
|
28 |
10/29 |
F |
Object-Oriented Languages, Featherweight Java |
|
|
| 29 |
11/1 |
M |
What Is a Type?, Types and Safety | Essentials, ch. 4 |
|
| 30 |
11/3 |
W |
Types and datatype | |
|
|
31 |
11/5 |
F |
Exam Discussion | ||
| 32 |
11/8 |
M |
Exam Discussion | ||
| 33 |
11/10 |
W |
Types and datatype (cont'd) | Due: Project 5, 12 noon, 11/10 | |
|
34 |
11/12 |
F |
Polymorphism | Essentials, ch. 6 | Project 6 |
| 35 |
11/15 |
M |
Implicit Polymorphism | |
|
| 36 |
11/17 |
W |
Final Words on Types | |
|
|
37 |
11/19 |
F |
The Meaning of Function Calls | |
|
| 38 |
11/22 |
M |
Continuation-Passing Style | |
|
| 39 |
11/24 |
W |
|
Exam
2 handed out in class, 11/24 Project 7 (extra credit) |
|
|
|
11/26 |
F |
Thanksgiving Recess - No Classes | |
|
| 40 |
11/29 |
M |
Garbage Collection | |
|
| 41 |
12/1 |
W |
Garbage Collection | |
|
|
42 |
12/3 |
F |
Garbage
Collection Extra Material: Explaining letcc and error The True Meaning of Function Calls |
|
Due:
Exam 2, beginning of class, 12/3 (Note: Turn in your exam on or before
12/10. If you have any questions, please email us.). Due: Project 6 , 11:59 PM, 12/3 Due: Project 7 (extra credit), 11:59 PM, 12/3 |
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.