CIS 554 Programming Paradigms
Fall 2011, David Matuszek

What this course is about

Primary languages: Prolog, Rebol, Clojure, Scala. Probably mention: Erlang, Forth, Haskell, Perl, Ruby.

This syllabus is a work in progress--in other words, it can be changed at any time. Think of it as a rough draft.

Got a question? Ask it here!

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


Search Dave's web sites:
Academic Integrity Policy
Resources (Textbook and Software)
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Last year's CIS 554 web site

Date Announcements
December 17, 2011 Final Exam: Monday, December 19, 9am-11am, DRLB A4
December 11, 2011 I've posted a Study Guide for the Final Exam.
Older Previous announcements

Date Lectures etc. Assignments
W Sept 7

Logic; resolution; sorites; Prolog without assert & retract; Logic puzzle assignment 1.
A Concise Introduction to Prolog

Assignment Prolog Logic Puzzles
M Sept 12

More resolution; resolution practice problems

W Sept 14 Prolog; nonmonotonic logic, assert & retract
Very skeletal, and (right-click to save).
Good Prolog site:
Assignment Prolog Adventure Game
M Sept 19 Prolog; Monty Python  
W Sept 21
Add period ends F Sept 23
Prolog quiz; Erlang
Erlang PowerPoint slides (extended slides on last year's CIS 554 site).
Quiz makeup: Erlang
M Sept 26 Rebol; assignment 3
Concise Guide to REBOL
Concise Guide to REBOL/View
Assignment REBOL Flash Cards
W Sept 28 Rebol--stepping through an example.
Prolog practice problems and solutions
M Oct 3 Rebol--maybe the parse command?  
W Oct 5 Rebol quiz; Haskell  
M Oct 10 Fall break; no class  
W Oct 12
Drop period ends F Oct 14

Introduction to Clojure; Clojure assignment
Read All About Recursion
Read Concise Guide to Clojure (under construction)

Assignment Clojure exercises
M Oct 17 Clojure  
W Oct 19 Java interoperability; macros Assignment Clojure GUI DSL
M Oct 24 Clojure  
W Oct 26
Family weekend F Oct 28
M Oct 31 Scala  
W Nov 2 Clojure quiz; A lot of Scala in a hurry
Example HelloWorld.scala, Buzz.scala, Pig.scala
Assignment Scala warm-up
M Nov 7 Read Concise Guide to Scala (under construction) Assignment Scala Cryptograms
W Nov 9 Scala  
M Nov 14 Scala  
W Nov 16
Last day to withdraw F Nov 18
Read The Scala Option Type
M Nov 21 First Scala quiz; Crash course in concurrent programming
PowerPoint Concurrency 101
Read Understanding the Scala API
Assignment Book Indexing (two assignments in one)
More information Proposed list of words to index
Example I/O Examples
W Nov 23
Thanksgiving break Nov 25
Day before Thanksgiving;
No class in CIS 554 (other courses may or may not meet)
M Nov 28 Scala  
W Nov 30 Scala + Actors
Read Understanding the Scala API
Read external link Why Scala is less good than Java...
Read external link Java Concurrency / Multithreading - Tutorial
M Dec 5 Scala+ Actors
Read Understanding the Scala API
W Dec 7 Second Scala quiz: Moved. To give us a little more lecture time, I've decided to put a Scala section on the final exam (and make the rest of the final exam a bit shorter). Point distribution will remain the same.
Also, a bit of PowerPoint Ruby.
M Dec 19, 9am-11am Read Study Guide for Final Exam
Final Exam, DRLB A4

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