Diploma Universitario in Ingegneria Informatica
FONDAMENTI DI INFORMATICA 1B
(Anno Accademico 1998-99)
DOCENTE : Domenico Talia
OBIETTIVI E ORGANIZZAZIONE DEL CORSO
Il corso rappresenta il proseguimento del corso Fondamenti di Informatica 1A, quindi in esso viene
completata la presentazione dei concetti di base relativi all'informatica, nonche' vengono
descritti e sperimentati algoritmi, tecniche e metodologie fondamentali per l'utilizzo di strumenti
informatici. Una parte rilevante del corso e' dedicata al completamento dello studio delle
tecniche di programmazione ed ai fondamenti del linguaggio di programmazione Java. Oltre ad
essere studiato, il linguaggio Java e' oggetto di esercitazioni in cui vengono studiate tecniche
di programmazione in Java in ambiente Windows.
Inoltre, il corso introduce alcuni elementi di sistemi operativi e di reti di calcolatori. In
particolare, sono illustrate le funzionalità principali dei sistemi operativi
con particolare riferimento alla gestione dei processi e della memoria e le tipologie ed i
protocolli di rete nonché i servizi disponibili.
CONTENUTI DEL CORSO
-
Introduzione al linguaggio Java
Tipi primitivi, array, strutture di controllo, metodi, verso la programmazione ad oggetti,
classi e oggetti in Java, esempi di programmi Java.
-
Funzioni e procedure
Definizione e chiamata di funzioni, passaggio di parametri, procedure, passaggio di parametri
per indirizzo, struttura di un programma e visibilita' delle variabili, effetti collaterali,
definizione e chiamata di metodi in Java.
-
Programmazione ricorsiva
Confronto tra ricorsione e iterazione. Algoritmi ricorsivi, la ricorsione come strumento di
programmazione, esecuzione di sottoprogrammi ricorsivi e gestione a pila della memoria, esempi di
programmazione ricorsiva in Java.
-
File
Concetto di file, tipo di dato FILE, operazioni sui file, gestione, lettura e scrittura, accesso
diretto, esempi di accesso e gestione, la classe File in Java.
-
Introduzione alla complessità degli algoritmi
Complessità temporale e spaziale, casi peggiore, migliore e
medio, misure di complessità di algoritmi e problemi, la notazione Theta.
-
Strutture dati
Pile, Code, Alberi: definizioni e vari tipi di realizzazione secondo i meccanismi
di astrazione della programmazione ad oggetti (incapsulamento, information hiding,
generalizzazione).
-
Elementi di Sistemi operativi
Struttura e funzioni di un sistema operativo, gestione dei processi
e meccanismi di comunicazione e sincronizzazione (semafori), gestione della
memoria (rilocazione, paginazione), gestione dei file. Presentazione del
sistema operativo MiniUnix.
-
Reti di calcolatori
Cenni sui sistemi operativi di rete. Trasmissione, codifica dei dati e topologie
di collegamento. reti gegrafiche e reti locali.
INTERNET: posta elettronica, file transfer, terminale virtuale, WEB e comunicazione fra utenti.
ESERCITAZIONI
Programmazione in Java: realizzazione di programmi Java in ambiente Windows.
ESAME
L'esame consiste di una prova pratica di circa 90 minuti (scrittura, compilazione ed esecuzione
di un programma in Java) ed una prova orale sui vari argomenti del corso.
ORARIO DEL CORSO
- Martedi, 8.30-11.30, aula S1
- Giovedi, 11.30-13.30, aula MT2 (o Lab. di Informatica).
LIBRI DI TESTO
-
S. Ceri, D. Mandrioli, L. Sbattella, Informatica Istituzioni, linguaggio
di riferimento ansi C, McGraw-Hill, 1994.
-
M. Bertacca, A. Guidi, Introduzione a Java, McGraw-Hill, 1997.
-
L. Lemay, R. Cadenhead, Java 1.2 Guida Completa, Apogeo, 1998.