Docente
|
FRANCIOSA PAOLO GIULIO
(programma)
Generalità(10 ore)
Componenti di un sistema di elaborazione: hardware, software, principali unità periferiche. Interazione con un sistema operativo basato su finestre. Il sistema operativo: funzioni principali, gestione dei processi, gestione della memoria, file system. Concetto di cartella, documento, applicazione/programma.
Rappresentazione dell'informazione: codifica di informazioni numeriche - sistemi di numerazione posizionali, codifica binaria, ottale, esadecimale, conversioni di base. Rappresentazione di numeri interi negativi. Rappresentazione in virgola mobile. Codifica di caratteri.
Concetto di algoritmo. Esempi di algoritmi in linguaggio naturale. Generalità sui linguaggi di programmazione, compilatori.
Programmazione in linguaggio Java (30 ore)
La Java Virtual Machine, ambienti di programmazione, compilazione ed esecuzione di programmi Java. Costrutti essenziali del linguaggio: variabili, espressioni, oggetti. Assegnazioni, metodi di input/output, istruzioni di selezione, ed iterazione. Uso di classi predefinite, invocazione di metodi. Consultazione della documentazione standard Java. Definizione di classi, principio della riutilizzazione del codice. Implementazione di vettori e matrici. Ereditarietà e polimorfismo.
Algoritmi fondamentali (16 ore)
Ricerca sequenziale, ricerca dicotomica su un vettore ordinato. Ordinamento: selection sort, merge sort, quick sort, bubble sort. Algoritmo di Euclide per la ricerca del Massimo Comun Divisore (MCD). Algoritmo per la ricerca del k-esimo elemento. Algoritmi di base su matrici.
Introduzione alla complessità computazionale (6 ore)
Concetto di complessità di un algoritmo, notazioni asintotiche. Equazioni di ricorrenza e metodi per la loro soluzione. Complessità computazionale degli algoritmi studiati.
Walter Savitch
Programmazione con Java
Pearson, 2013.
Cormen, Leiserson, Rivest: Introduzione agli algoritmi, volume 1, Jackson libri
capitolo 1: Introduzione;
capitolo 2: Ordine di grandezza delle funzioni - contiene l'algoritmo
di ordinamento merge sort;
capitolo 4, pagg. 58-60: soluzione di equazioni di ricorrenza;
capitolo 8, pagg. 145-153: l'algoritmo di ordinamento quick sort.
Ceri, Mandrioli, Sbattella: Informatica arte e mestiere, McGraw-Hill.
Cap. 11, pagg. 243-255,
o in alternativa
Ceri, Mandrioli, Sbattella: Informatica istituzioni, McGraw-Hill.
Cap. 2 fino a 2.2.2 compreso e ad 2.3 alla fine del capitolo, pagg. 29-43
|