Programmazione Corso di Laurea Triennale in Informatica F004 A.A. 2013/14 SCV0019 Docente: Mauro Ferrari CFU SSD LEZIONI ESERCITAZIONI LABORATORIO ANNO LINGUA 12 INF/01 72 24 16 I Italiano Obiettivi dell’insegnamento e risultati di apprendimento attesi Questo corso fornisce un’introduzione alla programmazione dei calcolatori mediante il linguaggio Java. L'obiettivo primario è quello di fornire agli studenti le conoscenze necessarie alla comprensione e all’utilizzo del linguaggio Java e all’applicazione del linguaggio alla risoluzione di problemi. Il corso affianca quindi all'insegnamento teorico del linguaggio Java e delle sue strutture, esercitazioni e laboratori. Al termine di questo corso lo studente: conosce i principali elementi che caratterizzano un linguaggio di programmazione (sintassi, semantica, meccanismi implementativi); conosce le strutture di controllo, le strutture dati di base e le astrazioni principali fornite dal linguaggio Java e in generale dai linguaggi ad oggetti; applica il linguaggio per la risoluzione di semplici problemi sfruttando le potenzialità di un linguaggio di programmazione ad oggetti. Conoscenza e capacità di comprensione (k nowledge and under standing) Al termine del corso lo studente possiede le conoscenze necessarie per affrontare individualmente lo studio di un linguaggio di programmazione e per comprendere le problematiche relative allo sviluppo e all’applicazione dei linguaggi di programmazione. Capacità di applicare conoscenza e comprensione (applying k nowledge and understanding) Al termine del corso lo studente è in grado di applicare il linguaggio di programmazione alla risoluzione di semplici problemi individuando le astrazioni più adatte alla formalizzazione del problema in un linguaggio ad oggetti. Autonomia di giudizio Al termine del corso lo studente è in grado di individuare lo schema concettuale di risoluzione di un problema e di utilizzare il linguaggio di programmazione per l’organizzazione della sua soluzione. Abilità comunicative Al termine del corso lo studente è in grado di comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un linguaggio di programmazione e la struttura delle applicazioni realizzate. Prerequisiti Nessuno Contenuti e programma del corso Introduzione ai linguaggi di programmazione: astrazioni, algoritmi, sintassi, semantica e strumenti di sviluppo. lezioni ore 3; esercitazioni ore 0; laboratorio ore 0; Introduzione al linguaggio Java. Concetti di base, compilazione, esecuzione, struttura applicazioni. lezioni ore 3; esercitazioni ore 0; laboratorio ore 2; Tipi primitivi ed espressioni. lezioni ore 8; esercitazioni ore 2; laboratorio ore 0; Strutture di controllo. lezioni ore 8; esercitazioni ore 2; laboratorio ore 2; Array. lezioni ore 4; esercitazioni ore 2; laboratorio ore 2; Gerarchia dei tipi riferimento, cast e polimorfismo. lezioni ore 6; esercitazioni ore 2; laboratorio ore 2; Implementazione delle classi. lezioni ore 8; esercitazioni ore 3; laboratorio ore 2; Implementazione dell’ereditarietà. lezioni ore 8; esercitazioni ore 3; laboratorio ore 2; Interfacce. lezioni ore 2; esercitazioni ore 1; laboratorio ore 2; Variabili, scope e adombramento. lezioni ore 2; esercitazioni ore 1; laboratorio ore 0; Early- e late-binding in Java. lezioni ore 4; esercitazioni ore 2; laboratorio ore 0; Gestione della memoria: stack e heap. Metodi ricorsivi. lezioni ore 4; esercitazioni ore 2; laboratorio ore 2; Eccezioni. lezioni ore 6; esercitazioni ore 2; laboratorio ore 2; Implementazione dei tipi generici. lezioni ore 4; esercitazioni ore 2; laboratorio ore 0 Tipologia delle attività didattiche Lezioni frontali, 72 ore di lezioni teoriche: elementi fondamentali di un linguaggio di programmazione; strutture di controllo, astrazioni, compilazione ed esecuzione del linguaggio Java. Esercitazioni, 24 ore: esercizi sulle nozioni fondamentali del linguaggio di programmazione (tipi, espressioni, strutture di controllo); sviluppo di algoritmi e programmi Laboratorio, 16 ore: apprendimento degli strumenti di sviluppo; sviluppo guidato di applicazioni. Testi e materiale didattico Libro di testo M.Ferrari e G. Pighizzini. Dai Fondamenti agli oggetti, corso di programmazione Java. Terza edizione, Pearson Addison-Wesley, 2008. Testi consigliati (manuale di riferimento del linguaggio) K. Arnold, J. Gosling e D. Holmes. Il linguaggio Java. Manuale ufficiale. Quarta edizione, Addison Wesley, 2005. Altro materiale (disponibile sul sito di e-learning) Esercizi con soluzione. Temi d’esame svolti. Esempi di applicazioni. Modalità di verifica dell’apprendimento La modalità di verifica consiste in una prova scritta e in una prova orale. Durante il corso sono previste due prove parziali il cui superamento comporta l’esonero dalla prova scritta. Lo scopo della prova scritta (e delle prove parziali) è quello di verificare l’apprendimento e la comprensione degli elementi caratterizzanti il linguaggio di programmazione oggetto di studio e la capacità dello studente di applicare tale linguaggio alla risoluzione di semplici problemi. Le prove scritte (come le prove parziali) consistono di: esercizi per la verifica della comprensione e della conoscenza dei concetti fondamentali del linguaggio di programmazione (espressioni, strutture di controllo, strutture dati e astrazioni); esercizi per la verifica della capacità di individuare la soluzione di un problema e di organizzarne una soluzione tramite il linguaggio di programmazione. Lo scopo della prova orale è quello di verificare le capacità comunicative sviluppate dallo studente, in particolare l’acquisizione della terminologia tecnica necessaria alla comprensione e comunicazione di un linguaggio di programmazione e delle applicazioni in esso sviluppate. Il voto di entrambe le prove è espresso in trentesimi. Il voto finale è determinato dalla media fra il voto della prova orale e quella scritta. Orario di ricevimento Il ricevimento studenti si svolge su richiesta degli studenti.