CRN: 41014 Course No. CS558 Course Name. Programming Languages (3 cr) Department course description. Class Syllabus Times: Monday & Wednesday 08:15-9:30 AM Place: Neuberger Hall 341 Textbook: Programming Language Pragmatics (3rd edition), by Michael L. Scott, ISBN 13:978-0-12-374514-9 Professor: Tim Sheard Office: FAB 120-04 Phone: 503-725-2410 Office Hrs Thursday 10-12 am. I am also availiable by appointment, just email and set one up. Email: TA: Clarissa Littler <> Email: clarissa.littler@gmail.com Office Hrs Monday and Wednesday 2:00 pm til 4:00 pm
Monday Jan 4, 2016 Due Today: No homework due today. No reading worksheet due today. Announcements: Due to bad weather, the opening of PSU is delayed til 10:00 AM. We will meet for the first time Wednesday Jan 6. Readings: Chapters 1 (pp 5-39), and 2.1 (pp 41-48) Class Topic: Inventory: Languages, types, features. What makes a good language? Introduction; Concrete & abstract syntax; Interpretation & Compilation. Thanks to Andrew Tolmach for these notes (also in 4 up format). Discussion of Reading exercises Discussion of homework Assigned today: Homework #1. Due 8:00 AM, Monday, Jan 11, 2016 Reading worksheet #0 Chapters 1 (pp 5-39), and 2.1 (pp 41-48), Due wednesday, Jan 6.
Wednesday Jan 6, 2016 Due Today: Reading worksheet #0 due today. Announcements: Readings: Chapter 6 (pp 217-287) Class Topic: Installing Python and Haskell (see guide to installing new languages). Reading Ex0 discussion. Finish introductory notes. Assigned today: Reading worksheet #1 for Chapter 6 (pp 217-287).Week 2
Monday Jan 11, 2016 Due Today: Homework #1. Reading worksheet #1 for Chapter 6 (pp 217-287). Announcements: CS department Town Hall, Thursday Jan 14, 3:00-4:00PM, Room 86-01, News and Q.A witht the Dept. Head. Readings: Chapter 6 (pp 217-287). Read this for Reading worksheet #1. Class Topic: Summary discussion about homework # 1. Tim Sheards Haskell resource page. Reading worksheet #1 discussion. Imperative languages; Structured programming. Thanks to Andrew Tolmach for these notes (also in 4 up format). Pages 1-22. Assigned today: Homework #2. Due 8:00 AM, Wednesday, Jan 20, 2016
Wednesday Jan 13, 2016 Due Today: Announcements: Tomoorow! CS department Town Hall, Thursday Jan 14, 3:00-4:00PM, Room 86-01, News and Q.A witht the Dept. Head. Class Topic Axiomatic Semantics, pages 23 - 39 in notes (also in 4 up format). Some additional reading material on Axiomatic semantics (Hoare Triples) Wikipedia, Anders Moller. Assigned today: Reading worksheet #2 for Chapter 3.1-3.5 (pp 111-148).Week 3
Monday Jan 18, 2016 Martin Luther King Holiday. No class today.
Wednesday Jan 20, 2016 Due Today: Homework #2. Due 8:00 AM, Wednesday, Jan 20, 2016 Reading worksheet #2 for Chapter 3.1-3.5 (pp 111-148). Announcements: Readings: Chapter 3.1-3.5 (pp 111-148) Class Topic: Reading discussion. Notes on environments, stores, and interpreters. Binding; Scope; Storage; Operational semantics; Procedure Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #3. Due 8:00 AM, Monday, Jan 25, 2016 Reading worksheet #3 for Chapter 8.1-8.3 and 8.5 (pp 383-408 and 417-425).Week 4
Monday Jan 25, 2016 Due Today: Homework #3. Due date extended to Wed Jan 27. Reading worksheet #3 Due today Announcements: The due date foir HW3 has been extended til Wednesday Jan 27. HW 4 is still due Monday Feb 1. Readings: Chapter 8.1-8.3 and 8.5 (pp 383-408 and 417-425) Class Topic: On the structure of interpreters. Discussion of reading. Parameter Passing mechanism code(CBV, CBR, CBVR) Assigned today: Homework #4. Due 8:00 AM, Monday, Feb 1, 2016 Reading worksheet #4 for Chapters 3.6, 10, and 13 (pp 151-177; 503-543; and 649-724).
Wednesday Jan 27, 2016 Due Today: Homework #3. Due today. Announcements: Readings: Chapter 8.1-8.3 and 8.5 (pp 383-408 and 417-425) Class Topic: Finish looking at parameter Passing mechanism code for call be value return. Look over solution to Homework #3. Thanks to Andrew Tolmach for these notes (also in 4 up format) on Stacks; Calling conventions; Recursion; Exceptions. Assigned today:Week 5
Monday Feb 1, 2016 Due Today: Homework #4 due today. Reading worksheet #4 due today. Announcements: A practice exam is now available here. See also the midterm from Andrew Tolmachs CS558 class, especially question 8 on operational semantics! Readings: Chapters 3.6, 10, and 13 (pp 151-177; 503-543; and 649-724) Class Topic: Continue with notes on exceptions from last weeks notes (pp 27-35). Discussion of reading. The role of environments in scoping. Functional languages; Scripting languages. Thanks to Andrew Tolmach for these notes (also in 4 up format). Here are some companion notes where the examples are in Haskell. Assigned today: Homework #5 due 8:00 AM, Monday Feb 15 2016. But, recall issues covered in this homework are fair game on the exam.
Wednesday Feb 3, 2016 Due Today: Announcements: Another practice exam (last years midterm) is now available here. Readings: Class Topic: Discussion of the language with exceptions. Look at the code. Thanks to Andrew Tolmach for these notes (also in 4 up format). Here are some companion notes where the examples are in Haskell. Assigned today:Week 6
Monday Feb 8, 2016 Due Today: Announcements: Each student is allowed one (8.5 x 11.0 inch) page of notes at the midterm. Other than that one page, the exam is closed book. Readings: Class Topic: Open Question and Answer session. Midterm Exam Assigned today: Nothing, but recall Homework #5 is due next week.
Wednesday Feb 10, 2016 Due Today: Announcements: Readings: Class Topic: Go over Midterm Exam. Midterm statistics. Discuss the language E5. Assigned today: Reading worksheet #5 due Monday Feb 15. Recall Homework #5 is also due Feb 15.Week 7
Monday Feb 15, 2016 Due Today: Homework #5 due today. Reading worksheet #5 due today. Announcements: Readings: Chapters 3.5 and 3.7 (pp 144-148; 159-161), Chapters 7.1 and 7.2 (pp 289-316) Class Topic: Return exam. Type systems; Type checking; Polymorphism. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #6 due Feb 22 2016. Reading worksheet #6 for Chapters 8.4 (pp 410-417)
Wednesday Feb 17, 2016 Due Today: Announcements: Readings: Class Topic: Type systems; Type checking; Polymorphism continued. Examine the code from Homework #6. Additional notes using Haskell syntax. Assigned today:Week 8
Monday Feb 22, 2016 Due Today: Homework #6 due today. Reading worksheet #6 due today. Announcements: Readings: Chapters 8.4 (pp 410-417) Class Topic: User defined types. Abstract data types. Modules; Separate compilation. Notes on implementing user defined types. Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #7 due Feb 29 (Leap day) 2016. Reading worksheet #7 for Chapter 9 (pp 449-499)Week 9
Monday Feb 29 (Leap day), 2016 Due Today: Homework #7 due today. Reading worksheet #7 due today. Announcements: Readings: Chapter 9 (pp 449-499) Class Topic: Object oriented languages Thanks to Andrew Tolmach for these notes (also in 4 up format). Assigned today: Homework #8 due March 7 2016. Reading worksheet #8 Chapter 7.7.3 pp 357-367
Wednesday March 2, 2016 Due Today: Announcements: Summer Intern opportunity. Readings: Class Topic: Object oriented languages Notes on OO principles with E8. Assigned today:Week 10
Monday March 7, 2016 Due Today: Homework #8 due today Reading worksheet #8 due today Announcements: Course questionaires now available online. Readings: Chapter 7.7.3 pp 357-367 Class Topic: Garbage Collection Some notes on Garbage Collection Questions from the audience The final Exam next week. Here is a practice Final Exam. Here is last years exam. Final exam Study Guide. Assigned today: No homework assigned today
Monday March 14, 2016 Final Exam period 8:00-9:50 AM NOTE, the University final exam schedule is not the same as normal class hours! Final exam statistics. Cumulative course average statistics.