Servizi per la didattica
PORTALE DELLA DIDATTICA

Programmazione a oggetti

09CBIPL

A.A. 2019/20

Lingua dell'insegnamento

Italiano

Corsi di studio

Corso di Laurea in Ingegneria Gestionale - Torino

Organizzazione dell'insegnamento
Didattica Ore
Lezioni 50
Esercitazioni in aula 15
Esercitazioni in laboratorio 15
Docenti
Docente Qualifica Settore h.Lez h.Es h.Lab h.Tut Anni incarico
Lamberti Fabrizio Professore Associato ING-INF/05 50 6 11 0 8
Collaboratori
Espandi

Didattica
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 B - Caratterizzanti Ingegneria informatica
2019/20
L'insegnamento presenta una breve introduzione alle problematiche della produzione del software (ciclo di vita, attributi di qualità del software, ecc.) ed approfondisce il paradigma di produzione del software orientato agli oggetti, esemplificato dal linguaggio Java. Java è oggi il punto di snodo per la produzione di applicazioni distribuite su piattaforme eterogenee.
The course provides a brief introduction to the aspects pertaining software production (life cycle, quality attributes, etc.) and specifically investigates the object-oriented programming paradigm using the Java language. Java is today considered as the cornerstone for the production of distributed applications running on heterogeneous platforms.
Le conoscenze trasmesse riguardano i concetti fondamentali della programmazione a oggetti (classi, oggetti, attributi, metodi, ereditarietà e interfacce) e 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 problema software di complessità ragionevole allo scopo di definire un idoneo progetto orientato agli oggetti e la capacità di implementare e collaudare le classi del progetto mediante l'ambiente di sviluppo Eclipse.
Students will learn the core notions of object-oriented programming (classes, objects, attributes, methods, inheritance, and interfaces) as well as the main characteristics of the Java language. The skills to be acquired encompass the mastery of the Java language, the ability to analyze software requirements in order to produce a suitable object-oriented design, and the ability to implement and test Java classes by using the Eclipse development environment and related tools.
I prerequisiti riguardano i costrutti di base della programmazione (tipi e strutture dei dati, istruzioni di controllo, sotto-programmi e chiamate di sotto-programmi) e la soluzione di problemi semplici mediante la scrittura di algoritmi (ad esempio in linguaggio C).
The knowledge of core programming constructs (types and data structures, control statements, functions and function calls) and the ability to develop basic algorithms to solve simple problems (e.g., using the C programming language).
- Produzione del software, criticità, processi e strumenti (1,5 ore) - Programmazione a oggetti, information hiding, encapsulation ed altri concetti chiave (1,5 ore) - Linguaggio Java, Java Virtual Machine, bytecode (1,5 ore) - Ambienti: SDK ed Eclipse (1,5 ore) - Java, concetti base: tipi, istruzioni di controllo, ecc., confronto con altri linguaggi (10,5 ore) - Classi: dichiarazione, uso, private, public (5 ore) - Gestione della memoria (4,5 ore) - Package: dichiarazione ed uso (1,5 ore) - Ereditarietà, interfacce e polimorfismo (7,5 ore) - Collezioni: List, Map (9 ore) - Eccezioni: throw, throws, catch (1,5 ore) - Input/Output (3 ore) - Test e JUnit (1,5 ore)
- Software production, processes (build and fix, waterfall, prototyping), tools and risks (1,5 hours) - Object orientation, information hiding, encapsulation and other key concepts (1,5 hours) - The Java programming language, Java Virtual Machine, bytecode (1,5 hours) - Tools: SDK and Eclipse (1,5 hours) - Java basics: types, control statements, etc., comparison with other languages (10,5 hours) - Classes: definition, new, private, public (5 hours) - Memory management (4,5 hours) - Packages: declaration and use (1,5 hours) - Inheritance, interfaces and polymorphism (7,5 hours) - Collections: List, Map (9 hours) - Exceptions: throw, throws, catch (1,5 hours) - Input/Output (3 hours) - Testing and JUnit (1,5 hours)
L'insegnamento prevede 50 ore di lezione in aula, 15 ore di esercitazione in aula e 30 ore di esercitazione laboratorio. In ciascuna esercitazione di laboratorio, organizzata generalmente su 2 settimane (1,5 ore a settimana per squadra), verranno approfonditi aspetti specifici del linguaggio Java mediante esercizi da svolgere calcolatore (per i quali verrà successivamente pubblicata, e presentata nelle ore di esercitazione in aula, la soluzione). Le esercitazioni, completate eventualmente a casa e valutate secondo le procedure ed i criteri d’esame, possono assegnare ulteriori 2 punti che concorrono a determinare il voto finale (solo in caso di esame sufficiente).
The courses comprises 50 hours devoted lessons in class, 15 hours devoted to exercise sessions in class and 30 hours devoted to exercise sessions in the laboratory. During sessions in the laboratory, each organized usually over 2 weeks and aligned with in-class activities, specific aspects of the Java language will be analyzed by means of exercises to be developed at the PC. Solutions to the exercises will be later published online and presented to students during exercise sessions in class. By completing the exercises (possibly at home), students will get up to 2 additional points that will concur to the determination of the final grade (only in case of positive grade for the exam).
In aggiunta al materiale utilizzato dal docente in aula ed in laboratorio (lucidi, dispense, progetti Java, ecc.), reso disponibile in formato elettronico tramite il Portale della Didattica, potrà essere utile consultare i seguenti testi per approfondire determinati aspetti dell'insegnamento: - Horstmann, C., Cornell G., "Core Java, Volume I: Fundamentals", 9th Edition, Pearson, 2013. - Eckel, B., "Thinking in Java", 4th Edition, Pearson, 2006 (versione elettronica: http://www.bruceeckel.com/).
In addition to the material used by the teacher in the classroom and in the laboratory (slides, handouts, Java projects, etc.), which is made available on the Portale della Didattica, it might be helpful to consider the following books, which could provide further insight in several topics of the course: - Horstmann, C., Cornell G., "Core Java, Volume I: Fundamentals", 9th Edition, Pearson, 2013. - Eckel, B., "Thinking in Java", 4th Edition, Pearson, 2006 (electronic version: http://www.bruceeckel.com/).
Modalità di esame: prova di laboratorio;
L’esame, della durata indicativa di 2 ore, si svolge al calcolatore in laboratorio e consiste nella scrittura di un programma in linguaggio Java che realizzi i requisiti forniti a partire da un progetto embrionale fornito dal docente. Il progetto richiede allo studente di mettere in pratica i diversi concetti della programmazione ad oggetti trattati nell'insegnamento (utilizzo della classi fornite, definizione di nuove classi, creazione di oggetti, accesso ad attributi e metodi, applicazione dell'ereditarietà ed uso delle interfacce, creazione di collezioni, gestione delle eccezioni ed input/output). Il voto è assegnato in base alla bontà dell'elaborato consegnato misurata in termini di funzionalità correttamente implementate. Durante l’esame è possibile utilizzare tutto il materiale reso disponibile dal docente come pure libri di testo ed appunti in formato cartaceo o digitale (purché caricato sul calcolatore prima dell’inizio dell’esame). L’accesso ad Internet dal calcolatore è disabilitato.
Exam: practical lab skills test;
The exam, whose duration is approximately 2 hours, takes place on a PC at the laboratory, and consists in writing a Java program based on the requirements provided starting from an embryonal project provided by the teacher. The project requires the student to apply the various concepts of object-oriented programming tackled in the course (use of classes provided, definition of new classes, object creation, access to attributes and methods, application of inheritance principles and use of interfaces, setup of collections, exception handling and input/output). The grade is assigned by considering the number of requirements correctly implemented. During the exam it is possible to consult all the material made available by the teacher as well as books and notes both in paper and digital format (digital contents have to be uploaded on the PC before the exam starts). Internet access is disabled.


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