Home Home | Edit Edit | Attach Attach | Site Map Site Map | Help Help
Prenotazioni | Architetture | Calcolabilita | Grafica3d Prog Reti | SO | Ecdl | Progetti | Commissioni | TWiki
 
Programmazione1 | Programmazione2ad | Labprog2ad
Programmazione2ad. WebHome

Search


Advanced search...

Topics

PROGRAMMAZIONE II
(canale A-D)
a.a.2002/2003

Prof.ssa EMANUELA FACHINI, dott.sa CHIARA PETRIOLI


AVVISO: I RISULTATI DEL PRIMO ESONERO SONO DISPONIBILI--GUARDATE IN FONDO ALLA PAGINA, Gli esercizi della serie A sono stati corretti dalla prof.ssa Fachini e quelli della serie B dalla dott.ssa Petrioli

PROF.SSA EMANUELA FACHINI
STUDIO:  D.to Scienze dell'Informazione Via Salaria,113 - 00198 ROMA
TEL. 0649918314
E-MAIL: fachini@dsi.uniroma1NOSPAM.it
ORARIO DI RICEVIMENTO:
giovedì dalle ore 11 alle ore 13, fino al 5/32003, poi dalle 15 alle 17
 
 

DOTT. SSA CHIARA PETRIOLI
STUDIO:  D.to Scienze dell'Informazione Via Salaria,113 - 00198 ROMA
TEL. 06 4991 8536
E-MAIL: petrioli@dsi.uniroma1NOSPAM.it
ORARIO DI RICEVIMENTO:
giovedì dalle ore 14,30 alle ore 15,30
AVVISO: martedi' 15 aprile: primo esonero.



Programma del corso a.a. 2002/2003
 

Obiettivo del corso.
L'obiettivo del corso, che prosegue il cammino iniziato con Programmazione I, é quello di portare lo/a studente/ssa ad un buon livello di dimestichezza programmativa. Si introdurranno delle tecniche di programmazione che facilitano la produzione di software corretto e riusabile. Il linguaggio di riferimento è il C. Il corso é fortemente integrato con il corso
di Laboratorio Programmazione.

Programma.
1 Tecniche di produzione di software modulare.
2 Specifica del software: Precondizioni e postcondizioni.
3 Tipi di dato astratto e loro implementazioni. Invarianti di rappresentazioni.Collezioni, Pile, Code, Code di Priorita'.
4 L' ordinamento di una collezione (algoritmi: mergesort, selection-sort, insertion-sort, quicksort, heapsort.)
5 Cenni sulla complessità di tempo e di spazio dei programmi.
6 Tecniche elementari di testing/debugging.

Riferimenti:
TESTI CONSIGLIATI (i commenti alla bibliografia sono da me condivisi e qui riportati per comodita', ma si devono al prof. R. Silvestri):
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).


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.


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

TESTI DI APPROFONDIMENTO:


B.W. Kernighan, D.M. Ritchie Linguaggio C Jackson libri.
Il classico manuale del linguaggio C.


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.


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++.


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.


Corso in linea di  A. D. Marshall 1994-9 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 .



Modalità prenotazioni ed esami.
Per prenotarsi cliccare su PRENOTAZIONI e seguire le istruzioni. Il nome del corso e' stato abbreviato in ProgAD

 L'ESAME CONSISTE DI
 

  • una prova scritta consistente nella stesura di brevi programmi in C.

  • una prova orale basata sulla discussione dei programmi scritti e sul programma del corso.
 Modalità esoneri ed esami Programmazione II :

1. Sono previste due prove di esonero dalla prova scritta durante le lezioni, chiamate prova A e prova B.

Nota bene: non è necessario aver superato l'esame di Programmazione I o di Logica per sostenere le prove intermedie di Programmazione 2 , mentre lo è per affrontare l'esame di Programmazione II.

2. Ogni appello della sessione estiva prevederà una prova scritta divisa in due parti A e B.
Il superamento della prova di esonero A dà diritto a sostenere solo la parte B dell'esame scritto  nelle sessioni successive e analogamente invertendo i ruoli di A e B.
Chi non supera entrambe le prove dovrà sostenere l'intera prova scritta . Negli appelli successivi a quelli estivi la prova scritta andrà sostenuta integralmente.

3. Le prove scritte durano due ore. Al termine della prova il docente proporrà una soluzione. Lo studente può, alla luce della soluzione propostagli,
ritirare il proprio elaborato e ripresentarsi in qualunque appello.

4. Chi viene respinto alla prova scritta può ripresentarsi all'appello successivo solo dopo almeno un mese di studio.

5. Tutte le prove scritte consistono di esercizi di complessità uguale o inferiore a quello svolti durante l'anno accademico.

6. Gli studenti sono tenuti a prenotare la loro prova di esame entro le ore 12 del giorno precedente la data dell'appello.

7. Gli studenti il cui cognome inizia con una lettera compresa nell'intervallo A-D devono seguire le lezioni e sostenere l'esame con la prof.ssa Fachini. Deroghe a questa regola sono possibili ma solo a seguito di domanda scritta (anche via e-mail) nella quale siano riportate ragioni oggettive di impedimento o difficoltà a seguire le lezioni del proprio canale.


DIARIO DELLE LEZIONI
 

mercoledì 5/3/2003

Introduzione al corso. Esposizione del programma del corso e motivazioni. intr.ppt Precondizioni e postcondizioni. precPost.ppt.

giovedì 6/3/2003

Tecniche per rendere il codice più generale e più facilmente riusabile. Riuso.ppt:

martedì 11/3/2003

Ancora su tecniche per rendere il codice più generale e più facilmente riusabile. ListeVoid.ppt.

mercoledì 12/3/2003

Tipi di dato astratto.ADT.ppt.

martedì 18/3/2003

Alberi binari AlbBin.ppt.

mercoledì 19/3/2003

Alberi binari bilanciati AlbBinBil.ppt.

mercoledì 26/3/2003

Alberi binari di ricerca. Qui si possono scaricare i lucidi con l'illustrazione delle operazioni fondamentali. albBinRic.ppt, versione corretta. Qui invece ci sono i file del programma in cui una collezione è implementata come un albero binario di ricerca e testata utilizzando un file di input per i dati e uno di output per i risultati. dichColl.h, testFileAlb.c, OpAlbGen.c e specColl.h. (ho aggiunto il nome del file in testa a ogni file)

martedì 1/4/2003 La cancellazione di un nodo in un albero binario di ricerca.

mercoledì 2/4/2003 Confronto implementazioni collezione.

martedì 8/4/2003 Tabelle hash. TabHashDis.ppt. I file seguenti forniscono un'implementazione esempio di una tabella Hash. dichTHash.h, opTabHash.c,

opLVoid.c, ProtOpList.h, MainTHash.c. Si tenga presente che alcuni file inclusi sono forniti sopra.

mercoledì 16/4/2003 Un nuovo ADT: la pila. Robustezza e debugging dei programmi. Qui PilaVett.ppt vediamo la pila implementata su un vettore e qui PilaLista.ppt implementata con una lista.

mercoledì 23/4/2003 Un nuovo ADT: la coda. CodaVett.ppt, CodaLista.ppt.

martedì 29/4/2003 Esempio di uso di una coda: visita per livelli di un albero binario. VisitaLivelli.ppt Un altro ADT: la coda di priorita'. Heap.ppt.

mercoledì 30/4/2003 Code di priorita', codifica. CodiceHeap.ppt: versione corretta, HeapSort.ppt .

martedì 6/5/2003 Altri metodi di ordinamento: Il mergesort. Mergesort.ppt.

mercoledì 7/5/2003 Altri metodi di ordinamento: Il quicksort. Quicksort1.ppt

martedì 13/5/2003 Progetto di programmi iterativi: gli invarianti di ciclo. Applicazione: versione alternativa del quicksort. QuickSort2.ppt.



SETTORE DELLE ESERCITAZIONI
 

Esercizi da fare a casa e consegnare entro la sera del 2/4/2003. Trovate la descrizione degli esercizi in: EsCasa.doc.

Secondo homework: esrcizi da fare a casa e consegnare utilizzando il modulo 'consegna elaborati' entro la sera del 9/4/2003. La consegna deve essere effettuata tramite l'URL
Pagina per la consegna degli homework. Trovate la descrizione degli esercizi del secondo Homework in:
homework2.html
 

Terzo homework: esercizi da fare a casa e consegnare utilizzando il modulo 'consegna elaborati' entro la sera del 23/4/2003. La consegna deve essere effettuata tramite l'URL
Pagina per la consegna degli homework. Trovate la descrizione degli esercizi del secondo Homework in:
homework3.html Gli esempi (figure mancanti nella pagina web) in homework3.ppt
 

Quarto homework: esercizi da fare a casa e consegnare utilizzando il modulo 'consegna elaborati' entro la sera del 7/5/2003. La consegna deve essere effettuata tramite l'URL
Pagina per la consegna degli homework. Trovate la descrizione degli esercizi del secondo Homework in:
homework4.html Gli esempi (figure mancanti nella pagina web) in alberinari.jpg
 

  • Esercitazione del 13 marzo 2003
    Costruzione di una libreria di funzioni e procedure su liste non ordinate. Puntatori a puntatori e ricorsione.
    Soluzioni: SolEsListe.doc
  • Esercitazione del 20 marzo 2003
    Funzioni e procedure su stringhe. Aritmentica dei puntatori.Compilazione di un programma su più file.
    Soluzioni su stringhe: STRINGHE.tar
    Guida all'utilizzo di make: guidetomake.doc
  • Esercitazione del 27 marzo 2003
    Costruzione di una libreria di funzioni e procedure su insiemi. Suddivisione di programmi in più file: discussione.
    Soluzioni: inziemi.zip
  • Esercitazione del 3 aprile 2003
    Costruzione di una libreria di funzioni e procedure su alberi binari.
    Soluzioni: alberibin.zip
  • Esercitazione del 10 aprile 2003
    Esercizi di preparazione all'esonero: soluzioni degli esercizi del secondo homework, esercizi sugli alberi e soluzione esercizio sulla somma dei binari del primo homework.
    Soluzioni: materiale cartaceo distribuito in classe.
  • Esercitazione del 24 aprile 2003
    Stampa di un glicine; individuazione del numero di valori pari in un glicine; alberi binari di ricerca bilanciati nel numero dei nodi: inserimento; cancellazione del massimo e del minimo; ribilanciamento.
    Soluzioni: ALBILANCIATI.tar e GLICINE.tar
  • Esercitazione dell'8 maggio 2003
    Esercizi su pile: Valutazione di una espressione in notazione polacca inversa e verifica della corretta parentesizzazione di una espressione.
    Soluzioni: documentazione fornita in classe per la valutazione dell'espressione polacca inversa. La soluzione della verifica della corretta parentesizzazione e' disponibile in: PILE.tar


ECCO I RISULTATI DEL PRIMO ESONERO: risultati_final.html


*

Maintenance of the Programmazione2ad web

  • (More options in WebSearch)
  • WebChanges: Find out recent modifications to the TWiki.Programmazione2ad web.
  • WebIndex: Display all TWiki.Programmazione2ad topics in alphabetical order. See also the faster WebTopicList
  • WebNotify: Subscribe to be automatically notified when something changes in the TWiki.Programmazione2ad web.
  • WebStatistics: View access statistics of the TWiki.Programmazione2ad web.
  • WebPreferences: Preferences of the TWiki.Programmazione2ad web.

Notes:

  • You are currently in the TWiki.Programmazione2ad web. The color code for this web is a (SPECIFY COLOR) background, so you know where you are.
  • If you are not familiar with the TWiki collaboration tool, please visit WelcomeGuest in the TWiki.TWiki web first.

Date e Scadenze

April 2003
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

  • 25 Mar 2003 - sospensione delle lezioni per decreto rettorale.


Avvisi Importanti

In questo file * ElCambioCan.html c'è l'elenco degli studenti che hanno chiesto il cambio di canale

I verbali per la registrazione degli esami sono pronti.


Links Utili

Corso introduttivo di Programmazione C, di Steve Summit, con note al testo di Kernighan e Ritchie.
FAQ su C  domande frequenti su programmare in C, di Steve Summit

Corso introduttivo di Programmazione C, in italiano, di Fiorella Sartori del CISCA - Presidio Informatico Telematico Multimediale della Facoltà di Scienze MM.FF.NN.- Università degli Studi di Trento
Breve biografia di C.A.R. Hoare.

Biografie di matematici e informatici.

Una breve storia della Computer Science:


Attachment: Action: Size: Date: Who: Comment:
intr.ppt action 54784 04 Mar 2003 - 16:48 EmanuelaFachini  
precPost.ppt action 38912 04 Mar 2003 - 16:52 EmanuelaFachini  
Riuso.ppt action 73216 10 Mar 2003 - 16:03 EmanuelaFachini  
ListeVoid.ppt action 53248 11 Mar 2003 - 15:30 EmanuelaFachini versione corretta
ADT.ppt action 29184 13 Mar 2003 - 17:44 EmanuelaFachini  
AlbBin.ppt action 96768 17 Mar 2003 - 16:57 EmanuelaFachini  
AlbBinBil.ppt action 102912 17 Mar 2003 - 16:58 EmanuelaFachini  
EsCasa.doc action 27648 24 Mar 2003 - 09:05 EmanuelaFachini  
SolEsListe.doc action 39936 24 Mar 2003 - 09:22 EmanuelaFachini  
guidetomake.doc action 57856 24 Mar 2003 - 09:26 EmanuelaFachini  
albBinRic.ppt action 112128 31 Mar 2003 - 08:41 EmanuelaFachini versione corretta
dichColl.h action 310 31 Mar 2003 - 08:35 EmanuelaFachini  
OpAlbGen.c action 4001 31 Mar 2003 - 08:35 EmanuelaFachini  
testFileAlb.c action 4868 31 Mar 2003 - 08:35 EmanuelaFachini  
specColl.h action 1319 31 Mar 2003 - 08:36 EmanuelaFachini  
dichTHash.h action 1349 01 Apr 2003 - 16:03 EmanuelaFachini  
opTabHash.c action 493 10 Apr 2003 - 15:50 EmanuelaFachini  
opLVoid.c action 1848 01 Apr 2003 - 16:05 EmanuelaFachini  
MaintTHash.c action 1483 01 Apr 2003 - 16:06 EmanuelaFachini  
TabHashDis.ppt action 81920 01 Apr 2003 - 16:07 EmanuelaFachini  
ProtOpList.h action 781 01 Apr 2003 - 16:15 EmanuelaFachini  
OpListaOrd.c action 2923 02 Apr 2003 - 14:59 EmanuelaFachini  
TestListVoid.c action 4271 02 Apr 2003 - 14:59 EmanuelaFachini  
testList.txt action 46 02 Apr 2003 - 15:00 EmanuelaFachini Esempio di dati di test per una lista ordinata
insiemi.zip action 1627 06 Apr 2003 - 06:35 ChiaraPetrioli  
stringheparziali.zip action 3583 06 Apr 2003 - 06:35 ChiaraPetrioli  
alberibin.zip action 8060 06 Apr 2003 - 06:35 ChiaraPetrioli  
homework2.html action 4697 06 Apr 2003 - 07:53 ChiaraPetrioli  
MainTHash.c action 1662 10 Apr 2003 - 15:51 EmanuelaFachini  
homework3.html action 1996 13 Apr 2003 - 13:58 ChiaraPetrioli  
homework3.ppt action 35840 13 Apr 2003 - 14:08 ChiaraPetrioli  
PilaVett.ppt action 82944 15 Apr 2003 - 14:10 EmanuelaFachini  
PilaLista.ppt action 43008 16 Apr 2003 - 16:35 EmanuelaFachini  
CodaLista.ppt action 55808 16 Apr 2003 - 16:39 EmanuelaFachini  
CodaVett.ppt action 100864 16 Apr 2003 - 16:34 EmanuelaFachini  
risultati_final.html action 9553 24 Apr 2003 - 10:20 ChiaraPetrioli  
homework4.html action 4737 24 Apr 2003 - 10:54 ChiaraPetrioli  
alberinari.jpg action 27331 24 Apr 2003 - 10:54 ChiaraPetrioli  
VisitaLivelli.ppt action 41472 28 Apr 2003 - 11:28 EmanuelaFachini  
Heap.ppt action 90112 28 Apr 2003 - 16:14 EmanuelaFachini  
CodiceHeap.ppt action 49664 30 Apr 2003 - 10:35 EmanuelaFachini versione corretta
HeapSort.ppt action 70144 28 Apr 2003 - 16:14 EmanuelaFachini  
Mergesort.ppt action 119808 05 May 2003 - 19:12 EmanuelaFachini  
Quicksort1.ppt action 100864 09 May 2003 - 13:20 EmanuelaFachini  
ALBILANCIATI.tar action 92160 12 May 2003 - 11:53 ChiaraPetrioli  
GLICINE.tar action 10240 12 May 2003 - 11:57 ChiaraPetrioli  
STRINGHE.tar action 10240 12 May 2003 - 11:59 ChiaraPetrioli  
PILE.tar action 10240 12 May 2003 - 14:38 ChiaraPetrioli  
QuickSort2.ppt action 58368 13 May 2003 - 13:07 EmanuelaFachini  

Actions: Edit | Attach | Ref-By | Printable view | Raw view | See diffs | Help | More...