Fall 2011, David Matuszek

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:

Resources (Textbook and Software)
My schedule
Blackboard and
Instructions for Using Zip Files and Blackboard
Last year's CIS 554 web site
Piazza

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

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

Prolog Logic Puzzles
M Sept 12

Prolog
More resolution; resolution practice problems

W Sept 14 Prolog; nonmonotonic logic, assert & retract
Very skeletal adventure.pl, and spider.pl (right-click to save).
Good Prolog site: http://www.cse.unsw.edu.au/~billw/cs9414/notes/prolog/ext-prolog.html
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
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
Concise Guide to Clojure (under construction)

Clojure exercises
M Oct 17 Clojure
W Oct 19 Java interoperability; macros Clojure GUI DSL
M Oct 24 Clojure
W Oct 26
Family weekend F Oct 28
Scala
M Oct 31 Scala
W Nov 2 Clojure quiz; A lot of Scala in a hurry
HelloWorld.scala, Buzz.scala, Pig.scala
Scala warm-up
M Nov 7 Concise Guide to Scala (under construction) Scala Cryptograms
W Nov 9 Scala
M Nov 14 Scala
W Nov 16
Last day to withdraw F Nov 18
Scala
The Scala `Option` Type

M Nov 21 First Scala quiz; Crash course in concurrent programming
Concurrency 101
Understanding the Scala API
Book Indexing (two assignments in one)
Proposed list of words to index
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
Understanding the Scala API
Why Scala is less good than Java...
Java Concurrency / Multithreading - Tutorial

M Dec 5 Scala+ Actors
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 Ruby.

M Dec 19, 9am-11am Study Guide for Final Exam
Final Exam, DRLB A4

Key
A PowerPoint document, usually one of my lectures An assignment Software that will be useful in this course
A tutorial Additional information about the assignment or topic Official specification; indicates offsite
An article; indicates offsite Example Quiz or exam