Programmazione II - Canale P-Z

Anno Accademico 2003/04

Guerrini - Cenciarelli





Pagina relativa ad A.A. passato.
La nuova pagina è su twiki





Gli studenti che devono ancora verbalizzare
l'esame dell'appello del 28/02-01/03
possono passare nell'ufficio del prof. Guerrini
Giovedì 10/03 o Venerdì 11/03
dalle ore 12.00 alle 12.30


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
http://www.dsi.uniroma1.it/~prog23/lezioni.html


Obiettivi e programma del corso

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.

Programma di Massima


Materiale didattico e testi di riferimento

Per la parte di linguaggio, si segnalano:

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.


Lezioni

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

Calendario lezioni ed esercitazioni

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

Accesso al laboratorio

Si veda la pagina del corso di Laboratorio di Programmazione.


Ricevimento studenti

Da fissare


Passaggi di canale.

Tutti i passaggi di canale dovranno essere segnalati ed autorizzati entro il 31 Marzo


Modalità di esame

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

Esercizi da consegnare prima dell'esame

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.


Esercizi

(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

  1. Primo esonero (07/05/02).
    Prima sessione: formato ps o pdf

  2. Secondo esonero (30/05/02).
    Formato ps o pdf

  3. Appello del 14/06/02.
    Compito scritto (in aula): formato ps o pdf
    Seconda parte dell'esame: orale.

  4. Appello de 12/07/02
    Compito scritto (in aula): formato ps o pdf
    Prova di programmazione (in laboratorio): formato ps o pdf


Compilatore C e Linux

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.


Stefano Guerrini