INFORMATICA I - MOD. 2

Anno accademico
2021/2022 Programmi anni precedenti
Titolo corso in inglese
COMPUTER SCIENCE I - MOD. 2
Codice insegnamento
CT0569 (AF:355375 AR:186678)
Modalità
In presenza
Crediti formativi universitari
6 su 12 di INFORMATICA I
Livello laurea
Laurea
Settore scientifico disciplinare
ING-INF/05
Periodo
II Semestre
Anno corso
1
Spazio Moodle
Link allo spazio del corso
L’insegnamento è una delle attività formative obbligatorie del Corso di Laurea in Ingegneria Fisica, e
e fornisce un'introduzione alla programmazione ad oggetti, agli algoritmi ed alle strutture dati, ovvero alla formalizzazione dei problemi, all'individuazione di soluzioni computazionali, e all'analisi di tali soluzioni, dal punto di vista della correttezza e dell'efficienza nell'uso di risorse.
Conoscenza e comprensione:
- conoscenza e comprensione dei principali algoritmi e strutture dati;
- comprensione e valutazione della complessità dei problemi informatici e capacità di selezionare metodi adeguati per la modellazione e risoluzione del problema.

Capacità di applicare conoscenza e comprensione:
- capacità logico-deduttive e di problem solving;
- capacità di formalizzare e implementare soluzioni per problemi reali e identificazione di pattern di soluzione appropriati;

Capacità di giudizio
- Sapere formulare ed argomentare soluzioni, sviluppando anche un approccio critico alla valutazione di soluzioni alternative
Elementi di base di logica. Nozioni elementari della programmazione. Conoscenza di basse del linguaggio Python.
Programmazione ad oggetti
Classi ed istanze
Ereditarietà e polimorfismo
Design pattern: singleton, strategy, command, factory, listener-observer

Strutture dati
Array, liste e alberi
Dizionari e tabelle Hash
Alberi binari di ricerca
Heap e code di priorità

Algoritmi, modelli di calcolo e metodologie di analisi:
Introduzione informale agli algoritmi. Modelli di calcolo.
Notazione asintotica.
Ricorrenze.

Tecniche fondamentali per il progetto di algoritmi:
Tecnica divide et impera.
Programmazione dinamica.
Algoritmi golosi
Hans Petter Langtangen: "A Primer on Scientific Programming with Python", 3rd edition, Springer.

T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. Introduction to algorithms (3rd Edition), MIT Press, 2009. (Traduzione italiana a cura di Livio Colussi edita da McGraw-Hill, Milano, 2010.)
Il raggiungimento degli obiettivi dell'insegnamento viene valutato attraverso la partecipazione alle attività e alle esercitazioni assegnate durante il corso e un esame finale scritto.

L'esame scritto finale è composto da problemi simili a quelli svolti in classe durante il lavoro di gruppo. Durante il compito non è consentito l'uso di appunti, libri e altro materiale didattico. Un fac-simile del compito sarà reso disponibile.

Gli studenti frequentanti le lezioni possono accumulare ulteriori punti partecipando ai quiz e alle esercitazioni proposte in classe. Il bonus verrà aggiunto al voto del compito scritto.
Seminari: limitate lezioni frontali, lavoro di gruppo (peer-teaching, problem solving)
Esercitazioni: lavoro di gruppo (peer-teaching, problem solving)
Italiano
scritto e orale
Programma definitivo.
Data ultima modifica programma: 31/05/2021