CSC302 2011S Programming Languages : Handouts

Course Syllabus

This handout is also available in PDF.

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      

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 Mon Apr 25 08:06:38 2011.
The source to the document was last modified on Wed Apr 13 08:28:27 2011.
This document may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CSC302/2011S/Handouts/schedule.html.

You may wish to validate this document's HTML ; Valid CSS! ; Creative Commons License

Samuel A. Rebelsky, rebelsky@grinnell.edu