There are one written hand-in and three labs. Lab 1 should be done in Java, lab 2 in Java or Haskell and lab 3 in Haskell. You should work on these in pairs. If you don't have a lab partner then come to the first lecture and try to find one there. Please write in English. Submit everything through Fire.

The labs are part of the examination of the course! This means you must not under any circumstances copy any part of your solution from someone else. GU have in the past suspended students who copied parts of labs: they treat it just the same as cheating on an exam.

For each lab/hand-in there are two deadlines, a first and a final deadline. You should aim to finish the work before the first deadline. But if first deadline’s approaching and you’re stuck, don’t panic, just submit what you have. You then have until the final deadline to resubmit a version which will pass.

We aim to grade your submissions within three working days (i.e. not counting weekends and holidays). This applies only after the first deadline. If we fail at this, you may get an extension of the final deadline.

The lab supervision times are pretty irregular. Check the TimeEdit schedule. We will use Waglys, an electronic queueing system, at the sessions.

There are two rooms booked for each lab supervision session, but often there will be only one supervisor. Therefore it's good to use only one of the rooms if possible. Please choose room 3354 if it's not full.

first deadline last deadline
Hand-in: complexity Wed 5/4 Tue 25/4
Lab 1: sorting (Java) Fri 21/4 Mon 8/5
Lab 2: stock exchange (Java or Haskell) Fri 5/5 Mon 22/5
Lab 3: AA trees (Haskell) Fri 19/5 Mon 5/6