CIS 554 Programming Paradigms
Fall 2010, David Matuszek

What this course is about

Order in which languages will be covered: Prolog, Erlang, [Ruby?], Clojure, Haskell, [Ruby?], Scala.

Meeting times
Lecture MW 10:30-12:00 Towne 303
 Office hours

Whenever my door is open.
Specific office hours: 3:00-4:30 Tuesdays and Thursdays
Moore 176
Tuesdays 1:30-2:30

Greenberg Lounge, Skirkanich Hall 114

Search Dave's web sites:
Academic Integrity Policy
Resources (Textbook and Software)
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Google group home page:
Google group email address

Date Announcements
December 31, 2010

Grades have finally been posted. This was a great group! smiley Thank you.

I have posted a page for myself at If you have a chance, I would like to get comments/suggestions on it, so that I can do a better job next year.

Older Previous announcements

Date Lectures, Assignments, etc.
Sept 8

PowerPoint Prolog 1
Assignment 01-Prolog Text Adventure Game
More information Spider game
More information Prolog Starter Code

Sept 13 PowerPoint Prolog 2
Sept 15 PowerPoint Prolog 3
Assignment 02-Star Tricked Logic Puzzle
Sept 20 PowerPoint Prolog 4 (Resolution)
Read Four-Minute Guide to Resolution
Read Conversion to Clause Form
Sept 22

Quiz Prolog
PowerPoint Erlang 1
Read Learn You Some Erlang for Great Good external link
Assignment Erlang: Number Personalities
Read A Concise Guide to Erlang

Sept 27 PowerPoint Erlang 2 - lists
Example spider.erl (compare to
Sept 29 PowerPoint Erlang 3 - Concurrency
Assignment Erlang: Scattershot Curve Fitting
Oct 4 PowerPoint Clojure 1 (draft--subject to edits)
Oct 6 Quiz Erlang
PowerPoint Clojure 2
Oct 11 Fall break
Oct 13 PowerPoint Clojure 3
Assignment Clojure Exercises
Read Revenge of the Nerds external link
Read Clojure: Functional Programming external link (short)
Oct 18

PowerPoint Clojure 4 -- Concurrency
Read Can Your Programming Language Do This? external link (short)
Read Functional Programming For The Rest of Us external link (long)

Oct 20 Quiz Clojure
Assignment Clojure Sharks
More information Starter Code for Sharks
Oct 25 In-class Clojure examples
Oct 27

Clojure concurrency cheat sheet
Clojure REPL transcript (unedited)

Nov 1 Quiz Clojure
PowerPoint Haskell 1
Nov 3 Read Land of Lisp: Functional Programming is Beautiful external link (A gut-level comparison of Clojure and Haskell)
Read A Concise Guide to Haskell
PowerPoint Haskell 2
Assignment Haskell Exercises
Nov 8 No class
Nov 10

PowerPoint Haskell 3
PowerPoint Haskell 4
PowerPoint Haskell 5
Assignment Haskell Animals Game

Nov 15 PowerPoint Scala Apologia
PowerPoint Starting Scala
Nov 17 Quiz Haskell
PowerPoint Scala Lists
Assignment Scala Sudoku
More information Easy Sudoku Puzzles
Nov 22 PowerPoint Scala is Functional
PowerPoint Classes and Cases and Case Classes
Nov 24 Day before Thanksgiving. Unless someone insists, I will not hold class this day.
Nov 29 PowerPoint Scala Using Java Threads
PowerPoint Scala Actors
Dec 1 PowerPoint More Scala Functions
PowerPoint Concurrent Algorithms
Read Haskell Researchers Announce Discovery...external link (Just came out; better late than never)
Assignment Second Scala Assignment
Dec 6 Mostly code examples (Sudoku in particular)
Dec 8 PowerPoint Rebol
Dec 22, 9:00-11:00  

PowerPoint A PowerPoint document, usually one of my lectures Assignment An assignment Software Software that will be useful in this course
Tutorial A tutorial More information Additional information about the assignment or topic official spec Official specification; external link indicates offsite
Read An article; external link indicates offsite Example Example Quiz Quiz or exam