Programming 2

A.Y. 2026/2027
6
Max ECTS
60
Overall hours
SSD
INFO-01/A
Language
Italian
Learning objectives
The topic of this course is Object-Oriented Programming through the use of the Java programming language; we aim at presenting the methods and techniques of object-oriented programming and of the specific language adopted, giving an overview of its base syntax.
Expected learning outcomes
Ability of writing programs in the OOP paradigm.
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Responsible
Lesson period
First semester
Course syllabus
We present the main notions about object-oriented programming, focusing on Java language. More specifically, the following topics will be covered:
- Introduction to the Java programming language, the Java Virtual Machine (JVM), an introduction to Object-Oriented Programming (OOP), protocols, and contracts.
- Review of control structures and primitive data types.
- The Java class hierarchy. Overloading and overriding. Interfaces. Generic classes. The type hierarchy and the concept of subtyping. Use of wildcards in type definitions (existential types).
- Representation and use of collections (in particular, the List, Set, and Map interfaces).
- Implementation and extension of classes. Definition and use of comparators.
- Definition and use of exceptions.
Prerequisites for admission
Basic notions about imperative programming (Programmazione 1)
Teaching methods
Class and laboratory lessons.
Teaching Resources
G. Pighizzini, M. Ferrari: Dai fondamenti agli oggetti. Corso di programmazione JAVA, Addison-Wesley, Pearson Education Italia.
Assessment methods and Criteria
Java project to implement in a laboratory followed by an oral discussion.
INFO-01/A - Informatics - University credits: 6
Laboratories: 24 hours
Lessons: 36 hours
Professor: Fiorentini Camillo