Lectures: During Semester 1, 14:10–15:00 Mondays in George Square Lecture Theatre and 11:10–12:00 Tuesdays in David Hume Tower Lecture Theatre A.

except for the following swaps with Inf1-CL:

Week 2: Inf1-CL Tue 26 Sep (11:10–12:00, DHT LTA) instead of Inf1-FP

Week 3: Inf1-FP Fri 6 Oct (14:10–15:00, DHT LTA) instead of Inf1-CL

Week 4: Inf1-FP Thu 12 Oct (11:10–12:00, DHT LTA) and Fri 13 Oct (14:10–15:00, DHT LTA) instead of Inf1-CL

Week 10: Inf1-CL Mon 20 Nov (14:10–15:00, GSLT) and Tue 21 Nov (11:10–12:00, DHT LTA) and instead of Inf1-FP

You are very strongly advised to attend all lectures!

Link: Lecture locations.

Exercises: Tutorial exercises are published here at least a week before the corresponding tutorial. This work does not contribute towards your mark for the course but it is absolutely essential for your understanding of the material.

You can discuss your work on these exercises with other students, and ask questions on the course discussion forum. Or in the CompSoc chatroom. If you are having difficulties, drop in to the lab when a demonstrator is on duty. Or go to InfBase, the Informatics student help desk. Or attend an InfPALS session.

The CamlBack system, hosted at UCLA, can provide automated feedback on most of your tutorial exercises. It may help you to make better progress on the exercises before your tutorial but it is not a substitute for tutorial attendance. CamlBack is still under development and for some kinds of exercises the feedback will be more helpful than for others.

Link: CamlBack (select language Haskell and login as guest); notes on CamlBack.

Tutorials: These start in week 3 and take place each week until week 10, led by a tutor. If you are ill or otherwise unable to attend one week then email the tutor, and if possible attend another tutorial group in the same week.

Some tutorial groups are designated as "beginner friendly". Students who have no programming experience, or who are less confident, may wish to request allocation to these. There will be a beginner-friendly tutorial in each tutorial timeslot so timetabling conflicts should not prevent anybody from switching into, or out of, a beginner-friendly tutorial.

All tutorial groups will cover the same tutorial exercises but the beginner-friendly tutorials will proceed more carefully, as required by the students in the group, to make sure that all students are keeping up. The tutorials that are not labelled as beginner-friendly will tend to proceed more quickly.

Link: Tutorial group times, places and membership.

Students are expected to prepare for each tutorial, which includes completing the tutorial exercises and the reading.

You must attempt the work before the tutorial and bring with you a copy of the work you have done. Tutorials are mandatory, and the only way to learn is to do the work before the tutorial, not at the tutorial. Students who have not done the work in advance may be sent away. Programming is not a spectator sport!

Advanced Tutorial: There will be an extra drop-in tutorial starting in week 4 for students who would like to go beyond what will be covered in the normal tutorials. This tutorial is for you if you had no significant trouble solving the non-optional exercises and have made a serious attack on at least the first of the optional exercises. This is in addition to and separate from your normal tutorial session and tutorial exercises!

Friday 4:10-5:00pm, Appleton Tower 5.04

If you decide to attend, then you should bring your solutions to the tutorial exercise with you!

Labs: The workstations in AT 5.05 / 6.06 are reserved for Inf1-FP for a few hours every weekday. A lab demonstrator will be available at the times indicated to assist with the coursework.

Reserved for Inf1-FP Demonstrator available Location Mondays 3:00–5:00pm 3:00–4:00pm AT 5.05 Tuesdays 2:00–4:00pm 2:00–3:00pm AT 6.06 Wednesdays 2:00–4:00pm 2:00–3:00pm AT 6.06 Thursdays 2:00–4:00pm 2:00–3:00pm AT 6.06 Fridays 3:00–5:00pm 3:00–4:00pm AT 5.05

Every student should attend the lab during week 2 in order to complete the lab exercise. Please go on the day indicated in the list below. If you have a conflict, just go on a different day in week 2 - no need to inform anybody. After week 2, the labs are run on a drop-in basis and you can go as often as you like.

Link: Lab assignments during week 2

Videos: Recordings of lectures are available via Learn. These recordings supplement lectures by allowing you to review the material presented and revise for the exam.

Links: Some video lectures from Microsoft on Haskell; Introduction to Functional Programming using Haskell: MOOC by Erik Meijer

Forum: Piazza provides an online forum for Inf1-FP in which you can post questions and answers on anything related to the course. The course lecturer, teaching assistant, tutors and demonstrators will also read and answer questions.

Links: Piazza course page; Piazza signup