Corsi di Laurea Corsi di Laurea Magistrale Corsi di Laurea Magistrale
a Ciclo Unico
Scuola di Scienze
INFORMATICA
Insegnamento
PROGRAMMAZIONE
SC02121720, A.A. 2013/14

Informazioni valide per gli studenti immatricolati nell'A.A. 2013/14

Principali informazioni sull'insegnamento
Corso di studio Corso di laurea in
INFORMATICA
SC1167, ordinamento 2011/12, A.A. 2013/14
N0
porta questa
pagina con te
Crediti formativi 10.0
Tipo di valutazione Voto
Denominazione inglese PROGRAMMING
Sito della struttura didattica http://informatica.scienze.unipd.it/2013/laurea
Dipartimento di riferimento Dipartimento di Matematica
Obbligo di frequenza No
Lingua di erogazione ITALIANO
Sede PADOVA
Corso singolo NON è possibile iscriversi all'insegnamento come corso singolo
Corso a libera scelta È possibile utilizzare l'insegnamento come corso a libera scelta

Docenti
Responsabile GILBERTO FILE' INF/01

Dettaglio crediti formativi
Tipologia Ambito Disciplinare Settore Scientifico-Disciplinare Crediti
BASE Formazione informatica di base INF/01 10.0

Organizzazione dell'insegnamento
Periodo di erogazione Secondo trimestre
Anno di corso I Anno
Modalità di erogazione frontale

Tipo ore Crediti Ore di
didattica
assistita
Ore Studio
Individuale
LABORATORIO 2.0 20 30.0
LEZIONE 8.0 60 140.0

Calendario
Inizio attività didattiche 13/01/2014
Fine attività didattiche 15/03/2014
Visualizza il calendario delle lezioni Lezioni 2019/20 Ord.2011

Commissioni d'esame
Commissione Dal Al Membri
11 a.a 2019/2020 01/10/2019 28/02/2021 FILE' GILBERTO (Presidente)
BALDAN PAOLO (Supplente)
BRESOLIN DAVIDE (Supplente)
CRAFA SILVIA (Supplente)
RANZATO FRANCESCO (Supplente)
10 a.a 2018/2019 01/10/2018 28/02/2020 FILE' GILBERTO (Presidente)
TOLOMEI GABRIELE (Membro Effettivo)
AIOLLI FABIO (Supplente)
BRESOLIN DAVIDE (Supplente)
CRAFA SILVIA (Supplente)
RANZATO FRANCESCO (Supplente)
9 a.a. 2017/2018 - canale 1 01/10/2017 28/02/2019 FILE' GILBERTO (Presidente)
AIOLLI FABIO (Membro Effettivo)
BRESOLIN DAVIDE (Membro Effettivo)
CRAFA SILVIA (Membro Effettivo)
RANZATO FRANCESCO (Membro Effettivo)
TOLOMEI GABRIELE (Membro Effettivo)

Syllabus
Prerequisiti: Qualche conoscenza di architettura degli elaboratori.
Conoscenze e abilita' da acquisire: Specificare un problema attraverso la formulazione di una pre- ed una post-condizione cui il programma che vogliamo costruire per risolvere il problema deve obbedire. La capacità di costruire un programma in C++ e dimostrare che fa quanto specificato nella sua pre- e post-condizione. Capacità di trovare anche soluzioni ricorsive ai problemi e di dimostrare la loro correttezza grazie ad una prova induttiva. Conoscenza delle nozioni di base della programmazione imperativa: comandi semplici, puntatori, array, funzioni, passaggio dei parametri per valore e riferimento, tipi ad-hoc, eccezioni.
Modalita' di esame: L'esame consiste fondamentalmente di una prova scritta. In quest prova ci sono domande teoriche e si richiede di sviluppare un programma iterativo ed uno ricorsivo. Si richiede anche qualche passaggio relativo alla correttezza dei programmi prodotti. L'esame si svolge in laboratorio informatico e gli studenti ricevono l'assegnamento e lavorano direttamente sul PC. Un esame orale può venire richiesto in casi speciali.
Criteri di valutazione: L'esame è fatto per mettere in rilievo la capacità di ragionare dello studente e di esprimere in forma chiara il proprio ragionamento. In particolare si valuta la capacità di specificare il problema da risolvere e di realizzare un programma semplice per risolvere il problema specificato. Viene valutata anche la capacità di spiegare perché la soluzione proposta effettivamente è giusta per risolvere il problema proposto. Sono apprezzate semplicità e chiarezza.
Contenuti: I contenuti del corso si pongono su due piani diversi:
1) Da una parte vengono insegnati alcuni concetti della correttezza dei programmi alla Hoare, cioè basati sulle nozioni di pre-, post-condizione ed invarianti dei cicli. Ogni programma è accompagnato da una pre- e post-condizione e la sua correttezza rispetto ad esse va dimostrata in modo convincente.
2) Contemporaneamente alla parte (1) le nozioni di base della programmazione imperativa sono insegnate. In particolare, tipi predefiniti, istruzioni semplici, puntatori, array, funzioni, funzioni ricorsive, memoria dinamica, liste concatenate ed alberi binari.
Attivita' di apprendimento previste e metodologie di insegnamento: Il corso consiste principalmente di lezioni classiche in aula. Comunque circa 24 ore del corso (su 80 ore totali) vengono spese nel laboratorio informatico. I primi appuntamenti, concentrati nei primi 10 giorni del corso, permettono agli studenti di accrescere la loro capacità di usare in modo consapevole un PC. Nel resto dei laboratori gli studenti ricevono esercizi di difficoltà crescente e cercano di risolverli fornendo anche prove di correttezza delle loro soluzioni. La modalità di queste esercitazioni è completamente analoga a quella degli esami e questo facilita l'esecuzione degli esami. Il corso ha un sito di elearning moodle che permette un nutrito scambio di informazioni tra docenti e studenti.
Eventuali indicazioni sui materiali di studio: Il corso usa un sito moodle di elearning che raccoglie molto materiale utile per il corso: le slide delle lezioni, gli esercizi in laboratorio, esami passati con e senza soluzioni, ecc.
Testi di riferimento:
  • Gilberto Filè, Programmazione consapevole. Padova: Progetto, 2012. Cerca nel catalogo