FUNDAMENTALS OF PROGRAMMING A - FUNDAMENTALS OF PROGRAMMING B
cod. 1000753

Academic year 2009/10
1° year of course - First semester
Professor responsible for the course unit
ROSSI Gianfranco
integrated course unit
12 credits
hub:
course unit
in - - -

Course unit structured in the following modules:

Learning objectives

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.

Prerequisites

- - -

Course unit content

 Problems and algorithms: basic notions, flow-charts - Programming languages. Program execution (translation vs. interpretation) - Program structure. 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.<br />
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++.<br />
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) (hints). <br />
Exception handling: motivations. Constructs for exception handling in C++ - Parametric classes ('template'): declaration, instantiation. A sample class: 'vett<T>' - Parametric functions (hints) - Inheritance. 'public' vs 'private' derivation. Multiple inheritance (hints).  <br />
Program development. Programming environment: editor, compiler, linker (hints) - Developing simple programs in C++ - Using library functions.

Full programme

- - -

Bibliography

H.M. Deitel, P.J. Deitel. C++ Fondamenti di programmazione, Apogeo, 2003, 696 pages.<br />
[OR] S. Lippman, J. Lajoie. C++: Corso di programmazione, 3a Ed., Addison-Wesley, 2000.

Teaching methods

Teaching method<br />
Theory supported by exercises and practical experimentation <br />
Exams<br />
Written and oral exam, plus development and demo of a practical application written in C++

Assessment methods and criteria

- - -

Other information

- - -