- Area di Scienze
- Corso di Laurea Triennale
- Informatica [E3102Q - E3101Q]
- Insegnamenti
- A.A. 2025-2026
- 1° anno
- Programmazione 2
- Introduzione
Syllabus del corso
Obiettivi
l corso ha i seguenti obiettivi specifici:
- Conoscenza e capacità di comprensione (DdD 1): Acquisire una solida comprensione dei principi della programmazione orientata agli oggetti e della loro declinazione nel linguaggio Java.
- Conoscenza e capacità di comprensione applicate (DdD 2): Essere in grado di sviluppare programmi in Java utilizzando correttamente i principi della programmazione a oggetti ed applicando buone pratiche di programmazione e test del software.
Contenuti sintetici
Programmazione a oggetti in Java con utilizzo di alcune librerie. Ambiente di sviluppo Eclipse. Testing e debugging con Junit.
Programma esteso
1) Introduzione
- introduzione alla Java Virtual Machine (JVM) e al ciclo di vita di un programma Java.
- mappatura dei costrutti procedurali del C (tipi, variabili, strutture di controllo, funzioni) nel linguaggio Java.
- uso dell’interfaccia a riga di comando per la compilazione ed esecuzione di programmi Java.
2) Concetti di base della programmazione ad oggetti
- analisi, progettazione e programmazione
- astrazioni: classificazioni, generalizzazioni, aggregazioni
- Object-Oriented Programming
3) Definizione di classi e creazione di oggetti in Java
- dal diagramma delle classi alle classi in Java
- gestione della memoria e concetto di reference
- associazioni 1 a 1
- associazioni 1 a n
4) Metodi
- metodi di istanza
- overloading
- passaggio parametri di tipo reference
- metodi di classe
5) Information hiding e incapsulamento
- getodi get e set
- visibilità
- costruttori
6) Eclipse, Junit e Debug
7) Ereditarietà
-concetti di base
- overriding
- costruttori nelle classi derivate
- polimorfismo
- classi astratte e interfacce
8) Eccezioni
- gestione delle eccezioni
- definizione di classi di eccezioni
9) Alcune librerie standard
- I/O
- collection framework
10) Concetti avanzati
- Cenni sui generici
- Cenni sui lambda expression
- Cenni sugli stream
Prerequisiti
Programmazione imperativa (vedi Programmazione 1)
Modalità didattica
Lezioni ed esercitazioni in aula. Attività di laboratorio in e-learning mediante esercizi, test di autovalutazione e tutoraggio on-line.
Le lezioni in classe prevedono una modalità erogative e interattiva. Le attività di studio in piattaforma prevedono anche essere la modalità erogative e interattiva.
Il corso sarà erogato in italiano.
Materiale didattico
Programmazione di base e avanzata con Java - terza edizione, Walter Savitch e Daniela Micucci, Edizione in Italiano, ISBN 9788891916020, Pearson, 2024
Periodo di erogazione dell'insegnamento
Secondo semestre.
Modalità di verifica del profitto e valutazione
La verifica dell'apprendimento comprende una prova scritta che si articola in due parti:
- prima parte mira a valutare le conoscenze teoriche. La prova consiste nella somministrazione di un insieme di domande a risposta chiusa.
- seconda parte mira a valutare le conoscenze pratiche. La prova consiste nella implementazione in Java di un programma di cui sono fornite le specifiche attraverso un diagramma delle classi UML.
Criteri di valutazione utilizzati: correttezza delle risposte fornite nella prima parte; qualità della soluzione e assenza di ridondanza nella seconda parte.
Durante lo svolgimento del corso si svolgeranno due compitini che saranno erogati sempre attraverso una prova scritta organizzata come descritto sopra. Il superamento di entrambi i comptini, permette il superamento dell'esame. I criteri di valutazione sono gli stessi della verifica complessiva.
Orario di ricevimento
Concordato via e-mail.
Aims
The course has the following specific learning objectives:
- Knowledge and understanding (DdD 1): Acquire a solid understanding of the principles of object-oriented programming and how they are implemented in the Java language.
- Applying knowledge and understanding (DdD 2): Be able to develop Java programs by correctly applying object-oriented principles and adopting good programming and software testing practices.
Contents
Object-oriented programming using Java. Usage of some Java libraries. Eclipse as IDE. Testing and debugging exploiting JUnit.
Detailed program
1) Introduction
- introduction to the Java Virtual Machine (JVM) and the lifecycle of a Java program.
- mapping of procedural constructs from C (types, variables, control structures, functions) to the Java language.
- use of the command-line interface for compiling and running Java programs.
2) Basic concepts related to object-oriented programming:
- analysis, design, and programming
- abstractions: classification, generalization, aggregation
- Object-Oriented Programming
3) Class definition and objects instantiation:
- from the class diagram to Java classes
- memory management and references
- 1 to 1 associations
- 1 to many associations
- lists
4) Methods:
- instance methods
- overloading
- parameters of type class
- class method
5) Information hiding e encapsulation
- get e set methods
- visibility
- constructors
6) Eclipse, Junit, and Debug
7) Inheritance
- basic concepts
- overriding
- costructors in derived classes
- polymorphism
- abstract classes and interfaces
8) Exceptions
- exception handling
- definition of exception classes
9) Examples of standard libraries:
- I/O
- collection framework
10) Advanced concepts
- introduction to generics
- introduction to lambda expressions
- introduction to streams
Prerequisites
Imperative programming (see Programming 1)
Teaching form
Lectures and recitations. Practice labs via e-learning, with tutor support and auxiliary leaning material (exercises, self-test questions).
The in-class lectures follow the "modalità erogativa" and "modalità interattiva" modes. The activities performed on the elearning platform also follow both modes.
The course will be given in Italian.
Textbook and teaching resource
Programmazione di base e avanzata con Java - terza edizione, Walter Savitch e Daniela Micucci, Edizione in Italiano, ISBN 9788891916020, Pearson, 2024
Semester
Second semester.
Assessment method
The assessment of the exam consists of a written test, which is divided into two parts:
- The first part aims to assess theoretical knowledge. The test consists of a set of closed-answer questions.
- The second part aims to assess practical skills. The test consists in the implementation of a Java program whose specification is provided as a UML class diagram.
Evaluation criteria used: correctness of the answers given in the first part; quality of the solution and absence of redundancy in the second part.
During the course, two intermediate tests will be provided. These tests are written exams organized as described above. The passing of both intermediate tests allows the passing of the exam. The evaluation criteria are the same as for the overall verification.
Office hours
Contact by e-mail.
Scheda del corso
Staff
-
Giovanni Denaro
-
Leonardo Mariani
-
Daniela Micucci