Skip to content

Latest commit

 

History

History
66 lines (48 loc) · 2.88 KB

index.md

File metadata and controls

66 lines (48 loc) · 2.88 KB
title layout slidelink
An Introduction to C++ for Research
default
false

##Introduction

In this course, we build up, gradually, a fully working example piece of research software from scratch.

The software can be used to simulate the changing populations of interacting species, which could be reacting chemicals, or predator and prey, or customers and companies...

We will see that the code which implements the mathematics itself is only a small part of our work; we will focus on configuring and setting up our model, displaying results, and checking the program is working correctly; all the code you need to build up a working piece of research software from scratch.

We will introduce the syntax of C++ as we go, its main features and standard libraries, and understand how we can describe our problem as a set of interacting kinds-of-thing, or classes.

What this course is not

  • An introduction to programming: you are assumed to be already able to program in some language.
  • A comprehensive introduction to C++ syntax: we will introduce the language ad-hoc as we progress.
  • A gentle course: the course is intensive, and assumes a highly intelligent trainee with the willingness to commit time to the learning process.
  • A software engineering course: while we will touch on some aspects of good software engineering practice, this will not be the focus.

What this course is

  • Primarily intended for quantitative scientists: the focus and examples will emphasise numerical aspects.
  • Interactive: by following the examples, you will have constructed for yourself a working C++ program capable of real science.
  • Short: a good student should be able to work through all the material in around 25 hours.
  • Selective: we will touch on only a tiny fraction of what C++ offers.

Prerequisites

In order to follow this course, you should at minimum already know:

  • How to program in some language, (such as Basic, Python, Ruby, MATLAB, or FORTRAN) including:
    • Variables including arrays or vectors
    • For and while loops
    • If statements and case switches
    • Functions and/or procedures
  • How to edit program files in a text editor
  • How to create and delete files and folders (directories) using a unix command line.

In addition, it will make the much course easier for you if you also already have experience of the following, though we will introduce the very basics of these during this course, so these are not an absolute prerequisite:

  • Version control with Git (or Subversion or Mercurial)
  • Unit testing

In order to meet these prerequisites, you could attend a Software Carpentry course, which are offered regularly in UCL and around the world.

Versions

You can find the course notes as HTML via the navigation bar to the left.

The notes are also available in a printable pdf format.