Haskell is taught in the first six weeks of the Computing degree. There are four hours of lectures and six timetabled laboratory hours each week over that period. Students are given weekly exercises of growing complexity; these are marked and reviewed at weekly small-group tutorials by an academic tutor assisted by a senior undergraduate – a so-called Undergraduate Teaching Assistant, or UTA. UTAs are completely wonderful and every institution should have them! If you want to know more, ask me.
The core course does not cover Haskell’s more advanced features, such as monads, I/O, GADTs etc., although students have an opportunity to study these in an optional Advanced Programming course that runs in parallel with it. A ‘catch-up’ class is also held each week for students who need additional guidance and support.
The course is examined by a relatively simple “interim” test that takes place at the end of the course, typically in early November, and a main test that is held in January, immediately after the Christmas recess. The January test accounts for around 80% of the course mark.