Skip to main content

Software Development in C and C++ 2024

Software Development in C and C++ 2024

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).

Basic Information

Date: 16 September – 27 September 2024
Format: The course will be hybrid. Participate over zoom or in person at Durham University’s Computer Science department. The Q&A sessions, afternoon tutorials and mini project sessions are all virtual. The computer lab MCS 2094 will be available to participants in those times.
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
Day 2 Variables and memory management
Day 3 Control Flow and Functions
Day 4 Procedural programming and code organisation
Day 5 Data structures

Week 2
Day 1 Revision and Q&A
Day 2 Object-oriented programming
Day 2 Function programming (Lambda notation)
Day 4 & 5 Mini project

Prerequisites and format

No prior knowledge of C is required. However, we expect participants to be familiar with another programming language such as Python.

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.

Most sessions 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 the final Thursday and Friday, 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

Please register here: https://forms.office.com/Pages/ResponsePage.aspx?id=i9hQcmhLKUW-RNWaLYpvlPaFXWYRdjpEn2VUAEw7H8VURTVGTElTOU44QUlPRFJEV1k0UEJaTFlZRi4u

Registration for in person attendance will close at the end of August. Online attendance can be registered until 15th September.

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. 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 Newcastle 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 16 September 2024
  • 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++.
  • In the afternoon, we will provide exercises. You are supposed to solve the problems handed out yourself. These sessions will take place on zoom.
  • 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.
  • We will provide access to a computing/programming web interface on the afternoon of the first Monday. If you prefer to use your own C/C++ programming environment, that’s absolutely fine and actually encouraged. However, we will not be able to provide support for your own system.