PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

PORTALE DELLA DIDATTICA

Elenco notifiche



Programmazione a oggetti

09CBIYE, 09CBIOA

A.A. 2027/28

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Informatica - Torino

Organizzazione dell'insegnamento
Didattica Ore
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05
ING-INF/05
3
5
F - Altre attività (art. 10)
B - Caratterizzanti
Abilità informatiche e telematiche
Ingegneria informatica
2025/26
Questo insegnamento intende completare la preparazione degli studenti nello sviluppo del software presentando le tecniche basate sul paradigma a oggetti e il loro uso tramite il linguaggio Java. Inoltre fornisce i concetti fondamentali sul ciclo di vita del software e introduce i relativi strumenti per la sua gestione, in particolare la gestione delle versioni.
The goal of this course is completing the skills of students in the area of software development by presenting the techniques based on the object oriented paradigm and their adoption with the Java programming language. Moreover it provides the fundamental software development life-cycle concepts and introduces the relative tools for its management, in particular version management.
Lo studente alla fine dell'insegnamento possedere concetti fondamentali dell'ingegneria del software (ciclo di sviluppo, gestione delle versioni, test, progettazione) e della programmazione a oggetti (classi, oggetti, attributi, metodi, ereditarietà interfacce), inoltre conoscerà in maniera approfondita le caratteristiche principali del linguaggio Java e le sue principali librerie standard. Le abilità che saranno acquisite riguardano: la padronanza del linguaggio Java; la capacità analizzare i requisiti di un sistema software di complessità ragionevole, allo scopo di definire un idoneo progetto orientato agli oggetti; la capacità di implementare e collaudare le classi del progetto mediante un ambiente di sviluppo integrato (IDE) utilizzando il sistema di controllo delle versioni Git.
The student at the end of the course will know the fundamental concepts of software engineering (software life cycle, configuration management, test, design) and of object oriented programming (classes, objects, attributes, methods, inheritance, interfaces), in addition she will know in detail the main features of the Java programming language. The acquired abilities will concern: the familiarity with the Java language, the capability of analyzing the requirements of a small-sized software system in order to deliver the relative design, the ability to implement and test the classes in the design using an integrated development environment (IDE).
I prerequisiti riguardano i costrutti di base della programmazione (tipi e strutture dei dati, istruzioni di controllo, sotto-programmi e chiamate di sotto-programmi), la soluzione di problemi semplici mediante la scrittura di algoritmi, la conoscenza delle principali strutture dati (liste, grafi, alberi, tabelle di hash) e la conoscenza di principali algoritmi, in particolare di sorting e searching.
The knowledge of basic programming constructs (types and data structures, control statements, functions and function calls) and of sorting and searching algorithms is a prerequisite.
Caratteristiche di base (1 credito) - Programmazione a oggetti, Java, IDE - Classi, attributi, metodi e costruttori, oggetti - Package e regole di visibilità - Stringhe, classi Wrapper - Array Ereditarietà interfacce (2 crediti) - Ereditarietà - Classi astratte, interfacce - Interfacce funzionali, espressioni lambda - Eccezioni - Tipi generici Librerie standard (3.5 crediti) - Framework JUnit - Collezioni: set, liste, mappe - Stream API - Gestione dell'Input/Output - Date - Object-Relational Mapping (ORM) Principi di Ingegneria del Software (1.5 crediti) - Ciclo di vita del software - Progettazione tramite linguaggio UML - Design Pattern - Gestione delle versioni - Testing
Basic features (1 credit) • Object-oriented programming, java, eclipse • Classes, attributes, methods and constructors, objects • Packages and visibility rules • Strings, wrapper classes • Arrays Inheritance and interfaces (2 credits) • Inheritance • Abstract classes, interfaces • Functional interfaces, lambda expressions • Exceptions • Generic types Standard libraries (3.5 credits) • Collections: sets, lists, maps • Streams • Files • Dates • Threads • Graphical interfaces, Swing, JavaFX Software Engineering principles (1.5 credits) - Software life cycle - Design using UML - Design Patterns - Configuration management - Testing
L'insegnamento prevede una serie di lezioni in aula per la presentazione degli aspetti relativi all'ingegneria del software e del linguaggio Java. Inoltre in aula si terranno delle esercitazioni mirate a illustrare e discutere soluzioni esemplari. In aggiunta si svolgeranno delle esercitazioni in laboratorio che riguarderanno alcuni semplici casi di studio da affrontare tramite mediante la scrittura di programmi Java con l'ausilio di un ambiente integrato di sviluppo (IDE) e del sistema di gestione delle versioni Git.
The course will consists of a set of classroom traditional lectures to present the topics of software engineering and Java language. Moreover there will be classroom exercises to present and discuss exemplary programs. In addition to the classroom part, there will be lab exercises with assignments focusing on the development of simple case studies by means of the Java programming language and the Eclipse development environment.
Sul portale della didattica sono disponibili le slides fornite dai docenti e le informazioni sui laboratori. I principali testi approfondimento consigliati sono: - Arnold, Gosling, Holmes. "The Java Programming Language" 4th edition, Addison-Wesley, 2006 - R. Urma, M. Fusco, A. Mycroft. "Java 8 in Action: Lambdas, streams, and functional-style programming." Manning, 2015. - M.Fowler, K. Scott, UML Distilled, 3rd ed. Addison-Wesley, 2003. - Bruegge, Dutoit. Object-Oriented Software Engineering Using UML, Patterns, and Java. Pearson, 2009 All'inizio del corso potranno essere indicati anche altri testi.
The portal will contain the slides provided by the teachers and the information concerning the labs. The main additional suggested readings are: Arnold, Gosling, Holmes. "The Java Programming Language ¡V 4th edition", Addison-Wesley, 2006 - R. Urma, M. Fusco, A. Mycroft. "Java 8 in Action: Lambdas, streams, and functional-style programming." Manning, 2015. - M.Fowler, K. Scott, UML Distilled, 3rd ed. Addison-Wesley, 2003. - Bruegge, Dutoit. Object-Oriented Software Engineering Using UML, Patterns, and Java. Pearson, 2009 New textbooks could be suggested at the beginning of the course
Slides; Esercitazioni di laboratorio; Esercitazioni di laboratorio risolte; Video lezioni dell’anno corrente; Video lezioni tratte da anni precedenti;
Lecture slides; Lab exercises; Lab exercises with solutions; Video lectures (current year); Video lectures (previous years);
E' possibile sostenere l’esame in anticipo rispetto all’acquisizione della frequenza
You can take this exam before attending the course
Modalità di esame: Elaborato progettuale in gruppo; Prova scritta in aula tramite PC con l'utilizzo della piattaforma di ateneo;
Exam: Group project; Computer-based written test in class using POLITO platform;
... Gli esercizi di laboratorio sono valutati in base al raggiungimento di una soglia minima di funzionalità realizzate. La verifica avviene in corrispondenza della prenotazione per un appello d’esame e il risultato viene comunicato prima dell’esame stesso. Tale verifica è mirata a verificare la capacità di utilizzo degli strumenti di base (IDE e Git) oltre alla conoscenza delle nozioni elementari di programmazione orientata agli oggetti. Questa parte pesa per il 30% sul voto finale. Sono previste due modalità i valutazione attraverso un progetto che può essere di gruppo o individuale. La parte progettuale viene valutata in base alla qualità dell'elaborato misurata in termini di funzionalità correttamente implementate, della gravità delle carenze dell'elaborato consegnato. delle scelte di progetto effettuate e dell'aderenza al processo di sviluppo raccomandato. Questa parte pesa per il 45% sul voto finale. **Progetto di gruppo** Il progetto di gruppo viene svolto nelle ultime settimane del semestre e prevede l'adozione di un processo di sviluppo basato su Git, l'obiettivo è di valutare la capacità i analizzare un problema, progettare una soluzione e realizzarla tramite il linguaggio Java e gli strumenti base. all'interno di progetto software di piccole dimensioni. La valutazione viene completata con un esame scritto al calcolatore che ha come obiettivo verificare l'acquisizione delle conoscenze relative agli argomenti trattati durante il corso. L'esame ha una durata di 30 minuti durante le quali non è possibile utilizzare appunti o libri di testo. **Progetto individuale** Il progetto individuale viene svolto durante l'esame in aula ed ha come obiettivo verificare la capacità i analizzare un problema, progettare una soluzione e realizzarla tramite il linguaggio Java e gli strumenti base. La valutazione viene completata con un esame scritto al calcolatore che ha come obiettivo verificare l'acquisizione delle conoscenze relative agli argomenti trattati durante il corso. L'esame ha una durata di due ore durante le quali non possibile utilizzare appunti o libri di testo. La verifica delle conoscenze si basa su domande a scelta chiusa sugli aspetti teorici presentati durante le lezioni. Questa parte pesa per circa il 15% del voto finale.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Group project; Computer-based written test in class using POLITO platform;
The exam will take place in the computer lab using the same tools used during the lab assignments, it will consists in the development of a Java program that implement a set of given requirements. In addition the student will be presented with three of four closed answer questions concerning theory not applied in the programming part. The question will weight 15% of the final grade. The exam lasts two hours, the use of notes and books is not allowed. The grading will be based on the quality of the delivered program in terms of correctly implemented functions, the severity of the missing features and the design decisions adopted.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.
Esporta Word