Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
Insegnamenti | Crediti | TAF | SSD |
---|
2° Anno Attivato nell'A.A. 2016/2017
Insegnamenti | Crediti | TAF | SSD |
---|
3° Anno Attivato nell'A.A. 2017/2018
Insegnamenti | Crediti | TAF | SSD |
---|
Uno o due insegnamenti tra i seguenti per un totale di 12 cfu
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Uno o due insegnamenti tra i seguenti per un totale di 12 cfu
Insegnamenti | Crediti | TAF | SSD |
---|
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Programmazione con laboratorio (2015/2016)
Codice insegnamento
4S02751
Docente
Coordinatore
Crediti
12
Lingua di erogazione
Italiano
Settore Scientifico Disciplinare (SSD)
INF/01 - INFORMATICA
Periodo
II semestre, I semestre
Obiettivi formativi
Modulo: teoria.
-------
L'insegnamento si propone fornire gli strumenti fondamentali per analizzare e risolvere problemi attraverso lo sviluppo di programmi.
Gli obiettivi specifici del modulo sono la conoscenza de
- i principi basilari della programmazione e dei linguaggi;
- le tecniche fondamentali per l'analisi dei problemi e lo sviluppo degli algoritmi che li risolvono,
- i metodi essenziali per la valutazione degli algoritmi, sia in termini di efficienza che di correttezza.
Modulo: laboratorio.
-------
Gli obiettivi dell'attività pratica (di laboratorio) sono
- la conoscenza essenziale del sistema operativo e di un semplice ambiente di sviluppo,
- l'apprendimento di un linguaggio di programmazione,
- la capacità di sviluppare progetti di piccole e medie dimensioni,
- l'applicazione di tecniche per la valutazione degli algoritmi e dei programmi.
Programma
Modulo: teoria.
-------
Introduzione all'Informatica.
Parte I - Problemi, algoritmi e programmi.
- Nozioni di base: problema, specifiche, algoritmo; macchina astratta, compilatore e interprete; linguaggi di programmazione.
- Introduzione al linguaggio di programmazione.
- Programmi elementari: istruzioni di base e costruzione di semplici programmi.
- I tipi di dati. Nozione generale di tipo: caratterizzazione e rappresentazione dei dati. Variabili, espressioni e assegnamento. Tipi di dati astratti.
- I tipi di dati primitivi: caratteristiche, uso e problemi.
- Struttura degli programmi. Istruzioni fondamentali.
- I sotto-programmi: strutturazione, passaggio dei parametri, regole di visibilità.
- Tipi di dati strutturati. Array, puntatori, stringhe e altre strutture dati.
- Introduzione elementare agli oggetti.
- Strutture dati dinamiche.
Parte II - Analisi degli algoritmi.
- Correttezza degli algoritmi: terminazione, proprietà logiche; metodi per la verifica della correttezza.
- Elementi di complessità. Prestazioni degli algoritmi. Valutazione astratta dell'efficienza. Costo computazionale.
- Stime asintotiche di complessità in tempo e in spazio. Il caso peggiore e il caso medio.
- Il costo ammortizzato.
- Sequenze statiche: implementazione e algoritmi.
- Matrici e Vettori: implementazione, operazioni e algoritmi.
- Sequenze dinamiche: definizione astratta e implementazione; operazioni di base; ricerca, ordinamento, concatenazione e fusione.
- Pile e code: definizione astratta e implementazione; operazioni di base.
- Alberi. Definizione astratta degli alberi binari e implementazione. Operazioni di base. Alberi di ricerca.
- Argomenti avanzati: introduzione ai grafi e altri argomenti.
Complementi - Stili di programmazione.
- La programmazione imperativa e un'introduzione alla programmazione a oggetti.
------------------------
Modulo: laboratorio.
-------
In laboratorio si impara a conoscere il linguaggio di programmazione attraverso lo sviluppo di progetti basati sulle idee esposte in aula.
Si studiano i costrutti principali del linguaggio e i problemi legati allo sviluppo concreto delle soluzioni; in particolare si apprendono le abilità fondamentali di editing, compilazione, debugging, gestione di progetti.
Autore | Titolo | Casa editrice | Anno | ISBN | Note |
---|---|---|---|---|---|
Bertossi, Alan e Montresor, Alberto | Algoritmi e strutture di dati (Edizione 3) | Città Studi Edizioni, De Agostini Scuola | 2014 | 978-8-825-17395-6 | Testo di riferimento per lo studio e l'analisi degli algoritmi. Sarà adoperato nel II semestre. |
Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein | Introduction to Algorithms (Edizione 3) | MIT Press | 2009 | 978-0-262-53305-8 | Testo solamente di consultazione. È disponibile in biblioteca. |
Walter Savitch | Programmazione con Java (Edizione 2) | Pearson Italia | 2013 | 9-788871-929613 | Testo di riferimento per la programmazione e il linguaggio Java |
Modalità d'esame
L'esame finale riguarda tutti gli argomenti dell'insegnamento.
È diviso in due parti: una prova scritta e un colloquio orale.
La prova scritta è costituita da domande ed esercizi.
Il colloquio finale (al quale si è ammessi dopo aver superato la prova scritta) consiste in domande di carattere generale, esercizi e una discussione sulla prova scritta e l'attività di laboratorio.
La prova d'esame può essere in tutto o in parte sostituita da prove di verifica effettuate durante lo svolgimento del corso.