LiiS:CorsiFondamenti
Da Wikipedia, l'enciclopedia libera.
Contents |
Fondamenti di Informatica I
Anno: I Periodo: primo Crediti Formativi Universitari: 6 Settore Scientifico Disciplinare: ING-INF/05
Docente
PhD. Ing. Simone Molendini
Nel 1999 ha conseguito con lode la Laurea in Ingegneria Informatica e nel 2004 il Dottorato di Ricerca svolgendo Tesi su "La Qualita' del Servizi in Internet". Attualmente lavora presso il Laboratorio per l'Internetworking e l'Interoperabilita' tra i Sistemi del Dipartimento di Ingegneria dell'Innovazione dell'Universita' di Lecce. I suoi interessi di ricerca includono la segnalazione in Internet, la trasmissione affidabile via satellite e l'hand off rapido fra reti senza fili. Referente per IEEE/ACM Transactions on Networking, e' coautore del RFC2961 "RSVP Refresh Overhead Reduction Extensions" sviluppato all'interno della Internet Engineering Task Force (IETF).
recapito telefonico: 0832297310 e-mail: simone.molendini@unile.it sede dello studio: Laboratorio per l'Internetworking e l'Interoperabilita' tra i Sistemi (LIIS) - Stecca orario di ricevimento: - Lunedi 10.00 - 12.00
Obiettivi del corso
Il corso fornisce i contenuti relativi alla programmazione in linguaggio C, illustrando e applicando i principi della programmazione strutturata. Inoltre viene fornita una moderna introduzione alle strutture dati utilizzando il linguaggio C. Vengono infine presentate le metodologie e tecniche di progettazione di algoritmi e alcuni cenni per l'analisi dell'efficienza degli algoritmi. Requisiti
Non si richiedono conoscenze pregresse. Nessuna propedeuticita'.
Programma
Linguaggio C
Sviluppo di programmi strutturati. Il controllo del programma. Le funzioni. I vettori. I puntatori. I caratteri e le stringhe. Formattazione dell'Input/Output. Strutture, unioni, manipolazione di bit, Enumerazioni. Gestione di file. Il preprocessore C. Ridirezione dell'I/O. Lista di argomenti a lunghezza variabile. Argomenti da linea di comando. Compilazione di programmi con piu' file sorgente. Terminazione di un programma. Gestione dei segnali. Allocazione dinamica della memoria.
Introduzione agli algoritmi
Introduzione agli algoritmi. Introduzione alle strutture dati. Ricorsione. Tail recursion. Analisi e progettazione di algoritmi. Analisi del running time di un algoritmo nel caso peggiore. Notazione asintotica. Cenni di complessita' computazionale.
Strutture dati
Liste semplici, doppie e circolari. Pile. Code. Insiemi. Hash Tables. Alberi binari. Heaps. Code con priorita'. Grafi.
Esercitazioni sul linguaggio C
Esercitazione su ricorsione e complessita' algoritmica
Esercitazione su strutture dati
Testi d'esame consigliati
"C Corso completo di programmazione, seconda edizione" di Harvey M. Deitel e Paul J. Deitel, editore Apogeo. "C How to program, fourth edition" di di Harvey M. Deitel e Paul J. Deitel, editore Pearson Education International. "Mastering Algorithms with C" di Kyle Loudon, editore O'Reilly. Modalita' d'esame:
Materiale Didattico
Esempi utilizzati durante la lezione Esempi
Appelli A.A. 2007/08
L'esame consiste in una prova scritta ed una orale.
Appelli AA 2005/06: Quesiti e Soluzioni
Appelli AA 2006/07: Quesiti e Soluzioni
I Appello Scritto: 10 Dicembre 2007 ore 15.00 Orale: 18 Dicembre 2007 ore 15.00 Quesiti e Soluzioni
II Appello Scritto: 10 Gennaio 2008 ore 15.00 Orale: 14 Gennaio 2008 ore 15.00 Quesiti e Soluzioni
III Appello Scritto: 27 Marzo 2008 ore 15.00 Orale: 1 Aprile 2008 ore 15.00 Quesiti e Soluzioni
IV Appello Scritto: 10 Aprile 2008 ore 15.00 Orale: 15 Aprile 2008 ore 15.00 Quesiti e Soluzioni
V Appello Scritto: 3 Luglio 2008 ore 15.00 Orale: 8 Luglio 2008 ore 15.00
VI Appello Scritto: 24 Luglio 2008 ore 15.00 Orale: 29 Luglio 2008 ore 15.00
VII Appello Scritto: 11 Settembre 2008 ore 15.00 Orale: 16 Settembre 2008 ore 15.00
