28006 - FONDAMENTI DI INFORMATICA T-2

Scheda insegnamento

  • Docente Enrico Denti

  • Moduli Enrico Denti (Modulo 1)
    Roberta Calegari (Modulo 2)
    Ambra Molesini (Modulo 3)

  • Crediti formativi 12

  • SSD ING-INF/05

  • Modalità didattica Convenzionale - Lezioni in presenza (Modulo 1)
    Convenzionale - Lezioni in presenza (Modulo 2)
    Convenzionale - Lezioni in presenza (Modulo 3)

  • Lingua di insegnamento Italiano

Anno Accademico 2019/2020

Conoscenze e abilità da conseguire

Conoscenza di base sulle metodologie e sugli strumenti di analisi, specifica e progetto di programmi secondo il paradigma della programmazione ad oggetti.

Programma/Contenuti

Concetti fondamentali dei linguaggi di programmazione. Famiglie di linguaggi imperativi, funzionali, logici e a oggetti. Introduzione alla progettazione del software: componenti software, tipi di dato astratto (5h).

Concetti, metodologie e linguaggi. Introduzione alla programmazione ad oggetti e al linguaggio Java: componenti software in Java, classi e istanze, meccanismi di costruzione-distruzione di istanze. Oggetti composti, ereditarietà, polimorfismo e genericità. Classi astratte, interfacce: il ruolo delle interfacce nel progetto e loro relazione con le classi. (30h frontale + 12h lab)

Ereditarietà semplice e multipla fra interfacce. Lambda expression e interfacce funzionali. (12h + 6h lab)

Il concetto di eccezione. Stream di I/O. Principali strutture dati: liste, hashmap, alberi. Algoritmi su tali strutture dati e loro implementazione sia in forma procedurale sia in forma orientata agli oggetti in Java. (20h + 12h lab)

Introduzione agli Stream di operazioni (3h)

Elementi di base per la costruzione di interfacce grafiche: concetto di evento e programmazione event-driven, la piattaforma JavaFX. (10h+10h lab)

Testi/Bibliografia

Si veda l'elenco aggiornato disponibile on-line sul portale didattico curato dal docente.

Metodi didattici

Il corso viene erogato mediante proiezione diretta dal computer del docente, in aula, di diapositive (scaricabili dallo studente dal sistema Insegnamenti On Line), in modo da evitare allo studente l'ansia di dover trascrivere tutto ciò che viene mostrato, permettendogli di concentrarsi sui contenuti esposti.

Lezioni ed esercitazioni sono continuamente intercalate, alternando l'esposizione di un concetto o costrutto linguistico con i relativi esempi, di cui viene immediatamente mostrato l'uso effettivo in diretta.

Questo modulo, di taglio più teorico, è strettamente integrato con il modulo di laboratorio: ogni esercitazione pratica affronta uno specifico argomento (tipicamente quello spiegato nella settimana precedente), mediante la proposta di esercizi e casi di studio il più possibile concreti, per la cui soluzione è necessario mettere a frutto quanto acquisito.

Modalità di verifica dell'apprendimento

La verifica dell'apprendimento si svolge sia in forma di autovalutazione dello studente, tramite le esercitazioni sistematicamente proposte in laboratorio durante il corso, sia al termine, sotto forma di prova d'esame.

La prova d'esame è integrata con quella del modulo di laboratorio svolto in parallelo e consiste in una prova pratica svolta in laboratorio, così da potersi avvalere degli strumenti su esso disponibili nonché di testi, dispense e manuali, che lo studente potrà liberamente portare con sé. Coerentemente con l'obiettivo della prova, che è simulare 'nel piccolo' una sessione di lavoro di un ingegnere professionista di fronte a un problema concreto da risolvere in un tempo assegnato e non già costituire un mero esercizio di memoria, la prova consiste nella risoluzione di un problema applicativo di media complessità: il programma consegnato deve essere compilabile (diversamente, non sarà neppure valutato, con conseguente esito negativo dell'esame) e ragionevolmente funzionante.

L'esito positivo (almeno 18/30) della prova pratica di laboratorio è di norma verbalizzabile: la Commissione si riserva comunque di effettuare una prova orale ogni qual volta lo ritenga necessario. In tal caso, l'orale consiste principalmente - ma non esclusivamente - nella discussione della prova di laboratorio e in domande tese ad appurare la competenza dello studente nelle aree che abbiano evidenziato le maggiori lacune.

Lo studente può comunque chiedere di affrontare una prova orale facoltativa: in tal caso, l'orale verte sull'intero programma del corso e il voto ottenuto è comunque verbalizzato.

La richiesta di orale dev'essere fatta al docente entro un mese dalla prova di laboratorio: il corrispondente orale dovrà essere sostenuto entro quattro mesi dalla data della prova originale. Nel calcolo dei suddetti periodi non si computano i periodi festivi (Natale, Pasqua, agosto).

Strumenti a supporto della didattica

Sono disponibili sul sito Insegnamenti On Line copia delle diapositive proiettate e discusse a lezione a cura del docente, nonché alcune dispense integrative, annunci e forum di discussione.

Un elenco esaustivo di testi di riferimento e manuali è consultabile sia sul sito Web, sia sulle diapositive, ed è spesso aggiornato.

Il sito del corso, sul portale didattico del docente, fornisce inoltre suggerimenti per ulteriori esercizi e approfondimenti.

I principali strumenti per la parte pratica sono il JDK (Java Development Kit) ed Eclipse, nella versione "IDE for Java developers"; altri strumenti di uso più raro sono Visual Studio (per alcune prove in C#), Visio, SceneBuilder.

Link ad altre eventuali informazioni

http://enricodenti.disi.unibo.it/

Orario di ricevimento

Consulta il sito web di Enrico Denti

Consulta il sito web di Roberta Calegari

Consulta il sito web di Ambra Molesini