Home » Archivo » Archvio 2013 » PROGRAMMAZIONE - 2013/2014

Laurea in Informatica

Salta il menu di secondo livello

PROGRAMMAZIONE - 10 CFU - A.A. 2013/2014

Insegnante

Prof. Gilberto File'

Periodo

I Anno - 2 Trimestre | 13/01/2014 - 15/03/2014

Ore: 80 (20 laboratorio, 60 lezione)

Torna su ▲

Prerequisiti

Qualche conoscenza di architettura degli elaboratori.

Conoscenze e abilità 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.

Modalità 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.

Attività 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

Torna su ▲