Your friendly operators
|
|
|
|
Administrative trivia
See the course page on Lambda's wiki for general information on the course.
3rd Party Material
- http://clojure.org is Clojure's home page. It contains useful links and (short) documentation about Clojure's features.
- http://clojuredocs.org contains lots of examples and searchable API documentation.
- The quick reference is particularly nice.
- Programming Clojure (homepage, quite cheap on Bookdepository) is a good book on Clojure, also available as an e-book.
- SICP is an excellent book on (functional) programming. Full text available online. The book uses Scheme, another LISP dialect like Clojure, for its examples and exercises. Scheme is surprisingly close to Clojure.
- HTDP is a book similar to SICP, but perhaps easier to understand. Full text available online. It also uses Scheme.
Exercises
Grading
| Score list A quite up-to-date list of actual points is available: clojure-tarkastuslista.html. It has been last updated 2011-02-26 21:00. This total includes all the workshop and Moodle returns so far. |
| Updated More info |
Each small exercise problem is worth 1 to 3 exercise points. At the end of each week, you encounter a boss fight. Bosses are worth at least 10 exercise points, depending on the week. You get points by showing your answers to the staff at the workshops or by submitting them to the course's Moodle page.
The exercise points are mapped to actual points, which determine how many credits you will be awarded for the course.
Actual points |
Credits |
|---|---|
30 |
2 |
45 |
3 |
60 |
4 |
Here are the point values of the chapters:
Chapter |
Exercise points |
Actual points |
|---|---|---|
First week |
31 |
12 |
Predicates, Collections |
23 |
12 |
Recursion |
24 |
9 (+ 2 bonus points) |
Calculatrix |
12 |
4 |
Laziness |
13 |
6 |
Looping |
8 |
4 |
Functional Programming |
13 |
9 |
Java Interop |
8 |
9 |
The Player of Games |
? |
? |
Writing the answers
Save each exercise answer in its own file called "exN.clj" where N is the exercise number. For an example, exercise four should be in a file called "ex4.clj".
You can load these files into the REPL with (load-file "exN.clj"). This loads the file exN.clj in the current directory. See Getting started for more information.
Returning the answers
| Updated Unit tests should pass for code returned to moodle |
You can either show your solution to an instructor at the workshop, or return them remotely to the course Moodle page.
If you return your answers remotely, return them in unit-testable form. This means that the unit tests should pass. Please also use good Clojure style (see Idiomatic Clojure). Name your variables properly. If we can't understand your code, we can't award you points. If you're unsure about something, please come to the workshops.
If you return your answers at a workshop, we can help you with any problems you might be having and you can fix your answers to get points you wouldn't get if you returned your unfixed answers remotely.
1st week – FIGHT!
Deadline: Thu 27.1. 23:55
Each small exercise is worth one (1) exercise point, 21 in total.
- Getting started
- Installation, how to run Clojure, IDE support
- Prefix syntax
- Basics
- load-file, let, defn, fn, control structures, do
- Basic types: strings, numbers, keywords
- Having fun with collections: for, map, filter
The boss is worth 10 points
- Middle boss: Conan the Librarian
Thus this week gives a total of 31 exercises points, which is mapped to 12 actual points.
2nd week – meditate
Deadline Thu 3.2. 23:55
Exercises are worth one (1) point by default. Some exercises are marked to be worth more points (up to 3).
Unit tests available here. Instructions for their use are available in Project Tools.
- Required reading: Idiomatic Clojure ( 0 exercise points)
- Indentation, names, whitespace, parentheses
- Predicates ( 6 exercise points)
- Collections: vectors, lists, seqs, maps, sets, destructuring, into (17 exercise points)
Thus this week is 23 exercise points which maps to 12 actual points
3rd week – the snake in the garden
Some stuff got moved here from week 2. This week is worth a whopping 57 exercise points which translates to 23 actual points (+ 2 bonus points from Recursion)
Deadline: Thu 10.2. 23:55
- Recursion ( 24 exercise points + 2 actual points) new DEADLINE Thu 10.2. 23:55
- Middle boss: Calculatrix (Unit tests and initial implementation in the week2 project linked above.) worth 12 points new DEADLINE Thu 10.2. 23:55
- Laziness (and sequences) (11 exercises worth a total of 13 points)
- Looping is recursion (8 exercises worth at total of 8 points)
4th week – overflow
- Functional Programming 13 points, one per exercise Deadline Tue 22.2
- Project with tests available at GitHub.
- Structuring Programs: namespaces, packages, etc
- this chapter is complete
5th week – overflow overflow
Complete!
Deadline Thu 3.3.
- Interoperating with Java code
- Project with unit tests available on GitHub.
- The Player of Games: atoms
- Project with unit tests available on GitHub
Bonus level
Didn't have time for these. ![]()
- Parallelism: transactions, agents, futures, refs
- Lisp Programming: symbols, macros
- Performance: reflection, hints, autoboxing, primitives, transients
- Libraries and tools: leiningen, cake, compojure
other stuff
- Project tools: Leiningen, Cake, Midje and stuff.