PROGRAMMING III
cod. 14834

Academic year 2009/10
3° year of course - Second semester
Professor
Academic discipline
Informatica (INF/01)
Field
Formazione interdisciplinare e applicativa
Type of training activity
Related/supplementary
48 hours
of face-to-face activities
6 credits
hub:
course unit
in - - -

Learning objectives

Object Oriented Programming is based on a few principles(encapsulation, inheritance, polymorphism, etc.) that years ofexperiences have shown to be fundamental for the design and developmentof clear, concise, reusable and maintainable software.Tools and techniques that support an object oriented methodology areprovided by most of the mainstream programming languages. The coursewill present the advanced characteristics of the C++ programminglanguage, showing how these can be exploited to achieve the goalsmentioned above.

Prerequisites

A working knowledge of the imperative fragment of the C++ language is assumed.

Course unit content

<br /> <br />A summary of C++: data types; expressions; statements; functions; scope and life cycle; function overloading; classes.<br />Programming by contract: pre-conditions, post-conditions and class invariants.<br />Initialization, assignment and destruction.<br />Exceptions and resource management; dynamic memory management techniques.<br />Single inheritance: containment versus private inheritance versus public inheritance.<br />Dynamic polymorphism: virtual functions; the Liskov's substitution principle.<br />Designofsoftware interfaces: concrete types, abstract types, interfaceclassesand implementation classes; multple and virtual inheritance.<br />Static polymorphism: function templates and class templates.<br />The Standard Template Library: containers, iterators and generic algorithms; function objects.<br />Development environment: the compiler g++; the debugger gdb; automating the software build process: make; version control: cvs.<br />Documentation of software interfaces: doxygen.<br /><br />

Full programme

- - -

Bibliography

<br />B. Stroustrup. The C++ Programming Language, Third Edition or Special Edition, Addison-Wesley.<br /><br />S. Lippman, J. Lajoie. C++ Primer, Third Edition, Addison-Wesley.

Teaching methods

- - -

Assessment methods and criteria

- - -

Other information

- - -