Fondamenti di Informatica Presentazione del corso Docente Monica Bianchini Dipartimento di Ingegneria dell’Informazione E–mail: [email protected] Telefono: 0577 234718 (Siena) 0575 926450 (Arezzo) Cellulare: 320 4355875 Ricevimento: per appuntamento via email Programma del corso 1 1. 2. 3. 4. 5. L’algebra di Boole; i sistemi di numerazione; la rappresentazione dei dati e l’aritmetica degli elaboratori La struttura del calcolatore ed il sistema operativo Analisi e programmazione; algoritmi e loro proprietà; i linguaggi per la formalizzazione di algoritmi: diagrammi a blocchi e pseudocodifica Introduzione alla programmazione; i linguaggi di programmazione di alto livello: storia del linguaggio C I fondamenti del linguaggio C — lo sviluppo dei programmi, la compilazione dei file sorgente, il link ed il caricamento in memoria principale, la libreria di run–time, l’impaginazione dei file sorgente, il preprocessore Programma del corso 2 Il linguaggio C — i tipi di dati scalari, il controllo di flusso, gli operatori e le espressioni, gli array ed i puntatori, le classi di memorizzazione, strutture ed unioni, le funzioni, le direttive del preprocessore, input e output 7. Algoritmi e complessità: complessità in tempo e spazio, complessità asintotica; algoritmi e strutture dati: ricerca e ordinamento; la macchina di Turing e le classi di complessità 8. Esercitazioni frontali e in laboratorio (23 ore settimanali) sugli argomenti sviluppati nel corso 6. Testi 1 • Testi di riferimento A. V. Aho e J. D. Ullman, Fondamenti di Informatica, Zanichelli, 1994 P. A. Darnell e P. E. Margolis, C Manuale di Programmazione (Linguaggio e Tecniche di Ingegnerizzazione del Software), McGraw-Hill (2a edizione) • In alternativa, uno qualsiasi fra… } A. Bellini, A. Guidi, Linguaggio C Guida alla programmazione H. Schildt, C La Guida completa McGraw-Hill S. Ceri, D. Mandrioli, L. Sbattella, Informatica: programmazione P. Demichelis, E. Piccolo, Introduzione all’informatica in C H. M. Deitel, P. J. Deitel, C Corso completo di programmazione, Apogeo A. Kelley, I. Pohl, C Didattica e programmazione, Pearson/Addison Wesley Testi 2 • Testi di consultazione A. Bertossi, A. Montresor, Algoritmi e strutture dati (2a edizione), CittàStudiDeAgostini, 2010 A. C. Batini, L. Carlucci Aiello, M. Lenzerini, A. Marchetti Spaccamela, A. Miola, Fondamenti di programmazione dei calcolatori elettronici, Franco Angeli, 1991 F. Cesarini, F. Pippolini, G. Soda, Elementi di informatica, Firenze: Edizioni Cremonese, 1993 B. W. Kernighan e D. M. Ritchie, The C Programming Language (2nd edition, ANSI C), Prentice Hall Press, 1988 Modalità d’esame 1 • Prova scritta: 2 prove in itinere (metà e fine corso), altrimenti… Compito scritto relativo al programma completo • Prova pratica: elaborato in linguaggio C con relazione allegata La relazione non ha una lunghezza predefinita Deve contenere: la descrizione del problema la descrizione generale di come è stato risolto per ogni funzione del codice: una breve descrizione del compito svolto dal sottoprogramma e del significato dei parametri Possibilità di lavoro in gruppi (max 3 persone) Consegna dell’elaborato due giorni lavorativi prima della prova orale (sabato, domenica e festivi non contano!) Modalità d’esame 2 • Prova orale Da sostenere sul programma decurtato dei punti 1. e 3. se entrambe le prove in itinere sono risultate sufficienti, altrimenti… Da sostenere sul programma completo