Skip to main content
CODE 108694
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
MODULES Questo insegnamento è un modulo di:
TEACHING MATERIALS AULAWEB

AIMS AND CONTENT

LEARNING OUTCOMES

The Course provides a theoretical foundation for the design of Software systems following the Object-Oriented Programming paradigm. At the same time, the classes aim to provide practical competences to make up OOP software architecture implemented by using the C++ language. The learning outcome therefore consists in the ability to design and implement a framework of classes (in the C++ language context) in a professional fashion.

AIMS AND LEARNING OUTCOMES

The Course aims to provide the student with knowledge about the theory and practice of the design of Object-Oriented Programming based software systems. This goal is matched by the objective to enhance practical competences about the realization of Object Oriented architectures by using the C++ language.

By actively and contnuously attending classes, the student will be able to:

- understand the cultural basis that underlie Object-Oriented programming 

- know the syntax and conceptual set-up of the C++ language

- understand the syntax and overall schema of an OOP SW based on the C++ language

- recognize and analyze software environments and frameworks based on the C++ language  

- design and implement softare frameworks based on the C++ language

The main learning outcomes consist in:

- a correct grasp of the Object Oriented Programming paradigm

- the ability to design autonomously software frameworks in C++ including classes and polymorphism

- the ability to implement frameworks and complex classes in C++ adhering to design requirements

TEACHING METHODS

Classes include both theoretical and practical sessions. Theory is often illustrated through the analysis, execution and debug of teaching contents on the teacher's PC directly. The achievement of the learning goals can be verified progressively by menas of those experimental sessions, which the student can replicate and modify autonomously, to reformulate ina personal fashion the acquired  the concepts that have been presented and demonstrated.

The concluding part of the Course envisions practical sessions on the PC pf each student (possibly groups of students).

Teaching material - including sw portions - is shared via the AulaWeb or Teams platforms. Students can interact with the teacher directly during classes or via the Teams platform.

Class attendance is highly recommended, as lessons include examples of project developments and interdisciplinary considerations that are hardly found in reference textbooks

SYLLABUS/CONTENT

  • Introduction
  • Foundations of Object-Oriented Programming, differences with respect to the C language
  • Concepts and Classes
  • Class implementation and basic features
  • Operator Overloading 
  • Class hierarchies
  • Polymorphism and virtual classes/functions
  • Templates and exception handling

This teaching deals with topics of scientific-technology interest, including the progress of electronics and embedded systems in the support of Society and People, and contributes to the achievement of the following Objectives of the UN SDGs 2030: 

Goal 3. Good health and well-being (embedded systems play a crucial role in the area of health and personal care)

Goal 4. Quality education (the dissemination of technology skills raises the overall cultural level of modern Society)

Goal 5. Gender equality (this Course promotes a general, uniform dissemination of technological competences, in the firm belief that electronic subjects can/should have a pervasive nature irrespctively of age, gender and any other discriminating factor)

RECOMMENDED READING/BIBLIOGRAPHY

Material handed during classes

Any textbook introducing C++ is fine, such as 

H. Schildt, "Guida al linguaggio C++", McGraw Hill, 1996

Very good texts (albeit not required) the books by Bruce Eckel "Thinking in C++"

Students with learning disabilities (DSA) will be allowed to use specific modes and tools, that will be established on a case-by-case basis with the official representative of Engineering Courses within the Committee for the inclusion of students with disabilities (please check Section "Further Information").

TEACHERS AND EXAM BOARD

Exam Board

RODOLFO ZUNINO (President)

CHRISTIAN GIANOGLIO

EDOARDO RAGUSA

PAOLO GASTALDO (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam has a two-fold organization:

a) multiple-answers tests, aiming to verify the correctness and completeness of the concepts and competences acquired during classes (scores in the range 0-30 lode);

b) assessement in the development of a Project Work (from 0 up to 4 points to be added to the scored attained as per item a)

Successful scores do not expire, unless the student decides spontaneously to iterate the exam.

ASSESSMENT METHODS

Students may assess their learning outcomes progressively during the whole Course, thanks to the sequence of practical hands-on sessions in which they can experiment the theoretical concepts acquired, and reformulate them in a personal fashion.

The final exam consists in a formal and conclusive verification of the theoretical foundation and practical competence acquired during classes. The validation of competences is certified in a progressive fashion through a selective evaluation of exam replies:
- a group of baseline questions aims to verify the minimal contents required to pass the exam (18-22), especially dealing with the syntax and main features of a C++ framework;
- a group of reference tests aims to validate the expected average of competence and notions (23-28), mostly focusing on the the typical constructs of C++ frameworks, with standard professional features;
- a group of challenging questions highlights the acquisition of original and high-level skills (29-30Lode), concerning the comprehension and personal reformulation of the crucial software design methods, and the advanced features of C++ operation

The overall test set evaluates the knowlegde of the C++ language, the ability to understand and analyze SW frameworks according to the Object-Oriented Paradigm, and the acccuracy in the reformulation of the acquired concepts, by means of selective tests requiring a personal line of reasoning.

Exam schedule

Data appello Orario Luogo Degree type Note
09/01/2025 10:30 GENOVA Scritto
12/02/2025 10:30 GENOVA Scritto
05/06/2025 10:30 GENOVA Scritto Aula G2B, ore 10:30
03/07/2025 10:30 GENOVA Scritto
04/09/2025 10:30 GENOVA Scritto

FURTHER INFORMATION

Students having physical or learning disabilities can apply for compensation/exemption measures about the exam. Modalities shall be defined on a per-case basis, in conjunction with the Contact Person for Engineering in the Atheneum Committee for the support to disabled or impaired students. Interested students are invited to contact the Course Teacher in due time, by informing at the same time the Contact Person for Engineering (https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita.html), without forwarding documents or certificates related to the personal impaireness.