Reti Logiche e Programmazione ad Oggetti

Denominazione dell’insegnamento: Reti Logiche e Programmazione a Oggetti
Corso di Laurea o di Laurea Magistrale : Ingegneria Elettronica e Informatica
SSD: ING-INF/05 Numero C.F.U.: 12
Titolari: Massimo Ficco

 

Obiettivi del corso

 

Il corso è costituito da due moduli formativi relativi alle Reti Logiche e alla Programmazione a Oggetti.

Il modulo di Reti Logiche mira a fornire agli studenti gli strumenti metodologici e le tcniche per l’analisi e la sintesi di semplici circuiti digitali combinatori e sequenziali

Nel modulo di Programmazione a Oggetti vengono analizzati i principi della programmazione orientata agli oggetti. In particolare, viene illustrato come queste nozioni possano essere adottate per produrre software estensibile e riusabile.

 

 

 

Programma del corso

Reti Logiche
Introduzione al corso: Il Problema del progetto delle macchine, processi di sviluppo di sistemi digitali. Richiami di sistemi di numerazione. Il ruolo dei simulatori nel progetto e nella verifica dei sistemi digitali: il tool LogiSIM.
Algebra di Boole: Definizione ed operazioni fondamentali, le tabelle di verità, livelli logici. Funzioni Booleane, rappresentazione circuitale, proprietà rilevanti, teoremi fondamentali, teoremi di De Morgan. Rappresentazione delle funzioni con mintermini e maxtermini, forme canoniche. Le mappe di Karnaugh, costruzione della rappresentazione, suo significato ed utilizzo. La minimizzazione, gli implicanti, implicanti primi ed essenziali, i don’t care e loro utilità.
Il Progetto delle Macchine Combinatorie: Metodologia di progetto, codifica degli ingressi e delle uscite, costruzione delle funzioni logiche, minimizzazione realizzazione ed adattamento del circuito. Macchine fondamentali (multiplexer, demultiplexer, decodificatori, addizionatore). Il tempo nelle macchine combinatorie, tempo di risposta e ritardo inerziale. Le sequenze e loro classificazione. Il concetto di clock. Classificazione delle macchine in funzione del comportamento temporale. Le alee e le loro soluzioni: alee multiple, da impulsi concomitanti, alee statiche, alee dinamiche.
Macchine e Reti Sequenziali: Introduzione. Utilizzo degli automi (Mealy e Moore). Schemi realizzativi di Huffman per macchine sequenziali. Le reti sequenziali e loro classificazione. Classificazione dei flip-flop per funzionalità e tempificazione. I flip-flop come macchine asincrone, le tabelle/automi dei flip-flop. I flip-flop RS, D, T, JK di tipo latch, ETS, ETD, MS. Il flip-flop JK-RS. Il problema del pilotaggio e del reset dei Flip-Flop Progettazione di macchine sincrone. Metodologia di Progetto, analisi del problema, definizione e scelta della macchina, scelta dei flip flop, progetto della rete combinatoria, realizzazione. Problemi di adattamento del progetto a nuovi tipi di flip-flop (reti di pilotaggio, progettazione degli eccitamenti). Il problema della minimizzazione degli stati: indistinguibilità di stati, regola di Paull-Hunger, tecnica della tabella delle implicazioni per l'eliminazione di stati equivalenti. Macchine sequenziali notevoli: i contatori e gli shift register. Progettazione di macchine asincrone: definizione del modo fondamentale, problema delle corse critiche e tecniche di eliminazione.

Programmazione ad Oggetti

Introduzione alla Programmazione ad Oggetti: Meccanismi di astrazione. Il concetto di modulo software. Incapsulamento e information hiding. Progettazione top-down e bottom-up. Dal Paradigma Procedurale al Paradigma OO. Classe come tipo dato astratto. Classi ed oggetti. Interfaccia.

Introduzione a Java: Caratteristiche del linguaggio Java. Compilatori ed interpreti. Interprete Java (Java Virtual Machine). Bytecode. Collegamento dinamico. Compilazione on-the-fly. Concorrenza. Struttura di un’applicazione Java. Unità di compilazione: files .java e .class. Sintassi Java. Documentazione delle classi.

Classi ed Oggetti: Attributi e metodi. Specificatori public, privati e protetta. Invocazione di metodi e passaggio di parametri. Chiamate di metodi interni ed esterni. Variabili locali e variabili static. Metodo costruttore. Oggetti come attributi di una classe. Interazione tra oggetti. Distruttore. Operazioni di finalizzazione. Specificatore this. I Packages. Classe ArrayList. Array di oggetti.

Riuso del software: Composizione. Ereditarietà. Classe base e derivate. Overriding, overloading, shadowing. Qualificatore Final. Chiamate a Super.

Estensione del software: Polimorfismo. Early e late binding. Classi astratte. Upcasting. Costruttori e distruttori. Ereditarietà multipla. Interfacce. Classi Astratte.

Input/Output: Stream. I/O su file. Handling IOException. Incapsulamento di Stream.

Eccezioni: Guarded region. Exception Handler. Definizione di classi derivate da Exception.

Gestione del file system: Binary File e Text File. La classe File.

Interfacciamento Grafica: Libreria di classi Swing. Frames. Panels. Layout Managers. Classe Graphics. Bottoni e menu. Gestione degli eventi in Java.

Cenni di programmazione Java per piattaforma Android.

Curricula scientifici dei docenti

Massimo Ficco èricercatorepresso il Dipartimento di Ingegneria Industriale e dell’Informazionedella Seconda Universitàdi Napoli (SUN).Ha conseguitola laurea inIngegneria Informaticanel 2000 presso l'Universitàdi Napoli "FedericoII",e nel 2010 il Dottorato di Ricercain "Ingegneria Elettronica"presso l'Università "Parthenope".Dal 2000 al 2010,è stato ricercatoresenior pressoil Consorzio InteruniversitarioItalianoper l'Informatica(CINI) dove ha ricopertodiverse posizioni di responsabilità in progetti di ricerca nazionali e internazionali. Dal2002 insegna in corsi di laurea magistrale e specialistica, tra cui i corsi di Elementi di Informatica, Basi di dati, Ingegneria delSoftware, Sistemi informativi, Programmazione ad Oggetti e Affidabilità dei Sistemi Software. I suoiattuali interessi di ricercacomprendono learchitettura dei sistemi software complessi,aspetti di sicurezza ed affidabilità di infrastrutture critiche,mobile computing e cloud computing.

Ha pubblicato 70 lavori scientifiche a diffusione internazionale, di cui più di 20 articoli su riviste internazionali. E’ stato coinvolto in progetti di ricerca nazionali ed europei nel settore della sicurezza e l'affidabilità delle infrastrutture critiche, tra cui: INTERSECTION (FP7-SEC-2007-216585), CRITICAL-STEP (FP7-PEOPLE-2008-IAPP), INSPIRE (FP7-SEC-2008-225553), OSMOSI(FP7-SEC-2009-10.7.0.2), mOSAIC (FP7-ICT-2009-5-256910), DOTS-LCCI (PRIN-2008) e CRYSTAL (SP1-JTI-ARTEMIS-2012-AIPP1-332830). Inoltre, egli è stato coinvolto in progetti di ricerca nazionali nel campo del mobile computing, come ad esempio WEBMINDS (FIRB 2003-2006), PETIT-OSA (FAR 2004-2006) ePESICA (FESR 2005-2006). Infine, è stato coordinatore scientifico del progetto NET-UNO (Misura 3.17 del POR Campania 2000/2006).

Competenze attese in ingresso e/o Propedeuticità

Conoscenza dei fondamenti della programmazione ad oggetti e dell’architettura dei calcolaori elettronici

Risultati d’apprendimento attesi

Sviluppo di capacità di ragionamento e di critica nell’analisi e nella progettazione dei circuiti digitali e di applicazioni orientate ad oggetti

Anno del corso di studio in cui è inserito

secondo anno

Testi di riferimento

B.Fadini, A.Esposito "Teoria e Progetto delle Reti Logiche" Liguori Editore

B.Fadini, N. Mazzocca "Reti Logiche" Liguori Editore

C. S. Horstmann, G. Cornell, “Java 2 - I fondamenti”, Mc Graw Hill (2a edizione)

Materiale didattico aggiuntivo

Dispense – lucidi delle lezioni

Modalità di erogazione

Tradizionale.

Sede

Via Michelangelo - Via Roma 29 Aversa.

Organizzazione della didattica

Lezioni frontali ed esercitazioni assistita.

Modalità di frequenza

Obbligatoria

Metodi di valutazione

Prova scritta ed orale

Dati statistici delle votazioni conseguite dagli studenti

Sono resi disponibili a cura del docente:_______________

Calendario delle attività didattiche

http://www.cdcinformazione.unina2.it/calendari

Eventuali attività di supporto alla didattica

Orari di ricevimento studenti

Sono resi disponibili a cura del docente:_______________

Calendario delle prove di esame

https://esse3.ceda.unina2.it/Home.do