The two courses (with a single integrated final exam) aim at providing both theoretical and practical foundations of imperative programming as well as 'object-oriented' programming, using C++ as the reference programming language.
Course contents summary
Programming foundations. Imperative and object-oriented programming. C++ programming language.
FOUNDAMENTALS OF PROGRAMMING A.
Problems and algorithms: basic notions, flow-charts -
A sample program in C++ - Constants and variables -
Elementary data types in C++ - Assignment and compound
statement - Basic input/output - Operators and expressions -
Control structures (selection, iteration).
Structured stratements in C++ - Data structures (abstract vs.
concrete). Arrays in C++. Matrices. Strings. 'struct'.
Tables (hints) - The 'typedef' declaration.
Subprograms: motivations. Function declaration and
call in C++ - Parameter passing: by value, by reference.
'void' functions - Recursive functions - Scope rules in C++.
Local vs. global declarations - File management in C++.
Program development. Programming environment: editor,
compiler, linker (hints) - Developing simple programs using
the imperative part of C++ - Using library functions.
FOUNDAMENTALS OF PROGRAMMING B.
Class and object declaration. Accessing member
functions and data of a class - Class constructors -
A sample class: 'rational' - Function and operator overloading -
The 'string' class - Pointers and dynamic memory allocation.
Arrays and pointers - A sample class: 'int_vett' - The assignment
operator. The copy constructor. Class destructors - Object
life-time (hints) - Abstract data types (ADT).
Exception handling: motivations. Constructs for exception
handling in C++ - Parametric classes ('template'): declaration,
instantiation. A sample class: 'vett' - Parametric functions
(hints) - Inheritance. 'public' vs 'private' derivation.
Multiple inheritance (hints).
L.J. Aguilar. Fondamenti di programmazione in C++ , McGraw-Hill, 2008.
Theory supported by exercises and practical experimentation.
Assessment methods and criteria
Written and oral exam, plus development and demo of a practical application written in C++.