UCL Logo
Skip to end of metadata
Go to start of metadata

C++ Graduate Programming Course


C++ is a compiled, object-oriented programming language combining high- and low-level features. It can be used to produce code that executes extremely fast, but at the expense of a more complex syntax and steeper learning curve.


A timetable of for the next C++ programming course will appear here when available.

Lecture Resources


Getting exercises

Stub files for exercises and source code from lectures can be found here:

Which you will need to copy to the Unix system. Or, you can type the following in your shell to get them directly:

wget --no-check-certificate https://wiki.ucl.ac.uk/download/attachments/26510193/Exercises.tar.gz
gunzip Exercises.tar.gz
tar -xvf Exercises.tar

You should now see a folder called Exercises with the code in the folders below that.

Downloading Your Work

If you want to download your completed exercises from socrates after you have finished you can do this.

First go to the windows file explorer and click in the address bar and type:


You will be asked for your ucl password. Now you will be able to see your socrates home folder from which you can copy across all the files.


Debugging Example:

Suggested reading

Sams Teach Yourself C++ in One Hour a Day
Jesse Liberty, Siddhartha Rao, Bradley L. Jones

A very thorough book, covers C++ in a good amount of detail and takes things fairly slowly with plenty of code to illustrate cocepts. The main downside is that it concentrates a little too much on teaching the language for its own sake rather than focusing on real-world usage and applications. That said it remains a great go-to for understanding fundamental language concepts.

The C++ Programming Language
Bjarne Stroustrup

The C++ programming reference, written by the man who created the language. This book provides deep insights into the language and the associated Standard Template Library that is a vital resource for writing almost any C++ program. The book is best used as a reference rather than something to be read cover-to-cover.

Online resources

  • Stack overflow: Great place to ask questions (search through the database first, it is very likely that your question has already been answered).
  • Boost: Don't reinvent the wheel!
  • Eigen: Fast linear algebra library that is easy to use and compile. There are many more such packages, just do a web search.
  • Google's C++ style guide: You don't have to follow this exactly, but it's a good idea to stick to a style that suits you best.
  • No labels