An introduction to high-level procedural, functional, and
object-oriented languages, their theoretical foundations,
organization, and implementation.
[Syllabus]
News
- 5/06/08: Posted the solutions for lab #11, lab #12, and lab #13.
- 4/01/08: There's some extra Fortran code between problems 2 and 3
in Homework #7. This can be ignored.
- 3/25/08: Midterm II will be on 4/8 instead of 4/3
- 3/25/08: Due to the visiting faculty candidates, I will be
unable to be in my office during my scheduled office hours on
3/26. If you need to see me, please come to my Thursday
office hours or make an appointment. I will have extra office
hours at 3pm on Monday 4/7, before Midterm II.
- 3/24/08: As announced in class before the break, the due date for
Homework #6 is extended to Thursday, 3/27.
- 3/06/08: Dr. Qing Yi will be giving the lecture on 3/11 in place of
Jeffery von Ronne.
- 2/20/08: Reminder: The midterm exam will be on
Tuesday, February 26.
- 2/20/08: A copy of the λ-calculus
reference sheet will be provided with the February 26 exam.
- 2/15/08: Correction to Homework #3: The occurences of <verb> should
be replaced with <expr> (in 6) or <term> (in 8, 9, 10).
- 2/04/08: The due date for Homework #2 is postponed to 2/12.
- 1/25/08: Correction to Homework #1: Question 2 on computability should start
"For each of the following function definitions, give the graph of the function..."
- 1/24/08: Updated this web page with readings, labs, homeworks, and reference materials
- 1/17/08: Baris Tas will be the TA
- 1/15/08: No recitation on January 15, 2008.
Topics and Readings
- 1/15 - 1/17: Introduction, Comutability (Chapters 1 & 2)
- 1/22 - 1/24: Lisp/Scheme (Chapter 3)
- 1/29 - 2/07: Lambda Calculus and Recursion (Section 4.2; reference sheet)
- 2/12 - 2/12: BNF and Formal Languages (Sections 4.1, 4.3; supplemental notes)
- 2/14 - 2/14: Compilation and Interpretation (Section 4.1; supplemental notes)
- 2/18 - 2/21: Midterm Review (exam objectives)
- 2/26 - 2/26: Midterm I, solutions
- 2/28 - 2/28: Algol History / ML (Chapter 5)
- 3/04 - 3/06: Types, Type Systems, and Type Inference (Chapter 6)
- 3/11 - 3/13: Activation Records, Scopes, Function Calls (Chapter 7)
- 3/18 - 3/20: Spring Break
- 3/25 - 3/25: Nested Higher-Order Functions: closures, access links (Chapter 7)
- 3/27 - 3/27: Control (Chapter 8)
- 4/01 - 4/01: Review (exam objectives, extra type inference)
- 4/03 - 4/03: Data Abstraction (Chapter 9)
- 4/08 - 4/08: Midterm II, solutions
- 4/10 - 4/10: Object-Oriented Languages (Chapter 10)
- 4/15 - 4/17: Simula and SmallTalk (chapter 12)
- 4/22 - 4/24: C++/Java (Chapter 12,13)
- 4/29 - 4/29: Review
Homeworks and Labs
- Due 4/29/08: Lab #13, Java source, solution
- Due 4/29/08: Lab #12, solutions
- Due 4/29/08: Homework #10
- Due 4/24/08: Homework #9
- Due 4/22/08: Lab #11, slides, solution
- Due 4/17/08: Homework #8, solutions
- Due 4/08/08: Lab #10, solutions
- Due 4/03/08: Homework #7, solutions
- Due 4/01/08: Lab #9, solutions
- Due 3/27/08: Homework #6, Activ. Rec. solutions
- Due 3/25/08: Lab #8, solutions
- Due 3/13/08: Homework #5, "parse graph" solutions
- Due 3/11/08: Lab #7, solutions
- Due 3/06/08: Homework #4
- Due 3/04/08: Lab #6, solutions
- Due 2/26/08: Lab #5, solutions
- Due 2/19/08: Lab #4, solutions
- Due 2/19/08: Homework #3
- Due 2/12/08: Lab #3, solutions
- Due 2/12/08: Homework #2
- Due 2/05/08: Lab #2, solutions
- Due 1/31/08: Homework #1, solutions
- Due 1/29/08: Lab #1, solutions
Reference and Tutorial Material for Select Programming Languages
Important Dates
- 2/26/08: First Exam
- 3/17/08: Spring Break Begins (Monday)
- 3/25/08: Drop Date (sophomores and above)
- 4/08/08: Second Exam
- 5/08/08: Final Exam (10:30am)