The main goal of the school is to help participants learn the techniques of object oriented programming in C++. The school addresses all physicists from the student to the senior level who feel that they would profit from lectures and hands-on exercises on the following topics:
- going from C to C++, function overloading, default parameters, operators
- class basics, namespaces, constructors, destructors
- C++ style input/output operations (basics)
- dynamic memory management, pointers
- using templates and the Standard Template Library (STL basics)
- STL data structures and generic algorithms
- advanced classes: function classes, inheritance, abstract base classes
- C++ style input/output operations (advanced, class hierarchy, iterators)
- external libraries: the Boost library
- exceptions (maybe, depends on how we can progress with other topics)
- handling multiple source files, using make, GIT
Participants are expected to have a basic knowledge of C or C++ (what is a class? what is a namespace?). The focus is on programming - the physics examples used are very simple.