Laboratorio di Programmazione   canale A-D

2° semestre  A.A. 2007-08


Docente :   Francesco Parisi-Presicce
Ufficio:  Via Salaria 113, terzo piano, stanza 345a    
telefono : 06 4991 8514
Email: parisi (AT) di   (DOT) uniroma1 (DOT) it  (inserire nel Subject  LabProgr)
Orario ricevimento studenti:  Mar e Ven  2:30 - 4:30 (fino al 30 maggio) e per Appuntamento
Tutor:  dott. Silvestri Simone     simone DOT silvestri (AT) di (DOT) uniroma1 (DOT) it

 AVVISI


 
OBIETTIVO DEL CORSO:

Il Laboratorio di Programmazione ha lo scopo di approfondire e integrare gli argomenti svolti nei corsi di Programmazione I e II. Il corso prevede lezioni tradizionali e lezioni pratiche in laboratorio. L’esame consiste nella realizzazione di un progetto, suddiviso in più moduli, da sviluppare e consegnare durante lo svolgimento del corso. Alla fine del corso lo studente

Il corso é fortemente integrato con il corso di  Programmazione 2.




MODALITA' D'ESAME
Ogni gruppo deve consegnare un progetto, con tutti i moduli richiesti.
L'esame consiste in una discussione di almeno una parte del progetto consegnato.



DIARIO delle LEZIONI


- mercoledì dalle 11:30 alle 14:00 nei Laboratori di Via Tiburtina (AULA XVII)
- venerdì dalle 8.30 alle 10.30 in AULA I NEC (nuovo edificio chimica)

Introduzione al corso.  I FILE e operazioni elementari sui file Lucidi.  Il Preprocessore
Le Macro.  Compilazione Condizionale.  Il comando Make ed il makefile.   Esercizio.
Introduzione al problema SAT

Cenni di ADTEsempio di risoluzione SAT. Struttura generale del progetto e specifiche del Primo Modulo.
Lezione Cancellata (tempo da dedicare al progetto)
Lezione Cancellata (tempo da dedicare al progetto) Discussione sul Primo Modulo.  FILES per il progetto
Ancora dettagli sul primo modulo Esempio
Sviluppo del Primo Modulo e Specifiche del Secondo Modulo Specifiche del Secondo Modulo e Discussione.  Esempio
Settimana di prove intermedie - Nessuna Lezione
Discussione e Sviluppo del Secondo Modulo
Discussione e Sviluppo del Secondo Modulo.  Note su trail e funzioni
LABORATORIO del 16 maggio POSTICIPATO ad altra data
Discussione e Sviluppo del Secondo Modulo
Completamento del Secondo Modulo e Specifiche (aggiornate a venerdì 30/5) del Terzo Modulo
Discussione e Sviluppo del Terzo Modulo
Sviluppo del Terzo Modulo


RISORSE:

 Al Kelley, I. Pohl C, didattica e programmazione, Addison-Wesley, traduzione italiana a cura del Prof. G. Pighizzini, Univ. Milano.
In questo testo sono trattati quasi tutti gli argomenti del corso di Programmazione II.

(Si ringrazia il prof. R. Silvestri per i seguenti commenti alla bibliografia):

  1. H.M. Deytel , P.Deytel C corso completo di programmazione, Apogeo, 2000.

    (questo testo è già stato utilizzato a Programmazione I, e servirà ancora per alcune lezioni di Programmazione II).

  2. S.P. Harbison III, G.L. Steele Jr    C: A Reference Manual Prentice Hall.

    Un manuale di riferimento per il linguaggio C estremamente curato e preciso. Utilissimo per risolvere dubbi circa: ciò che è C standard (ANSI/ISO) e ciò che non lo è, portabilità, compatibilità con il C++, ecc. Fortemente consigliato a chiunque voglia fare un uso non occasionale del linguaggio C.

  3. B.W. Kernighan, D.M. Ritchie    Linguaggio C, Jackson libri.

    Il classico manuale del linguaggio C.

  4. B.W. Kernighan, R. Pike    The Practice of Programming,  Addison-Wesley.
    Tratta in modo sintetico e significativo tutti gli aspetti della programmazione. Dalle strutture dati ed algoritmi al debugging e testing, dallo stile di programmazione alla progettazione di librerie, passando per l'analisi delle prestazioni e i metodi per migliorare la portabilità. I linguaggi considerati sono: C, C++ e Java.

  5. J. Bentley    Programming Pearls,  Addison-Wesley.
    Molti dei temi trattati nel libro di Kernighan e Pike sono qui elaborati in modo originale e stimolante. Pieno di divertenti ed istruttivi aneddoti che mostrano la reale differenza tra la teoria e la pratica della programmazione e financo dell'ingegneria del software. Usa i linguaggi C e C++.

  6. S. Mc Connell Code Complete: A Practical Handbook of Software Construction.,  Microsoft Press.
    Un trattamento quasi enciclopedico di tutto ciò che riguarda la programmazione. Tantissimi suggerimenti e consigli per migliorare la programmazione in un qualsiasi linguaggio imperativo: C, Pascal, Fortran, ecc.

  7. Corso in linea di A. D. Marshall 1994-99
     [[http://www.cs.cf.ac.uk/Dave/C/CE.html][Programming in C, UNIX System Calls and Subroutines using C.]]
    Questo corso è completo: da un'introduzione ad argomenti avanzati di programmazione in C sotto UNIX, è scritto in modo chiaro e con molti esempi