| Date |
Lectures |
Readings, Assignments, etc. |
| Aug 28 |
Introduction to CIS 554
(3)
Prolog 1, Programming in
Logic (21) |
Prolog 1: Logic
puzzles
its-a-tie.pl
Notes on It's a Tie
Concise Guide
to Prolog
Language
Flamewars and the Blub Paradox  |
| Sept 2 |
Labor Day--no class |
|
| Sept 4 |
Prolog 2,
Nonmonotonic Logic (28)
Prolog 3, Unification
(19) |
Prolog 2:
Adventure Game
Tiobe
Index
(skim)
99 Bottles of Beer
(just know this site exists) |
| Sept 9 |
Prolog 4, Lists (18)
Prolog 5,
Resolution Condensed (15) |
adventure.pl.txt (Starter
file)
spider.pl.txt |
| Sept 11 |
Prolog 5, Resolution
(41)
Important concepts from
Prolog (not presented in lecture) |
Prolog 3: Maze
If you need help understanding recursion,
All About Recursion
(Python version)
Recursion |
| Sept 16 |
Prolog quiz
Lisp, Then and Now (8)
Thinking in
Clojure (26) |
Basic Clojure
Functions
Resolution
Practice Problems (not to be turned in) with solutions |
| Sept 18 |
Clojure: Lisp
Reloaded (36) |
Clojure 1:
Exercises
Unit
tests for last year's Clojure exercises (.clj.txt)
-- feel free to reuse what you can; it's not exactly the same
Concise Guide
to Clojure (under construction!)
Browse either the Clojure
cheat sheet
or the Clojure reference
 |
| Sept 23 |
Recursion in Clojure
(28)
Clojure Sequences
(27) |
Clojure 2: Sudoku |
| Sept 25 |
Clojure and Java
(14) |
The
Free Lunch is Over  |
| Sept 30 |
Clojure Concurrency
(40) |
Clojure
STM - What? Why? How?
Clojure
- Functional Programming for the JVM (Concurrency)  |
| Oct 2 |
Clojure Macros (9)
Clojure--Summary
of Concepts (12) |
Clojure 3:
Traveling Salesman
Can
Your Programming Language Do This?
(short)
Functional
Programming For The Rest of Us
(long) |
| Oct 7 |
Clojure quiz
Haskell 1 (30) |
A Concise
Guide to Haskell
Learn
Haskell in 10 Minutes 
|
| Oct 9 |
Haskell 2, Functions and Patterns
(32)
Haskell 3, Examples (12) |
(and pay attention to!) Haskell
Style Guide 
Haskell 1:
Exercises
Concise
Guide to Haskell |
| Oct 14 |
Haskell 4, More Functions (15)
Haskell 5, Dealing with Impurity
(22) |
Land of Lisp: Functional
Programming is Beautiful
(A gut-level comparison of Clojure and Haskell) |
| Oct 16 |
REBOL (17) |
Learn REBOL 
A Concise Guide
to REBOL
A Concise
Guide to REBOL/View
REBOL 1 |
| Oct 21 |
Haskell quiz
REBOL 2, Lists
REBOL 3, Writing
Functions |
flash-cards.r
Birds.zip (folder of JPGs)
|
| Oct 23 |
Forth |
Forth: Lunar Lander
Forth Tutorial
(pforth)
|
| Oct 28 |
Scala Apologia (16)
Reading the Scala API
(4)
Getting Started in Scala
(26) |
Scala:
The Static Language that Feels Dynamic 
Understanding the
Scala API |
| Oct 30 |
REBOL quiz (plus just a little about Forth)
Scala Lists (19)
Scalatest |
Scala 1: Twenty-one
A Concise Guide
to Scala
Scala
Tutorial
(at tutorialspoint ) |
| Nov 4 |
Getting Functional in
Scala (22) |
|
| Nov 6 |
Scala's Classes,
Objects, Traits (21) |
Scala 2: Playfair
Cipher
|
| Nov 11 |
The Scala API |
Tail-Recursion
Basics in Scala
(Note: Scala now has @tailrec) |
| Nov 13 |
More About Scala
Functions (12)
Java and Scala
Threads (22) |
Scala 3: Jigsaw
Puzzle Competition
|
| Nov 18 |
Scala quiz 1
Pattern Matching in Scala
|
Java 8 vs
Scala: a Feature Comparison  |
| Nov 20 |
Actors in Scala (30) |
Scala 4: Site
Downloader |
| Nov 25 |
Regular Expressions |
|
| Nov 27 |
Day before Thanksgiving (no class) |
|
| Dec 2 |
Cryptograms
Monads |
A Concise
Introduction to Scala Swing |
| Dec 4 |
Scala quiz 2 |
Graphviz |
| Dec 9 |
Review
|
|
| Dec 20 |
Final Exam, 9am-11am, Towne 311 |
|