CSSE403 – Programming Language Paradigms

Fall 2009

Schedule Overview

Unless otherwise noted, Preparation reading is to be done before the listed class session, Homework exercises are due at the beginning of the listed class session, and Milestones are due by midnight of the listed day.

Schedule is subject to change, though I will strive to avoid that.

Schedule last updated Thu Nov 12.

Session quick links:  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Week Session Topics Slides Preparation Homework Milestone
0

1

Thu Sep 3

  • Introductions
  • Course intro.
  • Review Milestone 1
  • Python install-fest
Course Intro    
0

2

Fri Sep 4

  • Getting started with Python
Python Intro    
1

3

Mon Sep 7

  • Python functions and data types
Python Functions  
1

4

Tue Sep 8

  • I/O
  • Exception handling
Python I/O And Exceptions    
1

5

Thu Sep 10

  • Object-oriented programming in Python
Python OO Intro  
1

6

Fri Sep 11

  • Project work day, no regular class session
      Language Research Assignment
Rubric
2

7

Mon Sep 14

  • More OOP
  • Iterators and generators
Python OO Part 2  
2

8

Tue Sep 15

  • Object-oriented etudes
OO Etudes    
2

9

Thu Sep 17

  • Python and Self
OO Etudes, part 2
  • None
 
2

10

Fri Sep 18

  • Project work day, no regular class session
      Project Identification
3

11

Mon Sep 21

  • Python Reflection and Dispatch
Reflection    
3

12

Tue Sep 22

  • Python wrap-up: strengths and weakness
Language Wrap-Up    
3

13

Thu Sep 24

  • Haskell install-fest
  • Getting started with Haskell
Haskell Intro  
3

14

Fri Sep 25

  • Project work day, no regular class session
      Installation and Project Selection
4

15

Mon Sep 28

  • Haskell Basics and Types
Haskell Basics and Types  
4

16

Tue Sep 29

  • Haskell Style
Haskell Style    
4

17

Thu Oct 1

  • More Haskell Style
Haskell Folds
  • RWH, skim Ch. 5
 
4

18

Fri Oct 2

  • Project work day, no regular class session
      Continued Project Development
5

19

Mon Oct 5

  • Haskell Typeclasses
Haskell Typeclasses
  • RWH, read Ch. 6
 
5

20

Tue Oct 6

  • I/O in a pure, lazy, functional language
Haskell I/O
  • RWH, read Ch. 7, skim Ch. 8
   
5

21

Thu Oct 8

  • Monads
Haskell Monads
  • RWH, skim Ch. 13, read Ch. 14
 
5

22

Fri Oct 9

  • Project work day, no regular class session
      Continued Project Development
6

23

Mon Oct 12

  • Haskell wrap-up
Haskell Wrap-up
  • HW 10 (bonus due 10/14)
 
6

24

Tue Oct 13

  • Erlang install-fest
  • Getting started with Erlang
Erlang Intro   Teaching Material Draft
7

25

Mon Oct 19

  • Erlang Basics
Erlang Basics
  • None
 
7

26

Tue Oct 20

  • More Erlang basics
Erlang Basics 2
  • Programming Erlang, Ch. 4
   
7

27

Thu Oct 22

  • Exceptions
  • Sequential Erlang Miscellany
Erlang Bits And Pieces
  • Programming Erlang, read §5.1–5.3, skim §5.4.
 
7

28

Fri Oct 23

  • Processes and concurrency
Erlang Concurrency
  • Programming Erlang, Ch. 7–8
  Continued Project Development
8

29

Mon Oct 26

  • Curt at OOPSLA
  • Project work day, no regular class session
       
8

30

Tue Oct 27

  • Curt at OOPSLA
  • Project work day, no regular class session
       
8

31

Thu Oct 29

  • Curt at OOPSLA
  • Project work day, no regular class session
     
8

32

Fri Oct 30

  • More on receive
  • Errors in concurrent programs
Erlang Process Errors
  • Programming Erlang, Ch. 9
  Teaching Material Revisions
9

33

Mon Nov 2

  • Schedule presentations
  • Distributed Programming with Erlang
Distributed Erlang
  • Programming Erlang, Ch. 10–11
 
9

34

Tue Nov 3

  • Designing concurrent programs
Erlang Design
  • Programming Erlang, Ch. 19–20
   
9

35

Thu Nov 5

  • Map-reduce
MapReduce
  • None
 
9

36

Fri Nov 6

      Continued Project Development
10

37

Mon Nov 9

   
  • None
 
10

38

Tue Nov 10

       
10

39

Thu Nov 12

     
10

40

Fri Nov 13

  • Discussion on Language Design
  • Course Evaluations
  • Complete Team Performance Evaluations on ANGEL before 8am on Monday
Language Design  
  • Team Evals
    before 8am
    on Monday
Final Presentation