Corso Di Laurea Ingegneria Meccanica Nuovo Ordinamento Corso di Informatica e Ulteriori Abilità Informatiche

Docente : Ing. Giovanni Secondulfo

Programma dell'A.A. 2003/2004

Argomenti trattati e materiali didattici

PARTE TEORICA

I. Fondamenti teorici

Concetti fondamentali. I concetti dell'informatica : informazione, dato, codifica, elaborazione, algoritmo. Il modello di automa a stati finiti. Elaboratori numerici ed analogici. Il bit. Misura dell’informazione. Le macchine di Turing. Calcolabilità, tesi di Church, problema dell’arresto. La Macchina Astratta Generalizzata. Hardware e software.


Ciclo di vita del Software. Analisi del Contesto, Modello Waterfall modificato, Paradigma della Prototipazione, Cenni all'engineering e reverse-engineering del software, Requisiti realizzativi di un buon algoritmo e di un buon software


Il modello di Von Neumann.
Processore, memoria centrale e di massa, registri, unità di I/O, ALU. Algoritmo del processore. Cenni al linguaggi macchina ed assemblativo.

II. Fondamenti di Architettura

Architettura di un Elaboratore. Bus, CPU, Gerarchie di Memorie, Interfacce di I/O, Algoritmo del Processore, Algoritmo e trattamento delle interruzioni, Ciclo del Processore.


Rappresentazione e codifica dei dati.
La funzione intero ed il resto in modulo. Il bit: tipo elementare e misura dell’informazione. Codifica a lunghezza fissa e variabile. Rappresentazione in macchina dei dati: registri. Codifica diretta e indiretta. Codici ridondanti. Il sistema di numerazione posizionale. Sistemi di numerazione binaria, ottale, esadecimale, decimale. Codici BCD. Conversione di base. Rappresentazione dei caratteri. Codice ASCII.


Rappresentazione dei numeri.
Rappresentazione ed aritmetica dei numeri naturali. Rappresentazione in segno e modulo. Rappresentazione in complementi (cenni). Rappresentazione di numeri reali e frazionari. Virgola fissa. Virgola mobile e lo standard IEEE; singola e doppia precisione, Overflow e Underflow.


Aritmetica del Calcolatore. Addizione, Sottrazione, Moltiplicazione e Divisione.


Sistemi Operativi
. Principi Generali, Process Control Subsystem, Il File System, Input/Output subsystem, Memory Management Subsystem.

Impianti informatici e reti telematiche. Tipologia di Reti : Reti locali e geografiche. Livelli ISO-OSI, Internet Protocol Suite. Apparati e Servizi di rete servizi di rete (cenni). Un esempio Applicativo la piattaforma di e-learnig netstre@m. Sicurezza delle reti di elaboratori

I Virus Informatici. Definizione e Classificazione dei Computer Viruses, Le nuove frontiere dei Virus Informatici. Un Caso di Studio Invisible Man

III. Fondamenti di programmazione

Introduzione alla programmazione ed ai linguaggi. Elaborazione. Campi di impiego degli elaboratori. Linguaggi simbolici. Hardware e software.

I tipi semplici.
I tipi: introduzione. Variabili e costanti. I tipi nei linguaggi di programmazione. Definizioni e notazioni per le operazioni sui tipi. Tipo intero. Tipo reale. Tipo carattere. Tipo enumerativo. Tipo booleano. Relazioni e predicati. Funzioni per la trasformazione di tipo.

I tipi strutturati fondamentali. I tipi strutturati. Gli array. Allocazione degli array. Gli array nel linguaggio C++. Il tipo record. Il tipo record in C++. Dimensioni delle strutture dati in C++. Il tipo file. Il tipo astratto stringa di caratteri. La stringa nei linguaggi di programmazione.

Le istruzioni semplici. Dati ed istruzioni. Istruzioni di ingresso e di uscita. Istruzioni di calcolo. Istruzioni di calcolo e assegnazione nel C++. Sottoprogrammi, procedure e funzioni. I sottoprogrammi nel linguaggio C++. Meccanismi di scambio dei parametri. Istruzioni per il controllo di sequenza.

La programmazione strutturata. Le istruzioni strutturate Definizioni, Il costrutto sequenza. Costrutti di selezione. Costrutti di iterazione. Teorema di Bohm-Jacopini. Altri costrutti per il controllo di sequenza. Modalità di scrittura. Equivalenza strutturale e funzionale di Programmi.

Struttura dei programmi. Regole di visibilità e durata delle variabili; allocazione della memoria. Struttura dei programmi C++; direttive al preprocessore. file di intestazione (cenni).

Documentazione Programmi : File di Intestazione, Docmentazione Esterna, Documentazione Interna, Formulazione dell'algoritmo

IV. Esempi di Programmi.

Problemi di ricerca e ordinamento. Ordinamento e ricerca in un vettore. Esempi semplici di algoritmi matematici e computazionali. Lettura dei parametri di linea. Operazioni sui file. Utilizzo dei sottoprogrammi.

V. Elementi di Programmazione ad Oggetti.

Generalità, Elementi chiave : Oggetti, Classi Messaggi, Ereditarietà, Un caso di Studio il Vettore: esempio Applicativo

PARTE ESERCITATIVA

Esercitazioni sullo sviluppo di programmi in linguaggio C++ vengono svolte in aula durante il corso. Esercitazioni guidate sull’uso di un ambiente di sviluppo in linguaggio C++ vengono svolte presso il laboratorio multimediale durante il corso.

MATERIALE DIDATTICO

LIBRI DI TESTO

Testo adottato:

B. Fadini, C. Savy: Fondamenti di Informatica I, Liguori Editore

Testi consigliati:

Brian Kernighan, Dennis Ritchie: Linguaggio C., Jackson,

Bjarne Stroustrup: The C++ Programming Language 2nd Edition Addison-Wesley Publishing Co.

Derek M. Capper : Introduzione a C++ per le scienze e l'ingegneria McGraw-Hill Libri Italia

H. Schildt: Guida al C++, Mc Graw-Hill

Deitel & Deitel: The complete C++ training course, Prentice Hall

Bruce Eckel: Thinking in C++ - 2nd edition, Prentice Hall

Materiale integrativo:

Si ringrazia il Prof. Giulio Iannello per le dispense messe a disposizione
Il materiale del corso (
Dispense, Trasparenze dalle lezioni, Note Integrative su argomenti specifici e sulle lezioni di tipo seminariale) viene fornito in forma elettronica sul sito ufficiale webdocenti di Facoltà utilizzando come keyword Secondulfo Giovanni e sul sito
http://www.geocities.com/giosec/aa0304materiale.htm
Dispense, Trasparenze dalle lezioni, Note Integrative su argomenti specifici e sulle lezioni di tipo seminariale sono inoltre depositate in forma cartacea presso il centro fotocopie biennio seminterrato Via Claudio.

Software didattici disponibili in rete.

Per qualsiasi problema, chiarimenti o contatti, oltre all'orario ufficiale di riferimento, si puo' contattare il docente agli indirizzi :
secondul@unina.it
giovanni.secondulfo@inwind.it









1