Degree course: 
Corso di First cycle degree in COMPUTER SCIENCE
Academic year when starting the degree: 
Academic year in which the course will be held: 
Course type: 
Compulsory subjects, characteristic of the class
Second semester
Standard lectures hours: 
Detail of lecture’s hours: 
Lesson (48 hours)

The knowledge of a programming language and of basic data structures is highly recommended. The knowledge and skills necessary for a successful learning of this teaching are given in the fundamental courses of the first year of Programming and Algorithms and data structures.

The objective of the exam is to verify the acquisition of the knowledge and skills described in the "Educational goals" section, assessing the level of knowledge and the ability to put into practice the programming techniques seen in class.
The exam consists of a written test to be held in the classroom, followed by an optional oral test in case of a positive outcome. The written test - of an approximate duration of 120 minutes - includes a series of 6 questions related to the topics covered in class (5 points available for each question). The first three questions concern procedural programming and the C language, whereas the last three ones concern object-oriented programming and the C ++ language. A positive outcome (assessed in thirtieths) allows to access to the oral exam (optional). The oral exam starts with a joint vision of the written test. The student is informed about the correction criteria and called to provide any clarifications, thus allowing the teacher to verify the correctness of the assigned grade, making changes if necessary. Then, the exam proceeds with in-depth questions on various topics covered in class.
The knowledge of the specific domain terminology is implicitly tested, as questions and problem specification use this terminology. Similarly, autonomous in-depth analysis is detected through questions that require knowledge of general aspects of procedural and object oriented programming.

Voto Finale

The course provides the basics of procedural and object oriented programming. These two paradigms are presented through concrete examples inspired to C and C++, the two languages that will be learned. The main goal is the knowledge of the inner mechanisms of language implementation.

Eventually, the student will be able

1. to develop programs in C and to understand the operational semantics of C;
2. to exploit basic and advanced features of OOP to develop C++ programs, through an effective use of the main constructs of the language.

Furthermore, the student will achieve the capability to proceed to an autonomous in-depth analysis of other programming languages (both procedural and object oriented), as well as a knowledge of the terminology in use in the OOP context.

Lectures deal with the following topics:

Procedural Programming (24 h, educational goal 1)
- Procedural programming: basic definitions and notions (4h)
- The C language: basics (8h)
- The C language: advanced features (12h)
Object oriented programming (24 h, educational goal 2)
- Object oriented programming: basic definitions and notions (6h)
- The C++ language: basics (6h)
- The C++ language: advanced features (single and multiple inheritance, visibility, polymorphism, subtyping, overloading, template) (10h)
- The Standard Template Library (2h)
Topics are illustrated by using C and C++. Nevertheless, most of the topics covered in the course are of general validity, and the techniques illustrated work also for other languages.

In addition to slides and lecture notes distributed via the e-learning platform, the reference texts are:
- Brian W. Kernighan - Dennis M. Ritchie, Il linguaggio C, Pearson Prentice-Hall (II ed.)
- Al Kelley - Ira Pohl, A Book on C, Addison-Wesley (4th ed.)
- Bjarne Stroustrup, The C++ Programming Language (4th Edition), A&W Pearson education

Lectures (48 hours). Each lecture presents both theoretical and implementation issues.
All the educational material is available in advance. The student is invited to be present in the classroom after having read the lesson material. The lesson will be carried out in such a way as to increase interaction, discussion and consequently learning.

The teacher receives by appointment, upon request by e-mail to The teacher responds only to e-mails signed and coming from the domain.