Logistics


You can access the slides 🖼️ for this lecture. You can download the entire set of slides and lecture notes in PDF from the home page.

Here we discuss how the C programming part of COMP26020 is organised.

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. This year the live session is on Monday, and then you have the rest of the week to work on the asynchronous materials:

C Part: Unit Content

The C part of the unit is made of:

  1. Lecture materials:
    • There is a live lecture every Monday 12pm-1pm, located in Simon Building Lecture Theatre B.
    • There will also be a set of (short) videos to watch every week after the lecture.
  2. 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.
    • A set of autocorrected programming exercises to complete each week after having studied the lecture materials, to validate your knowledge from the practical point of view.
  3. Summative (i.e. marked) assessment:
    • 1 lab exercise to be done at home and/or on the Department's machines.
  4. Support sessions:
    • These are optional and basically office hours, come if you have any questions about the lecture materials or assessments.
    • Support sessions are scheduled every other week starting week of 30/09, Wednesday 11am-12pm and Thursday 9am-10am in Kilburn 1.8.

Unit Website

The unit has a Blackboard page here. The landing page for the C part is here, and everything regarding that part 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 brief
  • The formative autocorrected programming exercises
  • Formative quizzes
  • Discussion boards
  • Reading lists

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. 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. A suitable VirtualBox VM image can be found here.
  • If you know what you are doing you can install Linux natively on your x86-64 machine. For that Ubuntu 22.04 is recommended.

🚨🚨 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 exercise 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.

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 (empty 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 formative/summative programming 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.

Lab Assignment (Marked)

The brief is accessible on Blackboard. The goal of the exercise is to implement a matrix processing library in C. It weights for 6.5% of the final COMP26020 mark. Keep in mind that this is a full year unit, and that the coursework/exam weights split for the C part of the unit is 50/50.

Autocorrected Programming Exercises (Not Marked)

There are a few formative programming exercises:

These exercises are corrected automatically with a tool called check50. The instructions on how to install and use it are available on the page regarding the dummy exercise.

Quizzes

There is a small, formative quiz to complete each week on Blackboard.

ChatGPT and other AI Tools

You should not use such tools to complete the summative lab exercise. We understand that they are becoming an important part of a programmer's toolbox, and you will likely use them extensively throughout your career, but in our case they defeat the purpose of the unit which is to teach you how to program in C. All submissions will be passed through a plagiarism checking tool, and the ones with high code similarity (e.g. because the authors copied and pasted code from ChatGPT) will be subject to an academic malpractice procedure.

Similarly, it is not recommended to use AI tools to complete the formative exercises: they are overall quite simple and easily done with such tools, and you are not learning much in the process.