This course will introduce students to C++ as a language widely used in scientific computing. The course will cover most aspects of C++ to an intermediate level, with the aim being to teach students sufficient C++ to program non-trivial algorithms in a robust and efficient manner. The course should be accessible to all students, irrespective of any prior programming knowledge:
Course structure:
- Basic arithmetic, including types and overflow
- Branching constructs
- Loop constructs
- Functions, pass by reference and value
- Arrays, pointers, and heap allocation
- Use of the pre-processor, include-files, and linking
- Object-oriented programming: classes, inheritance, virtual functions, polymorphism
- Function and operator overloading
- STL containers and algorithms
- Simple uses of templates