CIS 554 Programming Paradigms
Fall 2012, David Matuszek

Got a question? Ask it here!

This is a tentative schedule; everything on it is subject to change without notice.

Date Announcements
December 7, 2012 Answers to Scala quiz #2.
December 5, 2012 Shortest Bridge programs.
December 4, 2012 By popular demand: The first Scala quiz (with answers).
December 3, 2012 Good article: Java 8 vs Scala: a Feature Comparison
Also: The Martian, a science-fiction novel based on actual science!
Older Previous announcements

Meeting times
Lecture MW 10:30-12:00 Towne 303
 Office hours
Ask questions about the course in Piazza Always open, 24/7  

Whenever my door is open.
Specific office hours: 3:00-4:30 Tuesdays and Thursdays
Moore 176
Search Dave's web sites:
Last year's CIS 554
Academic Integrity Policy
MCIT schedule

Date Lectures Readings, Assignments, etc.
Sept 5 PowerPoint Prolog 1, Programming in Logic (51) Assignment Prolog 1: Logic Puzzles
More information Notes on the Logic puzzle assignment
Read Concise Guide to Prolog
Read The Free Lunch is Over external link

Read Language Flamewars and the Blub Paradox external link
Read Tiobe Index external link (skim)
Read 99 Bottles of Beer external link (just know this site exists)
Sept 10 PowerPoint Prolog 2, Unification and Clause Order (21)  
Sept 12 PowerPoint Prolog 3, Lists (20) Assignment Prolog 2: Adventure Game
Sept 17 PowerPoint Prolog--Resolution
PowerPoint Prolog--Resolution Condensed
If you need help understanding recursion,
Read All About Recursion (Python version)
PowerPoint Recursion
Sept 19 PowerPoint Clojure 1, Lisp Reloaded (30) Read Basic Clojure Functions
Assignment Gateway to Clojure 1 Assignment using Java 1.5, Java 1.6, or Java 1.7
Assignment Clojure 2: Exercises (the actual first assignment)
More information Unit tests for the Clojure exercises (.clj.txt)
Resolution Practice Problems (not to be turned in) with solutions
Sep 21 Add period ends
Sept 24 Quiz Prolog quiz and More information Answers
Unscheduled fire alarm
PowerPoint Clojure 1a, Thinking in Clojure (21)
Read Concise Guide to Clojure (under construction!)
Read Browse either the Clojure cheat sheet external link or the Clojure reference external link
Sept 26 PowerPoint Clojure 2 (14)
Assignment Clojure 2: Conversion to clause form
More information Tips for this assignment
More information Clause syntax
Sept 28    
Oct 1 PowerPoint Clojure 3 (22)
Oct 3 PowerPoint Clojure 4, Concurrency (26)
Read Clojure STM - What? Why? How?
Read Clojure - Functional Programming for the JVM
Oct 5    
Oct 8 PowerPoint Clojure 5
PowerPoint Haskell 1 (30)
Read Can Your Programming Language Do This? external link (short)
Read Functional Programming For The Rest of Us external link (long)
Oct 10 Quiz Clojure quiz and Answers
PowerPoint Haskell 2, Functions and Patterns (32)

Read A Concise Guide to Haskell
Read Learn Haskell in 10 Minutes
Read (and pay attention to!) Haskell Style Guide
Assignment Haskell 1: Exercises

Oct 12 Drop period ends  
Oct 15 PowerPoint Haskell 3, Examples (12)  
Oct 17 PowerPoint Haskell 4, More Functions (15) Read Land of Lisp: Functional Programming is Beautiful external link (A gut-level comparison of Clojure and Haskell)
Haskell 2: Mastermind
Example "Spider" game in Haskell (HTML page and spider.hs)
Oct 19 Fall break  
Oct 22 Fall break  
Oct 24 PowerPoint Haskell 5, Dealing with Impurity (22)  
Oct 26    
Oct 29 Hurricane Sandy  
Oct 31 Quiz Haskell quiz and Answers
PowerPoint REBOL (17)

Read Learn REBOL external link
Read A Concise Guide to REBOL
Read A Concise Guide to REBOL/View
Assignment REBOL -- Do something interesting. With a GUI.

Nov 2    
Nov 5 PowerPoint Scala 1. Apologia (16)  
Nov 7 PowerPoint Scala 2, Getting Started (26) Assignment Scala 1: Sudoku
More information Example Sudoku puzzles
Nov 9    
Nov 12 Quiz REBOL quiz (short!) and Answers
PowerPoint Scala 3, Lists (19)
Nov 14 PowerPoint Scala 5. Getting Functional (22) Assignment Scala 2: Bridge
More information Additional Bridge requirements
More information Shortest Bridge programs
Nov 16 Last day to withdraw  
Nov 19 PowerPoint Scala 6, Classes and Objects and Traits (21)
Nov 21 Day before Thanksgiving (No class)  
Nov 23 Thanksgiving break  
Nov 26 Quiz Scala quiz 1 and Answers
PowerPoint Scala 7, More About Functions (12)
Read Tail-Recursion Basics in Scala (Note: Scala now has @tailrec)
Read Scala Tutorial (at tutorialspoint)
Assignment Scala 3: Index Dave's Website
Nov 28 PowerPoint Scala 8, Java Threads (22) More information Tokenizer.scala and TokenizerTest.scala
Nov 30    
Dec 3 PowerPoint Scala 9, Actors (30)
PowerPoint Scala10, Concurrent Algorithms (11)
Read Java 8 vs Scala: a Feature Comparison (No, it won't be on the quiz!)
Dec 5 Quiz Second Scala quiz and Answers

Dec 7    
  No Final Exam  

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 (always external link offsite)
Read An article; external link indicates offsite Example Example Quiz Quiz or exam