Skip to main content

Software Development in C and C++ 2023

Software Development in C and C++ 2023

We will be running a two week workshop covering the basics of programming in C and C++ in September. This course is aimed at participants with no prior knowledge of C. The course is open to all (incoming) MISCADA MSc students of Durham University, Durham University staff, and Users from DiRAC (RSEs, PhDs, PostDocs). The course results from a collaboration between Durham’s Department of Computer Science, Durham’s Advanced Research Computing and DiRAC.

Basic Information

Date: 11 September – 22 September 2023
Format: The course will be hybrid. Participate over zoom or in person at Durham University’s Computer Science department. The Friday sessions are all virtual.
Location: Mon-Thu MCS 2094 (for those who attend in person; second floor in the Maths and Computer Science building)

Course Content

Week 1
Day 1 Introduction and the von Neumann machine model (lecturer T. Weinzierl)
Day 2 Variables and memory management (lecturer C. Marcotte)
Day 3 Control structures (lecturer C. Marcotte)
Day 4 Functions, call stacks, call semantics (lecturer A. Reinarz)
Day 5 Mini project (trainer A. Tuft)

Week 2
Day 1 Procedural programming and code organisation (lecturer A. Reinarz)
Day 2 Data structures (lecturer A. Reinarz)
Day 3 Object-oriented programming (lecturer L. Morgenstern)
Day 4 Lambda notation (lecturer L. Morgenstern)
Day 5 Mini project (trainer A. Tuft)

Prerequisites and format

No prior knowledge of C is required. However, we expect participants to be familiar with another programming language such as Python. For people joining us virtually, we will not provide infrastructure unless they already have a Durham IT account, i.e. those participants will be required to bring along their own kit or use computers from their home institution. DiRAC users will be able to use DiRAC facilities.

We expect participants to be able to use basic text editors and to have some bash/shell knowledge. An introduction to these tools is available from the Software Carpentry page.

Every Monday-Thursday, the course will consist of a 3h lecture in the morning from 9:00-12:00 UK time. In the afternoon, exercises will be provided for self-study, though we offer online support. On both Fridays, participants are asked to complete a mini-project in self-study. Again, an online help desk will be available. As this is a module that is not assessed formally, participants are encouraged to work through it as a group if they want.


Registration is closed now. We only accept late registration from the MSc MISCADA for students who enrolled late into the programme. However, they have to contact the programme director directly.

Material and confirmation

We will send out a welcome message closer to the workshop (after the registration has closed). Please note that we likely will not send out any messages prior to this. All lectures will be recorded and recordings plus material will be made publicly available through DiRAC. Please contact our colleagues from DiRAC for further details. For MISCADA MSc students from Durham, all material will also be mirrored on the internal course webpages, i.e. on Ultra.

Travel and accommodation

There is no financial or logistics support for accommodation and travel, but we can point to a few hotels nearby that guests of the department use frequently. Participants will need to make all booking themselves:

The University has their own Events team. They also provide B&B accommodation. However, as we approach the new term, it is not likely that they have “spare” rooms.

The University’s official Visit Us page provides some general guidance how to find us. The Department of Computer Science is on Mount Joy next to the Botanic Garden. Here are some further remarks how to get there:

  • If you are arriving at Newcastle International, take the tram (there’s only one) to Newastle Central (less than 40 minute) and then take a train to the South. Durham is 15 minutes away from Newcastle Central.
  • Alternatively, you can take a taxi from the airport (should be around 60 GBP for a drive of around 40 minutes in total).
  • From Durham train station, it is a 30-40 minute walk, which is quite beautiful.
  • Taxis should be available from the station and should be around 10-15 GBP.
  • Right in front of the station, there’s a bus stop with two lines:
    • Bus 42 to Mount Oswald. It runs every 30 minutes. Get off at “South Road Colleges” and walk up the hill from there (5 minutes).
    • Bus 41 to University Science Park. Hop off at the final stop.

Information for participants

  • The course spans two weeks and starts on Monday 11 September 2023:
  • Every Monday-Thursday, we will start at 9:00 am (UK time) with a morning lecture of 2-3 hours. In this lecture, you will learn the theoretical basics of programming in C and C++.
  • Every Monday-Thursday afternoon, we will provide exercises. You are supposed to solve the problems handed out yourself. On some days, we will offer a tutorial/warm-up starting at 1:00 pm (13:00, UK time).
  • Every Friday, we will hand out some small programming projects that you are supposed to solve yourself.
  • The course is not assessed, i.e. it is totally fine if you team up in groups to solve the exercises.
  • We will record the sessions, but we expect people to try to attend most sessions live where possible.
  • The course will be streamed via Zoom. The zoom details can be sent via email closer to the date (until late registrations have all processed). Please check your inbox. Room details can be found on the webpage.
  • Questions can be asked via Slack. You will be added to the Slack closer towards the course. Please watch out for an invitation email. For the exercises and the Friday project, support will be given via Slack. You will be able to use the Slack afterwards and outside of the lecture/exercise slots, but we will not maintain it throughout these hours.
  • We will provide access to a computing/programming web interface on the afternoon of the first Monday. You will be sent some credentials – either via email or via the Slack. If you prefer to use your own C/C++ programming environment, that’s absolutely fine and s/93013315674#successactually encouraged. However, we will not be able to provide support for your own system.