Fondamenti di Informatica, anno accademico 2012-2013 |
Obiettivi | Programma | Materiale didattico |
Orario delle lezioni | Ricevimento studenti | Modalità d'esame |
Diario delle lezioni |
Vengono presentati alcuni algoritmi fondamentali per problemi di ordinamento, ricerca e selezione, alcuni problemi numerici, evidenziandone le caratteristiche di efficienza attraverso l'analisi di complessità asintotica.
Vengono descritti i principali metodi di codifica dell'informazione.
Alla fine del corso lo studente sarà in grado di:
Componenti di un sistema di elaborazione: hardware, software, principali unità periferiche. Interazione con un sistema operativo basato su finestre. Concetto di cartella, documento, applicazione. Il sistema operativo: funzioni principali, gestione dei processi, gestione della memoria, file system.
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: 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: 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: concetto di complessità di un algoritmo, notazioni asintotiche. Equazioni di ricorrenza e metodi per la loro soluzione. Complessità computazionale degli algoritmi studiati.
L'esame consiste in una prova scritta e un colloquio. Nella prova scritta si richiede di scrivere o completare sorgenti Java e di rispondere a domande su argomenti teorici.
1 Ottobre 2012 | |
---|---|
Argomenti |
|
Riferimenti al testo |
torna all'elenco delle lezioni
3 Ottobre 2012 (lab) | |
---|---|
Argomenti |
Descrizione dei pacchetti JRE (Java Runtime Environment) e SDK (Software Development Kit) Editing di programmi Java con Blocco Note Compilazione ed esecuzione da "Prompt dei comandi" usando gli strumenti Esempi di semplici programmi Java Correzione di errori sintattici e semantici Si invitano tutti coloro che frequentano le lezioni a compilare il modulo disponibile su http://goo.gl/j7RhQ |
Esercizi proposti | Esercitazione 1 |
torna all'elenco delle lezioni
5 Ottobre 2012 | |
---|---|
Argomenti |
Tipi primitivi: interi, reali, carattere, boolean Dichiarazione di variabili Identificatori Istruzione di assegnazione Uso di literal (costanti) Operatori aritmetici Semplici espressioni Assegnazioni, uso di semplici espressioni Precedenza tra operatori |
Riferimenti al testo | Capitolo 1, Capitolo 3 |
Listati ed esercizi proposti |
Uso di tipi primitivi TipiPrimitivi.java |