Servizi per la didattica
PORTALE DELLA DIDATTICA

Programmazione a oggetti

09CBIOA, 09CBIMQ

A.A. 2020/21

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Informatica - Torino
Corso di Laurea in Matematica Per L'Ingegneria - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 62
Esercitazioni in aula 9
Esercitazioni in laboratorio 9
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Bruno Giorgio - Corso 2 Professore Associato ING-INF/05 42 0 0 0 19
Di Carlo Stefano - Corso 3 Professore Associato ING-INF/05 51 20 0 0 3
Torchiano Marco - Corso 1 Professore Associato ING-INF/05 47 9 0 0 7
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 F - Altre (art. 10, comma 1, lettera f) Abilità informatiche e telematiche
2020/21
Questo insegnamento intende completare la preparazione degli studenti nella programmazione presentando le tecniche di sviluppo del software basate sul paradigma a oggetti e il loro uso tramite il linguaggio Java.
This course goal is that of completing the skills of students in the area of coding by presenting the software development techniques based on the object oriented paradigm and their adoption with the Java programming language.
Lo studente alla fine dell¡¦insegnamento possiederà i concetti fondamentali dell¡¦ingegneria del software (ciclo di sviluppo, gestione delle configurazioni, test, progettazione) e della programmazione a oggetti (classi, oggetti, attributi, metodi, ereditarietà e interfacce), inoltre conoscerà in maniera approfondita le caratteristiche principali del linguaggio Java. Le abilità che saranno acquisite riguardano: la padronanza del linguaggio Java; la capacità di analizzare i requisiti di un sistema software di complessità ragionevole allo scopo di definire un idoneo progetto a oggetti; la capacità di implementare e collaudare le classi del progetto mediante un ambiente di sviluppo integrato (IDE).
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 degli algoritmi 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, Eclipse - Classi, attributi, metodi e costruttori, oggetti - Package e regole di visibilità - Stringhe, classi Wrapper - Array Ereditarietà e interfacce (2 crediti) - Ereditarietà - Classi astratte, interfacce - Interfacce funzionali, espressioni lambda - Eccezioni - Tipi generici Librerie standard (3.5 crediti) - Collezioni: set, liste, mappe - Stream - Gestione dei file - Date - Thread - Grafica, Swing, JavaFX Principi di Ingegneria del Software (1.5 crediti) - Ciclo di vita del software - Progettazione tramite linguaggio UML - Design Pattern - Gestione della configurazione - 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 alla parte in aula si svolgeranno delle esercitazioni in laboratorio che riguardano la soluzione di alcuni semplici casi di studio mediante la scrittura di programmi Java con l'ambiente Eclipse.
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
Modalità di esame: Prova scritta su carta con videosorveglianza dei docenti; Prova scritta tramite l'utilizzo di vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus). ;
L'esame si svolge utilizzando gli stessi strumenti software adottati durante le esercitazioni e consiste nella scrittura di un programma java che realizzi i requisiti forniti. Inoltre saranno proposte tre domante a scelta chiusa sugli aspetti teorici presentati durante il corso; le domande pesano per il 15% del voto finale. L'esame ha una durata di due ore durante le quali non è possibile utilizzare appunti o libri di testo. Il voto è assegnato in base alla qualità dell'elaborato misurata in termini di funzionalità correttamente implementate, della gravità delle carenze dell'elaborato consegnato e delle scelte di progetto effettuate. L'esame prioritariamente utilizzerà vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring, ma in caso di numero limitato di iscritti potrà adottare la video sorveglianza diretta dei docenti.
Exam: Paper-based written test with video surveillance of the teaching staff; Written test via vLAIB using the Exam platform and proctoring tools (Respondus).;
The exam will take place 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. The exam will adopt vLAIB and the university platform Exam integrated with proctoring tools, in case of small number of students a direct video surveillance by teachers will be used.
Modalità di esame: Test informatizzato in laboratorio; Prova scritta su carta con videosorveglianza dei docenti; Prova scritta tramite l'utilizzo di vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring (Respondus). ; Elaborato progettuale individuale;
L'esame si svolge utilizzando gli stessi strumenti software adottati durante le esercitazioni e consiste nella scrittura di un programma java che realizzi i requisiti forniti. Inoltre saranno proposte tre domante a scelta chiusa sugli aspetti teorici presentati durante il corso; le domande pesano per il 15% del voto finale. L'esame ha una durata di due ore durante le quali non è possibile utilizzare appunti o libri di testo. Il voto è assegnato in base alla qualità dell'elaborato misurata in termini di funzionalità correttamente implementate, della gravità delle carenze dell'elaborato consegnato e delle scelte di progetto effettuate. L'esame prioritariamente utilizzerà vLAIB e piattaforma di ateneo Exam integrata con strumenti di proctoring, ma in caso di numero limitato di iscritti potrà adottare la video sorveglianza diretta dei docenti.
Exam: Computer lab-based test; Paper-based written test with video surveillance of the teaching staff; Written test via vLAIB using the Exam platform and proctoring tools (Respondus).; Individual project;
The exam will take place 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. The exam will adopt vLAIB and the university platform Exam integrated with proctoring tools, in case of small number of students a direct video surveillance by teachers will be used.


© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
m@il