Course at a Glance 
An overview of the object oriented programming concepts using the C++ language. 
Instructors 
Manuela Chessa manuela.chessa@unige.it
DIBRIS, via Dodecaneso 35; room 226, phone: 010-353 6626 
Fabio Solari fabio.solari@unige.it
DIBRIS, via Dodecaneso 35; room 303, phone: 010-3536756 
Credits: 5 
Synopsis 
This course focuses on the use of C++ for large software projects and for the implementation  of high performance object-oriented modules. In particular, programming techniques to  tackle the issues of reusability, robustness and efficiency are considered. 
Tools used: Software 
-C++ compiler 
Syllabus 
- Basic Facilities: The C and C++ languages: pointers, arrays, and structures. Functions.  Namespaces and exceptions. 
- Abstraction Mechanisms: Classes and objects. Operator overloading. Class hierarchies.  Polymorphism. Templates. 
- Case studies: Containers and algorithms. Iterators. 
Final exam 
The examination consists in the development (with discussion) of a specific software  module. 
Prerequisites 
Knowledge of a programming language. 
Reading List 
- B. Stroustrup. The C++ Programming Language. Addison-Wesley 
-B. Eckel. Thinking in C++. Prentice Hall 
(http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html) 
Venue 
Dept. of Informatics, Bioengineering, Robotics and System Engineering - DIBRIS, via  Dodecaneso 35, Genova 
Course dates June-July 2017
- Docente: Manuela Chessa
- Docente: Fabio Solari
