CIS 554 Resources
Spring 2010, David Matuszek


Seven Languages in Seven Weeks

Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages
by Bruce A. Tate

The paper book will not be available until September 15, but you can get it now as an e-book at The e-book alone is $22 and the e-book + paper book is $43.75.

You can supplement the book with readings and tutorials from the web. A number of these are listed below, generally with the most important ones first.


A Brief, Incomplete, and Mostly Wrong History of Programming Languages
How Not to Write FORTRAN in Any Language
(In author's view, "writing Fortran" = "writing bad programs")
Revenge of the Nerds
(How languages are becoming more Lisp-like)
The Theory and Practice of Concurrency (600 pages) (PDF)
Java, Don't Make Long Term Plans


Io download
Io Programming Guide
Io Reference
Io -- The Unofficial Website


SWI-Prolog 5.10.1 download
Adventure in Prolog
SWI-Prolog 5.10 Reference Manual (PDF)


Erlang download
Getting Started with Erlang User's Guide
Erlang Reference Manual
Erlang OTP Reference Index (where to find what functions are available)
A Concise Guide to Erlang (by Dr. Dave)
Installing Erlang on Mac OS X
Erlang Documentation
Learn You Some Erlang for Great Good
Tutorial: Learning Erlang – just the basic basics -- Giant Flying Saucer
Erlang for C, C++ and Java Programmers
Concurrent Programming in ERLANG
Getting Started with Erlang (v. 5.7.2)
Erlang Style Concurrency
Erlang Community Site
CACM article on Erlang


Clojure download
Getting started
Casting SPELs in Lisp (Clojure version)
Quick Ref for Clojure Core
"Official" Clojure Cheat Sheet (also available as PDF)
Other cheat sheets
Clojure - Functional Programming for the JVM
The Eternal Flame (Julie Ecklar)
Music at
Lyrics at
The Nature of Lisp
Revenge of the Nerds
Clojure: Functional Programming


Download and install Haskell (GHC)
Download and install Haskell (HUGS)
Learn you a Haskell for Great Good
Introduction to Haskell (HUGS)
Yet Another Haskell Tutorial (HUGS)


Trait Suite
(A good starting point for reading about scalatest)
Trait ShouldMatchers (the really cool stuff)