Principles of Programming Languages

Coms S 342 Fall 2009, Iowa State University

Latest News

HW7 Due on Dec 3, 2pm

Project 2 Due on Dec 3, 2pm

Logistics

Lecture:

Tuesday & Thursday 2:10pm-3:30pm

Room:

GILMAN 1810

Recitation Session:

Wednesday 10:00am - 10:50am

Room:

GILMAN 2104

Instructor:

Ting Zhang
Office: 113 Atanasoff Hall
Email: tingz@cs.iastate.edu
Phone: 1-515-294-2410
Office hours: Tuesday & Thursday 1-2pm

TA:

Mehdi Bagherzadeh
Office: Person 145
Email: mbagherz@cs.iastate.edu
Office hours: Monday 1-2pm & Thursday 4-5pm

Abstract:

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.

Projects are to be written in Python.

Topics

Prerequisites:

Familiarity with at least one of the following programming languages: C, C++, Java, Pascal, Scheme, LISP.

Course Work

Grading Policy

Collaboration:

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.

Disability

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.

Documents

Textbook:

Michael L. Scott Programming Language Pragmatics (Third Edition)

Readings:

The following books/tutorials/papers are recommended as useful readings:

Schedule, Lecture Notes, and Assignments

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.

Homework solutions are only posted in WebCT.

Date Lecture Notes Reading Assignment Additional Materials Assignments
8/25 History and Classification  (L) (S) Ch 1.1-1.3, 1.5, 1.7 The Language List
8/27 Compilation and Interpretation Ch 1.4, 1.6
9/1 Regular and Context-free Languages Ch 2.1, 2.2, 2.4 Regular Expression Examples
9/3 LL(1) Parsing Ch 2.3
9/8 LR(0) Parsing Ch 2.3 HW 1
9/10 LR(0) Parsing Ch 2.3
9/15 Semantics Analysis Ch 4.1-4.4, 4.6
9/17 Name, Binding Time and Storage Allocation Ch 3.1,3.2 HW 2
9/22 Name, Binding and Storage Allocation Ch 3.1, 3.2 Project 1
9/24 Scope and Binding Ch 3.3, 3.5 HW 3
9/29 Scope and Binding Ch 3.3, 3.5
10/1 ControlFlow I (Expression) Ch 6.1 Final Exam Sample
10/6 ControlFlow II (Execution Order) Ch 6.2-6.6
10/8 Data Types I (Type System) Ch 7.1-7.2 HW 4
10/13 Data Types II (Composite Types)  (L) (S) Ch 7.2-7.8
10/15 Midterm Exam
10/20 Data Types II (Composite Types)  (L) (S) Ch 7.2-7.8
10/22 Control Abstraction (Subroutines)  (L) (S) Ch 8.2-8.4 HW 5
10/27 Control Abstraction (Exceptions)  (L) (S) Ch 8.5
10/29 Data Abstraction (Oject Oritentation)  (L) (S) Ch 9.1-9.4 HW 6
11/3 Coroutine and Continuation  (L) (S) Ch 8.6 Project 2
11/5 Control Abstraction (CPS)  (L) (S)
11/10 Funcational Programming (Scheme Overview)  (L) (S) Ch 10.2, 10.3
11/12 Funcational Programming (Advanced Scheme)  (L) (S) Ch 10.4, 10.5 HW 7
11/17 Funcational Programming (Monads)  (L) (S)
11/19 Logic Programming (Prolog)  (L) (S)
11/24 Thanksgiving
11/26 Thanksgiving
12/1
12/3
12/8 Final Review
12/10 Final Review
12/18 Final Exam

For more details on university events, see the ISU academic calendar and the final exam schedule.

Last modified: Tue Nov 17 04:19:06 PST 2009