UNIVERSITA' DEGLI STUDI DELLA CALABRIA

Diploma Universitario in Ingegneria Informatica

FONDAMENTI DI INFORMATICA 1B

(Anno Accademico 1999-2000)

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 JDK. 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 principali servizi disponibili.


CONTENUTI DEL CORSO

  1. Introduzione al linguaggio Java

  2. Caratteristiche principali di Java, differenze tra C e Java, tipi primitivi, array: dichiarazione e creazione, strutture di controllo, metodi, verso la programmazione ad oggetti, classi e oggetti in Java, esempi di programmi Java.
     
  3. Funzioni e procedure

  4. Definizione e chiamata di funzioni, passaggio di parametri, procedure, passaggio di parametri per valore e indirizzo, struttura di un programma e visibilita' delle variabili, effetti collaterali, definizione e chiamata di metodi in Java.
     
  5. Programmazione ricorsiva

  6. 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.
     
  7. File

  8. 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.
     
  9. Introduzione alla complessità degli algoritmi

  10. Complessità temporale e spaziale, casi peggiore, migliore e medio, misure di complessità di algoritmi e problemi, la notazione Theta.
     
  11. Strutture dati

  12. Pile, Code, Liste, Alberi: definizioni, operazioni e vari tipi di realizzazione secondo i meccanismi di astrazione della programmazione ad oggetti (incapsulamento, information hiding, generalizzazione).
     
  13. Elementi di Sistemi operativi

  14. 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.
     
  15. Cenni di Reti di calcolatori

  16. 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, Java e il Web.


ESERCITAZIONI

Programmazione in Java: realizzazione di programmi Java in ambiente JDK.


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


LIBRI DI TESTO