This course will teach the fundamentals of C++ language, using both procedural and object oriented programming approach. An in-depth review of the main language features will be presented, focusing on best practices and common patterns, using snippets taken from the context of Scientific and Technical Computing. General design strategies and well-known idioms will be discussed as a mean to avoid common pitfalls.
By the end of the course, students will be able to:
- understand the basis of object oriented paradigm (consistency, information hiding, inheritance, polymorphism, ...)
- read and understand procedural and object oriented C++ code and libraries
- cope with ASCII and raw data files, stream handling and formatting
- write new classes to represent entities in each user research domain and their relations
- make good choices in class design, understanding pro and cons of templates and polymorphism
- use most containers and facilities of the Standard Template Library (STL)
The course is open to anybody who is interested in an introduction to C++ focused on Scientific and Technical Programming.
A solid knowledge of C is mandatory.