First class is on Tuesday, August 26, 2:10pm-3:30pm
No recitation session on September 10
Tuesday & Thursday 2:10pm-3:30pm
GILMAN 1810
Wednesday 2:10pm - 3:00pm
ATANSFF B0029
Ting Zhang
Office: 113 Atanasoff Hall
Email: tingz@cs.iastate.edu
Phone: 1-515-294-2410
Office hours: Tuesday & Thursday 1pm-2pm
Sean Mooney
Office: TBA
Email: smooney@iastate.edu
Office hours: Monday & Friday 1:30pm-2:30pm
This course is about fundamental concepts in the design and implementation of programming languages. It covers core features in modern programming languages, such as name binding, control flow, data types, abstraction, modularity, exception handling and so on. Students are going to learn why features in a language are chosen by the designer, how to evaluate a programming language and how select a language for the computation task.
Python is the example programming language and projects are to be written in Python.
Familiarity with at least one of the following programming languages: C, C++, Java, Pascal, Scheme, LISP.
You are free to discuss ideas with others, but all the homework you hand in or projects you submit should be your own creation.
You should state on your solution the names of people with whom you have discussed the problems.
For the programming projects, you should write EVERY LINE of your code. SHARING CODE is PROHIBITED.
Late Submission:A penalty of 10% will be applied to homework or a project that is submitted up to 24 hours late.
No credit will be given for homework or a project that is submitted more than 24 hours after it is due.
Appealing:If you have questions regarding the grading of your assignments, you MUST come to see either the instructor or the TA WITHIN ONE WEEK of receipt of your graded assignments.
If you have a disability and require accommodations, please contact the instructor early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to the Disability Resources (DR) office, located on the main floor of the Student Services Building, Room 1076, 515-294-6624.
Michael L. Scott Programming Language Pragmatics (Second Edition)
The following books/tutorials/papers are recommended as useful readings:
The tentative schedule with PDF lecture notes is shown below. You are encouraged to download and print the notes as handouts to take to class.
| Date | Lecture Notes | Reading Assignment | Additional Materials | Assignments |
|---|---|---|---|---|
| 8/26 | Introduction | Ch 1.1-1.3, 1.5, 1.7 |
The Language List | |
| 8/28 | Compilation and Interpretation | Ch 1.4, 1.6 | ||
| 9/2 | Syntax | Ch 2.2.1-2.2.3, 2.4.1 | HW1 | |
| 9/4 | LL Parsing | Ch 2.3.1-2.3.2 | ||
| 9/9 | Semantic Analysis | Ch 4.1-4.4 | ||
| 9/11 | Names and Bindings | Ch 3.1-3.2 | ||
| 9/16 | ||||
| 9/18 | ||||
| 9/23 | ||||
| 9/25 | ||||
| 9/30 | ||||
| 10/2 | ||||
| 10/7 | ||||
| 10/9 | ||||
| 10/16 | ||||
| 10/21 | ||||
| 10/23 | ||||
| 10/28 | ||||
| 10/30 | ||||
| 11/4 | ||||
| 11/6 | ||||
| 11/11 | ||||
| 11/13 | ||||
| 11/18 | ||||
| 11/20 | ||||
| 11/25 | Thanksgiving | |||
| 11/27 | Thanksgiving | |||
| 12/2 | ||||
| 12/4 | ||||
| 12/9 | ||||
| 12/11 | ||||
| 12/16 | Final exam 12:00-2:00 p.m |
For more details on university events, see the ISU academic calendar and the final exam schedule.
The CSS file is provided by courtesy of Matteo Slanina.
All materials © by respective authors unless otherwise
indicated.
Web master: Ting Zhang <tingz@cs.iastate.edu>