This is the archived website of SI 413 from the Fall 2013 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Clojure is a functional programming language, based on Lisp (just like Scheme), that runs on top of the Java Virtual Machine. So you get all the nice functional advantages of Lisp (with lambdas and all that), but at the same time you get the platform-independence and speed of Java. Sweet! Clojure supports concurrency (multi-threading) pretty nicely as well.

Useful Links

How I will run your code

The programs you submit should be in a single file called proj.clj. I will run your code on the CS Linux environment, using the command

clojure proj.clj

Phase 1 Requirements

For this language, you need to implement modifications A, B, C, D, F, G, and H. See the Phase 1 page for details on what this means.

Phase 2

See the Phase 2 Page for the list of suggested problems. Of the ones listed, I recommend the following as being most well-suited for Clojure:

  1. Make
  2. Matrix Calculator
  3. Game Scheduler
  4. TODO list
  5. Game with hidden agenda
  6. Guess the language
  7. ??? (you choose!)