Programmazione II
Corso di Laurea in Informatica -
Università del Piemonte Orientale
(Sede di Alessandria)
a.a. 01/02
ESAMI DI PROGRAMMAZIONE II
-
Il docente sara' disponibile per ESAMI ORALI e CONSULENZE (in particolare
per la discussione della prova scritta):
-
Lunedi' 09/12/02 dalle 10:00 alle 12:00 (nell'Ufficio di Paola Giannini)
[NOTA: per orali e consulenze OCCORRE PRENOTARSI INVIANDO UNA MAIL AL DOCENTE]
-
La prossima PROVA SCRITTA sara':
-
Lunedi' 09/12/02
alle 14:00 (Aula C, palazzo Borsalino)
-
Per prepararsi all'esame (scritto e
orale) consultare
gli
ESERCIZI ASSEGNATI NEL PRIMO E SECONDO ESONERO (con soluzione),
,
gli
ESERCIZI ASSEGNATI NEL COMPITO DELLO 08/07/2002 (con soluzione),
,
e gli esercizi di preparazione al primo e secondo esonero (DI SEGUITO
RIPORTATI, CON SOLUZIONE).
PREPARAZIONE AL SECONDO ESONERO DI PROGRAMMAZIONE II
-
Gli "esercizi di preparazione" sono
(disponibili nei formati:
SOLO TESTO
e
WORD
).
Tali esercizi sono stati discussi con gli studenti durante la
lezione di Mercoledi' 06/03/2002.
-
Gli studenti che hanno sostenuto entrambi gli esoneri,
ottenendo un punteggio >= 18 in almeno uno dei due,
possono decidere di ripetere uno dei due esoneri
in uno qualunque dei due appelli della prima sessione di esame:
-
Venerdi' 15/03/2002, ore 14:00, AULA MAGNA del "Volta"
-
Giovedi' 04/04/2002, ore 14:00, AULA MAGNA del "Volta"
PREPARAZIONE AL PRIMO ESONERO DI PROGRAMMAZIONE II
-
Gli "esercizi di preparazione"
(disponibili nei formati:
SOLO TESTO
e
WORD
)
sono stati svolti in classe durante
la lezione del 15/02/02.
-
Gli studenti sono anche invitati a svolgere
i seguenti
ESERCIZI (con alcune soluzioni)
-
ultimo aggiornamento 06/03/02 (ATTENZIONE: la versione
del 18/02/02 conteneva degli errori).
Informazioni generali
Il corso si svolge nel secondo trimestre
(inizio il 14/01/02)
con il seguente orario
(circa 20 lezioni di 2 ore ciascuna,
distribuite su periodo di circa otto settimane):
Giorno |
Ora |
Aula/Laboratorio |
Lunedì |
14:00-16:00 |
Aula Magna |
Mercoledì |
16:00-18:00 |
Aula Officina |
Venerdì |
14:00-16:00 |
Aula Officina |
Scopo del corso
Il corso ha lo scopo di introdurre alcuni fondamenti
della programmazione degli elaboratori elettronici.
In particolare:
-
Saranno presentati i concetti di:
struttura dati dinamica, ricorsione, tipo di dato astratto.
-
Verranno illustrati molti esempi di algoritmi.
Libri di testo
-
Robert L. Kruse, Clovis L. Tondo, Bruce P. Leung.
"Data Structures and Program Design in C"(II edizione).
Pentice Hall International Editions.
[Nel seguito indicato come "KRUSE"]
-
Brian W. Kernighan & Dennis M. Ritchie.
Linguaggio C (ANSI C), seconda ed., Mc-Graw-Hill 1989.
[Nel seguito indicato come "ANSIC"]
(Ogni altro buon libro di C puo' essere utilizzato.)
Materiale integrativo
-
Paolo Terenziani
"
NOTE aggiuntive al corso di Programmazione II
a.a. 2001-2002
".
[Nel seguito indicato come "NOTE1"]
ATTENZIONE: ci sono alcune differenze rispetto
alle note dell'
a.a. 2000-2001
; usate la versione dell'a.a. 2001-2002.
Indice delle lezioni (ATTENZIONE: QUESTE PAGINE VENGONO CONTINUAMENTE
MODIFICATE, controllate quindi la DATA DELL'ULTIMO AGGIORNAMENTO)
PARTE 0 (il costrutture di tipo "struct" in C)
-
Lezione di Lunedi' 14/01/02
- ultimo aggiormamento: 24/01/02
-
Lezione di Mercoledi' 16/01/02
- ultimo aggiormamento: 24/01/02
PARTE 1 (strutture dati dinamiche: liste linkate)
-
Lezione di Venerdi' 25/01/02
- ultimo aggiormamento: 29/01/02
-
Lezione di Lunedi' 28/01/02
- ultimo aggiormamento: 31/01/02
-
Lezione di Mercoledi' 30/01/02
- ultimo aggiormamento: 31/01/02
-
Lezione di Venerdi' 1/02/02
- ultimo aggiormamento: 7/02/02
-
Lezione di Lunedi' 4/02/02
- ultimo aggiormamento: 7/02/02
-
Lezione di Mercoledi' 6/02/02
- ultimo aggiormamento: 7/02/02
PARTE 2 (algoritmi ricorsivi)
-
Lezione di Venerdi' 8/02/02
- ultimo aggiormamento: 12/02/02
-
Lezione di Lunedi' 11/02/02
- ultimo aggiormamento: 12/02/02
-
Lezione di Mercoledi' 13/02/02
- ultimo aggiormamento: 25/02/02
-
Lezione di Venerdi' 15/02/02
- ultimo aggiormamento: 22/02/02
-
Lezione di Mercoledi' 20/02/02
- ultimo aggiormamento: 22/02/02
-
Lezione di Venerdi' 22/02/02
- ultimo aggiormamento: 28/02/02
-
Lezione di Lunedi' 25/02/02 (LEZIONE DI ESERCIZI)
-
Lezione di Mercoledi' 27/02/02
- ultimo aggiormamento: 28/02/02
-
Lezione di Venerdi' 01/03/02
- ultimo aggiormamento: 05/03/02
-
Lezione di Lunedi' 04/03/02
- ultimo aggiormamento: 11/03/02
-
Lezione di Mercoledi' 06/03/02
-
Lezione di Venerdi' 08/03/02 (LEZIONE DI ESERCIZI)
Modalita' d'esame
L'esame prevede una prova scritta (CHE PUO' ESSERE SOSTITUITA
DA DUE ESONERI, CHE SARANNO SVOLTI A META' E A FINE CORSO),
che sara' poi discussa
con il docente prima della registrazione del voto.
Programma del corso (versione preliminare)
-
Il "costruttore di tipo" struct in C. [NOTE1]
-
La "struttura dati" lista
-
Introduzione [KRUSE: sez. 2.2.1 pag 40-44; sez 5.1 pag. 188-189]
-
Implementazione contigua [KRUSE: sez. 2.3.1 pag 55-56; sez 5.2.1 pag. 190-191]
-
Implementazione linkata con array [KRUSE: sez. 5.5 pag. 214-221]
-
Puntatori C e liste linkate [KRUSE: sez. 4.5 pag. 152-160;
sez 5.2.2 pag. 191-195]
-
Esercizi: algoritmi iterativi su liste (realizzate tramite puntatori) in C
[NOTE1: Iterazione su Liste]
-
Liste doppiamente linkate
[KRUSE: sez. 5.2.4, pag. 197-201]
-
Ricorsione
-
Introduzione generale
[KRUSE: sez. 3.2.1, 3.2.2, 3.2.3 pag. 91-95;
sez. 3.4 pag. 110-122]
-
Complessita' in spazio e in tempo di procedure/funzioni ricorsive [NOTE1]
-
Record di attivazione per procedure/funzioni ricorsive [NOTE1]
-
Esercizi: algoritmi ricorsivi in C [NOTE1]
-
Torri di Hanoi
[KRUSE: sez. 3.2.4 pag. 91-95]
-
Esercizi: algoritmi ricorsivi su liste in C [NOTE1]
-
Ricorsione lineare, ricorsione di coda e iterazione (cenni)
-
Quicksort, Mergesort [KRUSE]
|