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,
break,
8,
9,
10,
11,
12,
13,
14.
| |
Date |
Topic |
Reading |
Lab |
Work Due |
| Week 1 |
| 01 | Monday, 24 January 2011 | An Introduction to the Course | Tate 1 | | |
| 02 | Wednesday, 26 January 2011 | Ruby (1) | Tate 2.1-2.2 | Ruby (1) | |
| | Thursday, 27 January 2011 | Assignment 1: Introductory Survey |
| 03 | Friday, 28 January 2011 | Ruby (2) | Tate 2.3 | Ruby (2) | |
| Week 2 |
| 04 | Monday, 31 January 2011 | Ruby (3) | Tate 2.4-2.5 | Ruby (3) | |
| 05 | Wednesday, 2 February 2011 | Io (1) | Tate 3.1-3.2 | Io (1) | |
| | Thursday, 3 February 2011 | Assignment 2: Ruby |
| 06 | Friday, 4 February 2011 | Io (2) | Tate 3.3 | Io (2) | |
| Week 3 |
| 07 | Monday, 7 February 2011 | Io (3) | Tate 3.4-3.5 | Io (3) | |
| 08 | Wednesday, 9 February 2011 | Prolog (1) | Tate 4.1-4.2 | Prolog (1) | |
| | Thursday, 10 February 2011 | Assignment 3: Io |
| 09 | Friday, 11 February 2011 | Prolog (2) | Tate 4.3 | Prolog (2) | |
| Week 4 |
| 10 | Monday, 14 February 2011 | Prolog (3) | Tate 4.4-4.5 | Prolog (3) | |
| 11 | Wednesday, 16 February 2011 | Prolog (4) | Tate 4.4-4.5 | Prolog (3) | |
| | Thursday, 17 February 2011 | Assignment 4: Prolog |
| 12 | Friday, 18 February 2011 | Scala (1) | Tate 5.1-5.2 | Scala (1) | |
| Week 5 |
| 13 | Monday, 21 February 2011 | Scala (2) | Tate 5.3 | Scala (2) | |
| 14 | Wednesday, 23 February 2011 | Scala (3) | Tate 5.4-5.5 | Scala (3) | |
| | Thursday, 24 February 2011 | Assignment 5: Scala |
| 15 | Friday, 25 February 2011 | Erlang (1) | Tate 6.1-6.2 | Erlang (1) | |
| Week 6 |
| 16 | Monday, 28 February 2011 | Erlang (2) | Tate 6.3 | Erlang (2) | |
| 17 | Wednesday, 2 March 2011 | Erlang (3) | Tate 6.4-6.5 | Erlang (3) | |
| | Thursday, 3 March 2011 | Assignment 6: Erlang |
| 18 | Friday, 4 March 2011 | Clojure (1) | Tate 7.1-7.2 | Clojure (1) | |
| Week 7 |
| 19 | Monday, 7 March 2011 | Clojure (2) | Tate 7.3 | Clojure (2) | |
| 20 | Wednesday, 9 March 2011 | Growing a Language | | | |
| | Thursday, 10 March 2011 | Assignment 7: Clojure |
| 21 | Friday, 11 March 2011 | The Design of C++ | | | |
| Week 8 |
| 22 | Monday, 14 March 2011 | Haskell (1) | Tate 8.1-8.2 | Haskell (1) | |
| 23 | Wednesday, 16 March 2011 | Haskell (2) | Tate 8.3 | Haskell (2) | |
| 24 | Friday, 18 March 2011 | Early Break | | | |
| Spring Break! |
| Week 9 |
| 25 | Monday, 4 April 2011 | Haskell (3) | Tate 8.4-8.5 | Haskell (3) | |
| 26 | Wednesday, 6 April 2011 | An Abbreviated History of Programming Languages | | | |
| 27 | Friday, 8 April 2011 | The Evolution of Some Key Language Features | | | |
| | Saturday, 9 April 2011 | Mid-Semester Examination |
| Week 10 |
| 28 | Monday, 11 April 2011 | Goto Considered Harmful | Dijkstra: Go To Statement Considered Harmful; Bratley, P. (1967). Algorithm 306: Permutation with Repetitions [G6]. Communications of the ACM 10(7), July 1967, pp. 450-451. | | |
| 29 | Wednesday, 13 April 2011 | Representing Procedure Calls | Wikipedia on the Call Stack; Activation Record in Encyclopedia of Computer Science (4th ed.) | | |
| 30 | Friday, 15 April 2011 | Interpreting Procedure Calls | Wikipedia on Evaluation Strategy; Parameter Passing in Encyclopedia of Computer Science (4th ed.) | | |
| Week 11 |
| 31 | Monday, 18 April 2011 | Debrief on Midsemester Examination | Graham, Paul (2002). Revenge of the Nerds. Graham, Paul (2002). What Made Lisp Different. | | |
| 32 | Wednesday, 20 April 2011 | Why LISP? | McCarthy, J. (1978). History of LISP. ACM SIGPLAN Notices 13(8), pp. 217-223. DOI=http://doi.acm.org/10.1145/960118.808387 | | |
| 33 | Friday, 22 April 2011 | The Design of LISP | McCarthy, John. (1960). Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I. Communications of the ACM 3(4), pp. 184-195. DOI=http://doi.acm.org/10.1145/367177.367199 | | |
| Week 12 |
| 34 | Monday, 25 April 2011 | Implementing LISP | Graham, Paul. (2002). The Roots of Lisp. | | |
| 35 | Wednesday, 27 April 2011 | Introspection and Reflection | Trail: The Reflection API, available at . | | |
| | Thursday, 7 April 2011 | Assignment 8 |
| 36 | Friday, 29 April 2011 | Presentation (1): JAC on Garbage Collection | | | |
| Week 13 |
| 37 | Monday, 2 May 2011 | Presentation (2): CAD on Software Transactional Memory | | | |
| 38 | Wednesday, 4 May 2011 | Presentation (3): ARS on CPS | | | |
| | Thursday, 14 April 2011 | Assignment 9 |
| 39 | Friday, 6 May 2011 | Presentation (4): Nyah on Monads | | | |
| Week 14 |
| 40 | Monday, 9 May 2011 | Presentations (5): Consonants on Programming Languages for Beginners | | | |
| 41 | Wednesday, 11 May 2011 | Debriefing on Presentations | | | |
| 42 | Friday, 13 May 2011 | Wrapup | | | |