Logistics
You can access the logistics slides 🖼️ used in the live session.
A Typical Week
The unit follows a blended approach: we'll have one live session per week, then there is also a set of asynchronous materials (videos and exercises) to study. For part 1 of the unit, you should first attend the lecture given in the live session on Monday, then use the rest of the week to work on the asynchronous materials:
Part 2 is organised slightly differently and details about that will be given in due time.
Unit Content
For part 1 the unit is made of:
- Lecture materials:
- There is a live lecture every Monday 10am-11am, located in Kilburn building lecture theatre 1.5
- There will also be a set of short videos to watch every week after the lecture
- Formative (i.e. not marked) assessments
- one quiz to complete each week after having studied the lecture materials, to check that you understand the theory well
- Summative (i.e. marked) assessment:
- 3 lab exercises to be done during lab sessions and/or at home
- Total of 6 lab sessions scheduled on Wednesdays 12/02, 19/02, 05/03, 12/03, 26/03 and 02/04, 10am-12pm, Kilburn G23
- 3 lab exercises to be done during lab sessions and/or at home
- Office hours:
- Every Friday 3pm-4pm
- With Pierre in IT 415 from 31/01 to 14/03
- With Pavlos in IT 414 from 14/03 to 04/04
- Every Friday 3pm-4pm
Unit Blackboard Page
The unit has a Blackboard page here. All the unit's materials can be accessed from there:
- The unit's schedule (what to do each week)
- Lecture videos, including live sessions recordings
- Lecture notes and lecture slides
- The summative lab exercise briefs
- Formative quizzes
- Discussion boards
- Reading list
Required Software
All programming exercises (summative and formative) should be done in a Linux x86-64 (i.e. Intel CPU) environment with the GCC compiler version 10/11/12/13. To access such a development environment you have several solutions:
- Use the Department's machines
- If your computer has an Intel x86-64 CPU, run Linux in a virtual machine. Make sure to give several virtual cores to the VM.
- If you know what you are doing you can install Linux natively on your x86-64 machine.
For the VM/native Linux solutions, we recommend Ubuntu 22.04.
🚨🚨 Do not use native Windows/Mac or WSL environments 🚨🚨. We will not provide support for these environments, and you may lose marks when we grade your summative exercises due to differences in build toolchains.
For those of you using MacBooks with ARM CPUs (Apple silicon) we'll give some solutions next, but the general advice is to come on campus and use the lab machines.
You'll get access to a high-core count machine (48 cores) to test your programs at scale: mcore48. It includes a job queue system to avoid multi-tenant disturbances. Instructions on how to connect to this machine and use the job queue system will be given in the lab exercises' briefs. Note that accessing this machine from outside of campus requires to run the University VPN.
Lecture Videos and Slides
Lecture videos, slides, as well as recordings of past live sessions are available on Blackboard. In particular the slides contain clickable links and interactive code snippets, here is an example (hello world C program):
Take a look at the links at the bottom left of the code snippet, you have:
- A link (blue path) to download a fully functional program containing the code illustrated in the snippet, if you want to build and run it on your local machine.
- A link to a GitHub repository
containing the code in question, located in the same path as defined in the blue link, e.g. with the example above you can find the code in
00-logistics/sample-code.c
. The GitHub repository also contains instructions on how to set up a proper development environment to build and run the code samples, and to do the programming lab exercises for this part of the unit. This includes instructions for those of you that cannot get a native/VM-based Linux environment (e.g. Apple silicon CPUs). - A Programiz
link to quickly run the sample code in your browser. Please note that this is not a good development environment to work on exercises though as it is too restrictive in terms of functionalities.
Summative and Formative Assessement
The summative assessements consist in 3 programming exercises. The briefs are available on Blackboard.
The formative assessements consist in weekly quizzes, available on the Blackboard page corresponding to each week. These can be reached e.g. from the schedule page.