Prof. Ing. Francescomaria Marino

Associate Professor

DEE Politecnico di Bari

Fondamenti di Informatica 2

Primo Anno Laurea Triennale Ingegneria delle TLC

Informatica II

Primo Anno Laurea Triennale Ingegneria Elettronica

Prerequisiti

Le nozioni oggetto del programma di Informatica I o Fondamenti di Informatica 1. Non è richiesta la propedeuticità di detti esami, ma è necessaria, da parte dello studente una conoscenza approfondita degli argomenti ivi trattati.

Obiettivi

Apprendere la metodologia di programmazione orientata agli oggetti. Acquisire concetti di base su alcuni settori dell'informatica non coperti da insegnamenti previsti dal piano di studio (Sistemi Operativi, Data Base, Reti di Calcolatori, ingegneria del Sw).

Programma

 

I - Cenni sui Sistemi Operativi [1]

  • Livello di Interfaccia/Kernel/Hardware;
  • Ciclo di esecuzione di un programma in un sistema multitasking;
  • Job, Job-Step e Task;
  • Trap e Interrupt;
  • Politiche di allocazione della CPU in un sistema multitasking;
  • Struttura dei SO: monolitica, a livelli e a macchina virtuale;
  • Stratificazione di un SO: Programmi utente/Shell/File System/Device Manager/CPU e Process Manager 1/Memory Manager/CPU e Process Manager 2;
  • Sicronizzazione dei processi;
  • Deadlock;
  • Rilocazione della Memoria;
  • Memoria paginata e segmentata;
  • Memoria Virtuale.

II - Cenni sui Data Base [2]

  • Dispositivi di memorizzazione;
  • Memorizzazione sequenziale, ad accesso calcolato, ad indice;
  • DBMS e sue qualità (consistenza, minima ridondanza, privatezza, integrità, disciplina della concorrenza);
  • Schema esterno, logico e fisico e loro indipendenza;
  • Modello gerarchico, relazionale, reticolare e ad oggetti;
  • DDL e DML;
  • Modello e Diagramma Entità-Relazione;
  • Attributo semplice, composto, multivalore e derivato e loro analogie con i tipi di dato in un linguaggio di programmazione;
  • Chiavi e chiavi primarie;
  • Relazioni, grado e cardinalità;
  • Algebra relazionale: Selezione, proiezione, join, unione, intersezione e differenza;
  • La normalizzazione.

III - Cenni sulle Reti di calcolatori [3]

  • Trasmissione dell'informazione (concetti base);
  • Attributi della trasmissione (unicast/broadcast/multicast; simplex/half-duplex/full-duplex; connection-oriented/connection-less; reliable/not reliable);
  • End system, switch e router;
  • Classificazione delle reti in base all'estensione geografica;
  • Classificazione delle reti in base allo schema topologico;
  • Multiplexing in tempo e frequenza;
  • Commutazione di circuito, di messaggio e di pacchetto (datagramma e a circuito virtuale);
  • Modello di riferimento dei protocolli;
  • Livelli ISO/OSI nell'architettura di rete.

IV - Cenni sull'Ingegneria del Software [4]

  • Il ciclo di vita del software;
  • Tipologia del produttore e tipologia del committente;
  • Programming in the small, programming in the large;
  • Metamodello a spirale;
  • Modelli evolutivi;
  • Modelli trasformazionali;
  • Modello a cascata e semilavorati;
  • Studio di fattibilità;
  • Analisi e specifica dei requisiti;
  • Progettazione;
  • Programmazione e test delle unità;
  • Integrazione e test del sistema;
  • Manutenzione.

V - Perché la programmazione ad oggetti?

  • Manutenzione, leggibilità, riutilizzazione...

VI - Un linguaggio di programmazione ad oggetti: il Linguaggio C++ [5]

  • Introduzione al C++ (cap. 2);
  • I tipi di dati fondamentali (cap. 3);
  • Istruzioni di controllo (cap. 4);
  • Array e stringhe (cap. 5);
  • Puntatori (cap. 6);
  • Funzioni: Elementi fondamentali (cap. 7);
  • Funzioni: reference, overload e argomenti di default (cap. 8);
  • Altri tipi di dati e operatori (cap. 9);
  • Strutture e Union (cap. 10);
  • Introduzione alle classi (cap. 11)
  • Descrizione approfondita delle classi (cap. 12);
  • Overload di operatori (cap. 13);
  • Ereditarietà (cap. 14);
  • Funzioni virtuali e polimorfismo (cap. 15);
  • Template (cap. 16);
  • Il sistema di I/O del C++ (cap. 18).

Testi di Riferimento e Materiale Didattico

Argomenti Teorici:

  • Lucidi a cura del Prof. Giacomo Piscitelli (Sistemi operativi [1], Reti di Calcolatori [2], Data Base [3]);
  • Lucidi a cura del Prof. Francescomaria Marino (Ingegneria del Software [4]);

Questo materiale è disponibile presso la Biblioteca del DEE e in questa cartella del sito FTP.

Programmazione ad Oggetti:

  • SCHILDT: "Guida la C++ - II Edizione" McGraw Hill 2000 [5].

Link al mio sito FTP per scaricare l'ambiente di sviluppo C++ "Bloodshed Dev-C++")

Link alla sezione downloads del sito della McGraw-Hill in cui è possibile scaricare gratis utile materiale didattico, ed il codice dei programmi inclusi nel testo di riferimento del corso di Fondamenti di Informatica 1 e 2: "Guida la C++ - II Edizione". (Qui invece li scarichi dal mio sito FTP)

Modalità di svolgimento dell'esame

L'esame di FONDAMENTI DI INFORMATICA 2 o INFORMATICA II consiste in una prova scritta, e di una orale.

La prova scritta comprende domande relative alla parte pratica del corso e quesiti di natura più prettamente teorica. A discrezione dello studente, essa può essere seguita da un colloquio teso a migliorare (o peggiorare) la valutazione proposta.

Per sostenere tale prova, allo studente (oltre che alla obbligatoria prenotazione elettronica) è richiesto lo svolgimento di un esercizio di programmazione, la cui documentazione va consegnata al docente almeno 10 giorni prima dell'appello che si intende sostenere. Entro tale data, lo studente deve consegnare al docente:

La consegna di detto materiale abilita lo studente ai due appelli di esame da lui stesso specificati nella dichiarazione al terzo punto. Nel caso egli voglia presentarsi ad altri appelli, dovrà consegnare, sempre entro 10 giorni dal primo appello in cui intende sostenere la prova, la allegata ulteriore domanda.

La prova orale è normalmente non obbligatoria, essendo facoltativamente richiesta dagli studenti nel casso essi vogliano migliorare il voto proposto in sede scritta (l'esito di tale prova potrebbe anche essere negativo). Tale verifica orale diviene invece obbligatoria per gli studenti che pur avendo consegnato un esercizio propedeutico ampiamente sufficiente, in maniera inspiegabile, risultano autori di una prova scritta gravemente insufficiente. L'eventuale esito negativo di tale verifica orale comporterà la verbalizzazione della bocciatura.

poliba Site Map | mova::webdesign | ©2006 Politecnico di Bari