Pagina relativa ad A.A. passato. |
Gli studenti che devono ancora verbalizzare |
I testi dei compiti di esame | Descrizione delle soluzioni |
ATTENZIONE Le informazioni contenute in questa pagina sono relative al corso dell'A.A. 2002-03 e verranno aggiornate al più presto.
Per gli argomenti sinora affrontati a lezione si veda |
Obiettivi e programma del corso
Programmazione II e Laboratorio di Programmazione
Programma di massima
Materiale didattico e testi di riferimento
Dove trovare alcuni degli argomenti svolti
Lezioni
Calendario lezioni ed esercitazioni
Accesso al laboratorio
L'obiettivo del corso è introdurre lo studente alle tecniche di base della programmazione, mediante
l'analisi e lo sviluppo di semplici problemi e la loro implementazione in linguaggio C.
In particolare, alla fine del corso lo studente dovrà essere in grado di sviluppare piccoli progetti
che richiedano l'utilizzo di strutture dati composte e l'organizzazione del codice in moduli.
Particolare enfasi sarà posta sull'uso
corretto e disciplinato dei costrutti sintattici del linguaggio
C. Per questo motivo, si affronteranno
temi come la leggibilità e la documentazione
del codice (in particolare, si
vedrà come l'uso delle corrette strutture dati possa influire
su tali aspetti).
Si discuteranno anche temi come l'efficienza e la
correttezza, rimanendo
però ad un livello abbastanza introduttivo ed informale.
Infine, si cercherà di discutere il problema
della verifica e del
debugging del codice e
si cercherà di far vedere
come tali temi siano correlati alle tecniche di buona
progettazione e di documentazione dei programmi.
Programmazione II e Laboratorio di Programmazione
Il corso è fortemente correlato col Laboratorio di Programmazione: tutti gli argomenti affrontati
nel corso verranno portati avanti e approfonditi attraverso il progetto di programmazione
asegnato al Laboratorio.
Lo svolgimento delle attività del Laboratotio è pertanto fortemente consigliata a tutti coloro
che intendono frequentare questo corso.
Per la parte di linguaggio, si segnalano:
[KR] Brian W. Kernighan, Dennis M. Ritchie - Linguaggio C, II edizione. Jackson libri.
[DD] H.M. Deitel, P. J. Deitel. C Corso completo di programmazione. Apogeo.
Per la parte di strutture dati, alcuni capitoli di (anche se purtroppo in questo libro il linguaggio di riferimento è il Pascal):
Il precedente materiale didattico potrà essere integrato durante il corso con parti di altri testi o altro materiale didattico relativo alle parti di programma non coperte dai testi sopra citati.
Dove trovare alcuni degli argomenti svolti
Molti dei precedenti argomenti sono affrontati anche nel [KR]. Il [KR] rimane una preziosa fonte di esempi ed è il riferimento principale per quanto riguarda la sintassi del linguaggio C e lo studio di alcuni argomenti avanzati come l'allineamento dei dati in memoria.
Le lezioni si tengono nell'Aula V del Dipartimento di Matematica nei giorni:
lunedì 17.00-19.00 (esercitazioni)
martedì 16.00-19.00 (di cui 2 di laboratorio di programmazione)
venerdì 16.00-18.00
Il calendario delle lezioni sostenute e dei contenuti affrontati è disponibile alla pagina
http://www.dsi.uniroma1.it/~prog23/lezioni.html
quello delle esercitazioni è disponibile alla pagina
http://www.dsi.uniroma1.it/~prog23/esercitazioni.html
Si veda la pagina del corso di Laboratorio di Programmazione.
Da fissare
Tutti i passaggi di canale dovranno essere segnalati ed autorizzati entro il 31 Marzo
L'esame potrà essere sostenuto mediante valutazioni intermedie (esoneri) o con un esame tradizionale. Le modalità dell'esame potranno variare a seconda del numero dei partecipanti all'appello, ma in generale, l'esame sarà composto da una prova scritta più una prova di programmazione in laboratorio o una prova orale
Tutti gli studenti, sia quelli che sosterranno l'esame mediante gli esoneri durante il corso o negli appelli successivi al corso, dovranno svolgere e consegnare alcuni esercizi di programmazione.
Per la sessione di esami giugno-luglio, gli esercizi da consegnare sono alcuni moduli a scelta tra quelli assegnati per il progetto di Laboratorio di Programmazione.
I moduli del progetto di Laboratorio di Programmazione hanno un punteggio in 30esimi che ne indica il corrispondente peso nella valutazione del Laboratorio di Programmazione. Per poter superare l'esame di Programmazione II, il punteggio totale dei moduli funzionanti consegnati dallo studente dovrà essere di almeno 8 punti.
Gli studenti che sosterranno l'esame negli appelli successivi al corso, dovranno consegnare gli esercizi prima della prima prova dell'appello di esame. Gli studenti che sosterranno l'esame mediante gli esoneri dovranno consegnare gli esercizi entro l'appello di esame di luglio.
Gli studenti che, oltre a sostenere l'esame di programmazione II, svolgeranno l'attività di laboratorio, potranno far valere i moduli inviati anche come esercizi di Programmazione II in tutti gli appelli di esame dell'a.a. 2002/03.
Vai alla pagina con le istruzioni sulle modalità di invio degli esercizi.
ATTENZIONE! Le scadenze per l'invio dei moduli riportate nella pagina del progetto di Laboratorio di Programmazione si riferiscono a tale esame. Per gli studenti che non sostengono l'esame di Laboratorio di Programmazione, la scadenza per l'invio dei moduli svolti come esercizi per l'esame di Programmazione II è la prima prova dell'appello nel quale intendono sostenere l'esame.
(Il contenuto di questa sezione è relativo all'anno accademic 2002-03)
Per gli esercizi assegnati durante l'anno vedi la pagina del corso di Laboratorio di Programmazione.
I testi degli esercizi assegnati agli esami/esoneri dello scorso anno
Appello del 14/06/02.
Compito
scritto (in aula): formato ps
o pdf
Seconda parte
dell'esame: orale.
Appello de 12/07/02
Compito
scritto (in aula): formato ps
o pdf
Prova di
programmazione (in laboratorio): formato ps
o pdf
Il compilatore di riferimeto è
il GNU C Compiler
(gcc) disponibile in tutte le più diffuse distribuzioni linux;
ma va ugualmente bene un qualsiasi compilatore ANSI C.
Le macchine del laboratorio sono dual-boot (windows e
linux). Per poter scrivere, compilare ed eseguire i propri programmi
è necessario scegliere linux come sistema operativo al momento
del boot.
Sono disponibili alcune semplici note
con i passi base da compiere per poter editare e compilare i propri
programmi.