Politecnico di Torino | |||||||||||||||||
Anno Accademico 2012/13 | |||||||||||||||||
09CBIPC, 09CBIMQ Programmazione a oggetti |
|||||||||||||||||
Corso di Laurea in Ingegneria Del Cinema E Dei Mezzi Di Comunicazione - Torino Corso di Laurea in Matematica Per L'Ingegneria - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
Presentazione
Insegnamento obbligatorio per la Laurea Triennale in Ingegneria Del Cinema E Dei Mezzi Di Comunicazione. Ha come obbiettivo il completamento della preparazione dello studente a livello di capacita di programmazione con l’insegnamento delle tecniche avanzate di programmazione, in particolare del paradigma di programmazione a oggetti e di un linguaggio capace di supportarlo.
|
Risultati di apprendimento attesi
Conoscenze: tecniche avanzate di programmazione, in particolare algoritmi, strutture dati e gestione delle versioni; il paradigma di programmazione ad oggetti in termini di classi, oggetti, attributi, comportamenti, messaggi, ereditarietà e polimorfismo; il supporto a tali concetti fornito da un linguaggio di programmazione (Java)
Abilità: capacità di comprendere un problema di programmazione di piccola/media difficoltà (intorno a 10-20 classi), analizzarlo, e risolverlo con (1) la definizione (o scelta da librerie) di classi e relative funzioni e attributi, (2) la progettazione di dettaglio degli algoritmi in ogni funzione, (3) l’implementazione in linguaggio Java ed il collaudo di tutte le classi e funzioni, (4) la conoscenza operativa del linguaggio e del relativo ambiente di sviluppo ed esecuzione. |
Prerequisiti / Conoscenze pregresse
Costrutti base di programmazione (tipi, variabili e costanti, decisioni, cicli, procedura e passaggio parametri)
Algortimi (sorting, searching) e strutture dati (vettore, lista linkata, albero, grafo) |
Programma
Introduzione (0.5 crediti)
- La programmazione ad oggetti - Java come linguaggio di programmazione: codice sorgente e bytecode. - Compilatore, macchina virtuale, ambienti di sviluppo. Analisi di algoritmi (0.5 CFU) - analisi asintotica e complessità di caso peggiore - Algoritmi di ordinamento: ordinamenti quadratico (selection sort, insertion sort), lineare (counting sort) logaritmico (quicksort, heapsort, mergesort); Strutture dati statiche e dinamiche (1 CFU) - rappresentazione dei dati in memoria e gestione della memoria in runtime; - puntatori e riferimenti - allocazione di memoria statica, su stack, e dinamica; - strutture linkate; Gestione di progetti complessi (0.5 CFU) - modularità - gestione delle dipendenze - gestione delle versioni Programmazione a oggetti base(2.5 CFU) - Classi, attributi e funzioni di classe - Ovearloading - Oggetti, costruttori e parametri - Package - Visibilita Ereditarietà (1 CFU) - Ereditarietà, polimorfismo e dynamic binding - Classi astratte, interfacce Librerie e grafica (2 CFU) - Classi per l'input/output - Eccezioni - Collezioni - Grafica, swing |
Organizzazione dell'insegnamento
Le esercitazioni comprendono sia lo svolgimento di esercizi specifici di approfondimento delle parti teoriche sia lo sviluppo di alcuni progetti software.
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
IJames Gosling, Ken Arnold and David Holmes, The Java Programming Language, 4th Edition, Pearson
Bruce Eckel, Thinking in Java, 3rd edition, Prentice Hall Schede e materiale fornito dal docente |
Criteri, regole e procedure per l'esame
Scrittura di un programma Java, su personal computer, con uso di ambiente di sviluppo e librerie. Il voto viene dato in base alla qualità dell'elaborato misurata in termini di funzionalità correttamente implementate, scelte di progetto e stile di programmazione.
|
Orario delle lezioni |
Statistiche superamento esami |
|