Programming Languages (CS302 2005S)

CS302 2005S At A Glance

This is an abbreviated course syllabus. Like everything else in this course, it is likely to change.

Weeks: 1, 2, 3, 4, 5, 6, 7, 8, break, 9, 10, 11, 12, 13, 14.

Week 1: Background (1)
(01) Monday, January 24, 2005
Introduction to the Course
What is a programming language? How should we study programming languages? Why study programming languages? Course details
Assignments: Read Wegner's Programming Languages - The First 25 Years.
(02) Wednesday, January 26, 2005
An Abbreviated History of Programming Languages
Exercise: Dating key ideas. An abbreviated history of programming languages.
Assignments: Read chapters 0 and 1 of Gries (due Friday). Do Homework 1: Course basics.
(03) Friday, January 28, 2005
SOP: Basics of Boolean Logic
Background: Why study Gries and The Science of Programming? Boolean basics A grammar for Boolean propositions Boolean proof and reasoning
Assignments: Read C. A. R. Hoare's "Hints on Programming Language Design" (due Wednesday). Read chapter 2 of Gries (due Friday).
Week 2: Background (2)
(04) Monday, January 31, 2005
Detour: Growing a Language
(05) Wednesday, February 2, 2005
Basics of Programming Language Design
Designing a language Design criteria More design criteria
Due: Hoare. Assignments: Read Gries 2.
(06) Friday, February 4, 2005
SOP: Boolean Reasoning
How to prove Basic laws Other issues
Due: Reading: Gries 2. Assignments: Read sections 1-5 of Revised5 Report on the Algorithmic Language Scheme (due Monday). Do problems 3, 5, 7, and 8 on pp. 26 and 27 of Gries (due Friday).
Week 3: Scheme, In Depth (1)
(07) Monday, February 7, 2005
Scheme 1: Reading the Scheme Report
An overview of R5RS Basics of the lambda calculus Object lifetimes and garbage collection Continuations Other topis
Due: Sections 1-5 of R5RS. Assignments: Read section 6 of R5RS.
(08) Wednesday, February 9, 2005
Scheme 2: Continuations
(09) Friday, February 11, 2005
Scheme 3: Semantics (1)
Week 4: Scheme, In Depth (2)
(10) Monday, February 14, 2005
Scheme 4: Semantics (2)
Background: What purpose does Section 7 serve? Basics: Notational issues. Basics: Important sets and meaning functions. Your first few meanings. Assignments: For Friday: Useful application of continuations. By 8 p.m. Tuesday: New questions on R5RS.
(11) Wednesday, February 16, 2005
Scheme 5: Semantics (3)
(12) Friday, February 18, 2005
Cancelled
Week 5: Scheme, In Depth (3)
(13) Monday, February 21, 2005
Scheme 6: Semantics (4)
(14) Wednesday, February 23, 2005
Scheme 7: Semantics (5)
(15) Friday, February 25, 2005
Cancelled
Week 6: Gries, Revisited
(16) Monday, February 28, 2005
SOP: Predicates
(17) Wednesday, March 2, 2005
SOP: Array Assertions
What is an array? Whee! Notation. Example.
(18) Friday, March 4, 2005
SOP: Gries-Style Documentation
Week 7: Types and Type Checking
(19) Monday, March 7, 2005
Types (1)
(20) Wednesday, March 9, 2005
Types (2)
(21) Friday, March 11, 2005
SOP: Weakest Preconditions
Week 8: A Second Functional Perspective: FP
(22) Monday, March 14, 2005
FP (1)
(23) Wednesday, March 16, 2005
FP (2)
(24) Friday, March 18, 2005
SOP: Reading Gries, Revisited
Spring Break
Week 9: A Third Functional Perspective: Haskell
(25) Monday, April 4, 2005
Haskell (1)
(26) Wednesday, April 6, 2005
Haskell (2)
(27) Friday, April 8, 2005
Haskell (3)
Week 10: Gries-Style Semantics
(28) Monday, April 11, 2005
SOP: Semantics of Assignment (1)
(29) Wednesday, April 13, 2005
SOP: Semantics of Assignment (2)
(30) Friday, April 15, 2005
SOP: Semantics of Conditionals
Week 11: Object-Oriented Programming
(31) Monday, April 18, 2005
Object-Oriented Programming (1)
(32) Wednesday, April 20, 2005
Object-Oriented Programming (2)
(33) Friday, April 22, 2005
SOP: Semantics of Iteration
Week 12: Smalltalk
(34) Monday, April 25, 2005
Smalltalk (1)
(35) Wednesday, April 27, 2005
Smalltalk (2)
(36) Friday, April 29, 2005
Smalltalk (3)
Week 13: Gries-Style Program Development
(37) Monday, May 2, 2005
SOP: Introduction to Program Development
(38) Wednesday, May 4, 2005
SOP: From Invariants to Loops
(39) Friday, May 6, 2005
SOP: Designing Invariants
Week 14: Declarative Logic Programming
(40) Monday, May 9, 2005
Logic Programming (1)
(41) Wednesday, May 11, 2005
Logic Programming (2)
(42) Friday, May 13, 2005
Wrapup

Disclaimer: I usually create these pages on the fly, which means that I rarely proofread them and they may contain bad grammar and incorrect details. It also means that I tend to update them regularly (see the history for more details). Feel free to contact me with any suggestions for changes.

This document was generated by Siteweaver on Wed Mar 2 11:38:56 2005.
The source to the document was last modified on Sun Jan 23 19:27:44 2005.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS302/2005S/Handouts/glance.html.

You may wish to validate this document's HTML ; Valid CSS! ; Check with Bobby

Samuel A. Rebelsky, rebelsky@grinnell.edu