Uni-Logo
You are here: Home Teaching and Training WS0607 Scientific Programming - An Introduction to C++
Document Actions

Scientific Programming - An Introduction to C++


Course: Scientific Programming - An Introduction to C/C++
Organizers: Ad Aertsen, Ralph Meier
Tutors: F. Geier, M. Helias, S. Schrader, B. Wiebelt
Location: CIP Botanik
Time/Duration: March 5 - March 16, 2007
Start: March 5, 2007 at 9:15h
Preparatory meeting (Vorbesprechung): Oct 30, 2006, 17:30, 05.070 Biology II/III
Max: 15 Students
Credits: 5
 Still places available. Students can subscribe by e-mail:
meier@biologie.uni-freiburg.de


The course is directed at Bachelor, Master, and Diploma students and does not require any prior knowledge of programming languages or computers. However, students with experience in other programming languages will also benefit. It is helpful to have covered this material before starting a Diploma or Master's project, regardless of whether the focus is experimental or theoretical.

Modern C/C++ is taught with an example driven rather than a language feature based approach using selected problems from neurobiology and physics. In an introductory session the UNIX/Linux operating system and the typical hard and software environment of scientific programming are discussed.

New concepts are successively introduced as required by the examples. The two weeks block course consists of brief lectures followed by practical work on the examples and closes with individual mini-projects of 3 days duration and a colloquium. The C++ standard library is used from the beginning to provide access to basic data structures (e.g. strings, vectors) and algorithms, enabling rapid progression towards interesting examples. Technicalities and low level programming are avoided where possible and appropriate. In this way a style of programming is taught which also prepares the student for specialized, interactive, languages like Matlab. At the same time the syntax and style learnt lay the ground work for an advanced course discussing the concepts and techniques (e.g. classes, inheritance, exceptions) required in scientific projects of larger scale. In addition to the basic control structures, variables, and scoping, the course covers input/output (streams), functions, references, constness, namespaces, the preprocessor, and first steps into the standard library.

Templates are discussed as far as required for use of the standard library and if the preprocessor would have to be employed otherwise. The course is based on the textbook by Koenig & Moo (2000, Accelerated C++: Practical programming by example Addison-Wesley, Boston). As reference books (Josuttis, 1999 The C++ Standard Library: A Tutorial and Reference Addison-Wesley, Reading) and (Stroustrup 1997 The C++ Programming Language Addison-Wesely, New York) are recommended. Most of the numerical techniques are found in (Press et al. 1992 Numerical Recipes in C Cambridge University Press). Course language is German if not otherwise required, course material is in English.


Personal tools