Sei sulla pagina 1di 2

Fondamenti di Informatica (Foundations of Computer Science) Prof. Enrico Pagello, Canale 1 Programma dettagliato del corso A.A.

2008-2009
* 1. Architettura dell'elaboratore [Horstmann pp. 2-5]. Il processo di compilazione e la Java Virtual Machine [Horstmann pp. 7-10, 14-18, 22-23] [vedi http://java.com/it/download/index.jsp]. Gli ambienti Windows o Unix per Java [vedi http://java.com/en/download/manual.jsp ] e [vedi il file Lezione introduttiva sui sistemi operativi e sul linguaggio Java scaricabile dal sito WEB del corso] Rapresentazione dei numeri, aritmetica intera e aritmetica in virgola mobile [vedi il file Lezione sulla rappresentazione delle informazioni nei calcolatori elettronici scaricabile dal sito WEB del corso]. * 2. Definizione assiomatica dell'insieme dei Numeri Naturali N [Appunti pp. 3-10].

* 3. Il Calcolo Proposizionale. Sistemi di Assiomi. Teoremi e Tautologie. Teorema di Completezza [Appunti pp. 167-179, escluso il Teorema di Deduzione]. Il principio di Risoluzione di Robinson [Appunti pp. 180-182]. * 4. Definizione assiomatica dei While Program. [Appunti pp. 66-67]. Le strutture di controllo di base [Appunti pp. 60-64]. Esempi di Programmi [Appunti pp. 53-58, 60-65]. Teorema di BohmJacopini [Appunti pp. 107]. Le funzioni effettivamente computabili, parziali e totali, su N [Appunti pp. 14-17]. * 5. Le funzioni ricorsive primitive nel formalismo di Kleene: composizione di funzioni, schema di ricorsione primitiva, loro realizzazione mediante While Program [Appunti pp. 108-118]. La funzione di Ackerman [Appunti pp. 120-123]. Trasformazione di un While-program in una funzione ricorsiva [Appunti pp. 145-146]. Il formalismo di McCarthy per le funzioni ricorsive [Appunti pp. 125-132] * 6. Le funzioni di base car, cdr, cons, atom, eq sulle sulle espressioni simboliche (S-Expr) e sulle liste e le funzioni Null, Equal, Append, costruite in modo ricorsivo a partire dalle funzioni di base precedenti [Appunti pp. 140-141] e [vedi http://www-formal.stanford.edu/jmc/recursive/node3.html ]. * 7. Analisi della Complessit di Calcolo dei programmi. Notazione Theta Grande e Notazione O Grande. Istruzioni dominanti. [Horstmann pp. 534]. * 8. Algoritmi di ricerca lineare e binaria su array [Horstmann pp. 544-549].

* 9. Algoritmi di ordinamento su array e valutazione della loro complessit. Ordinamento per Selezione diretta [Horstmann pp. 523-530] e per Inserzione diretta [Horstmann pp. 532-534]. [vedi anche Appunti pp. 239-241]. Ordinamento per Fusione (MergeSort) [Horstmann pp. 534-537]. Ordinamento mediante Bubblesort [Appunti pp. 243-244] Partizione e Quicksort [Horstmann pp. 540-542] e [Appunti pp. 249-252].

* 10. Il linguaggio di programmazione Java. Principi generali della programmazione ad oggetti con particolare riferimento al suo sviluppo in ambiente Java. Classi, Oggetti, Variabili Istanza, Costruttori, Metodi, Parametri impliciti ed espliciti. Passaggio di Parametri. Metodi statici e non statici. Tipi di dati primitivi, Stringhe, Operatori ed espressioni, algebriche e booleane. Istruzioni di controllo, condizionali ed iterative, Ciclo FOR. Ricorsione. Array mono e multidimensionali. La Classe Object. Eccezioni controllate e non controllate [Horstmann: vedi il file lista completa dei paragrafi tratti dal libro scaricabile dal sito WEB del corso] * 11. I Tipi di Dato Astratto: Insiemi, Pile, Code, Liste, Alberi, e loro realizzazione concreta mediante Array e mediante Liste concatenate (catene) [Horstmann: vedi il file lista completa dei paragrafi tratti dal libro scaricabile dal sito WEB del corso] e [vedi lezione sulle catene di Dal Passo contenuta nel file Settimana 8, scaricabile dal sito WEB del corso] * 12. Esercitazioni pratiche di laboratorio in Java: costruzione di programmi documentati con valutazione critica dei risultati [vedi Lista completa delle esercitazioni di laboratorio scaricabile dal sito WEB del corso]. Bibiografia [Horstmann] Cay Horstmann, Concetti di informatica e fondamenti di Java, Apogeo 2007 [Appunti] Appunti di Informatica. Raccolta di materiali vari in distribuzione presso Libreria Progetto, San Nicola, Vicenza Sito WEB di riferimento http://robotics.dei.unipd.it/index.php?option=com_content&task=view&id=66&Itemid=69