Introdurre i principi del funzionamento di un elaboratore e della programmazione orientata agli oggetti. Presentare gli approcci elementari alla soluzione di problemi (algoritmi) e al progetto di strutture di dati. Fornire le competenze per lo sviluppo di semplici applicazioni in linguaggio Java.
Organizzazione di un elaboratore. Unità centrale di elaborazione, memoria centrale, dispositivi di memoria di massa, dispositivi di ingresso e uscita. Il sistema operativo, sommario delle funzioni, processi, multiprogrammazione. Rappresentazione dell'informazione, sistemi di numerazione e conversioni. Linguaggi di programmazione. Esecuzione di un programma tramite compilazione e interpretazione. La macchina virtuale Java. Concetto di algoritmo, introduzione all'analisi degli algoritmi, esemplari di un problema e loro taglie. Misura della complessità: nel caso peggiore e nel caso medio. Notazione asintotica O-grande. Ricorsione, eliminazione della ricorsione. Strutture di dati e algoritmi, il concetto di tipo di dato astratto, un'interfaccia Java come definizione di un tipo di dato astratto, realizzazione di un tipo di dato astratto mediante una classe. Array, liste, pile e code, realizzazione mediante un array o una catena di celle. Ricerca di un elemento in un array e in una lista. Ricerca per bisezione in un array ordinato. Tabelle, dizionari, semplice realizzazione di un dizionario mediante un array parzialmente riempio o una lista. Algoritmi di ordinamento, ordinamento per selezione, inserzione, mergesort. Il linguaggio di programmazione Java. Tipi di dati elementari e oggetti, riferimenti, operatori ed espressioni, istruzioni di controllo, classi e interfacce. Campi e metodi di un classe. Polimorfismo ed ereditarietà. Gestione elementare degli errori. Introduzione alla programmazione ad oggetti. Operazioni di ingresso e uscita dall’ingresso e dall’uscita standard, operazioni di ingresso e uscita da file di testo.
Testi di riferimento:
Testi di consultazione:
Il corso è tenuto al primo trimestre del primo anno per cui non ci sono propedeuticità. Nello svolgimento del programma si assume comunque come prerequisito che gli studenti abbiano una certa dimestichezza con l'uso di un personal computer e conoscano i concetti di base del suo funzionamento. Le nozioni di base che si assume uno studente abbia acquisito dalla scuola si possono trovare nel testo di P. Tosoratti: Introduzione all'Informatica, Casa Editrice Ambrosiana, 1998 oppure nel testo di Maria Rita Laganà, Marco Righi, Francesco Romani: Informatica Concetti e sperimentazioni, Apogeo, 2003.