FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

MARCO LOMBARDI FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

0612300054
DIPARTIMENTO DI INGEGNERIA INDUSTRIALE
CORSO DI LAUREA
INGEGNERIA MECCANICA
2017/2018

OBBLIGATORIO
ANNO CORSO 1
ANNO ORDINAMENTO 2016
PRIMO SEMESTRE
CFUOREATTIVITÀ
880LEZIONE


Obiettivi
RISULTATI DI APPRENDIMENTO PREVISTI E COMPETENZE DA ACQUISIRE

IL CORSO FORNISCE AGLI STUDENTI GLI ELEMENTI BASILARI PER LA RISOLUZIONE DI PROBLEMI ATTRAVERSO LA FORMULAZIONE DI ALGORITMI IMPLEMENTATI NEL LINGUAGGIO MATLAB, GLI ASPETTI FONDAMENTALI RELATIVI ALLA RAPPRESENTAZIONE DELLE INFORMAZIONI ED AL LORO UTILIZZO ALL’INTERNO DEL SISTEMA, AL FUNZIONAMENTO DI MODERNI SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI. IL CORSO PROPONE NUMEROSE ESERCITAZIONI PRATICHE, IN CUI GLI STUDENTI ACQUISISCONO TECNICHE DI PROBLEM SOLVING E LA CAPACITÀ DI IMPLEMENTARE LE PROPRIE SOLUZIONI IN UN LINGUAGGIO AD ALTO LIVELLO. I CONCETTI VENGONO PRESENTATI DURANTE LE LEZIONI FRONTALI E LE SOLUZIONI SONO REALIZZATE IMPLEMENTANDO PROGRAMMI IN LINGUAGGIO MATLAB DURANTE LE ORE DI ESERCITAZIONE.


CONOSCENZA E COMPRENSIONE

CONOSCENZE SULL’ARCHITETTURA DEGLI ELABORATORI E COMPRENSIONE DELLA MODALITÀ (LOGICA) DI FUNZIONAMENTO DI UN ELABORATORE ELETTRONICO, DELLA CODIFICA E RELATIVA RAPPRESENTAZIONE DELLE INFORMAZIONI, DEI COSTRUTTI FONDAMENTALI DEI LINGUAGGI DI PROGRAMMAZIONE E DELLA PROGRAMMAZIONE STRUTTURATA, DELLE STRUTTURE DATI PRINCIPALI (VETTORI E MATRICI), DELLA RAPPRESENTAZIONE DEGLI ALGORITMI ATTRAVERSO DIAGRAMMI A BLOCCHI, DELLA SINTASSI DEL LINGUAGGIO MATLAB E DEL SUO UTILIZZO PER LA REALIZZAZIONE DI ALGORITMI. CONOSCENZE DI MASSIMA SULLE FASI DI PROGETTAZIONE ED ANALISI DI UN PROGRAMMA.


CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE - ANALISI INGEGNERISTICA

CAPACITÀ DI SVILUPPARE ALGORITMI DI COMPLESSITÀ NON ELEVATA ATTRAVERSO LA SCOMPOSIZIONE IN SOTTO-PROBLEMI, RAPPRESENTANDO TALI ALGORITMI ATTRAVERSO DIAGRAMMI A BLOCCHI. CAPACITÀ DI TRADURRE DETTI ALGORITMI IN LINGUAGGIO MATLAB, ADOTTANDO METODOLOGIE DI PROGRAMMAZIONE STRUTTURATA, CURANDO LA COMPRENSIBILITÀ DEI PROGRAMMI. SAPER INTERPRETARE E COMPRENDERE CODICE SCRITTO IN LINGUAGGIO MATLAB.


CONOSCENZA E CAPACITÀ DI COMPRENSIONE APPLICATE - PROGETTAZIONE INGEGNERISTICA

SAPER CODIFICARE SEMPLICI ALGORITMI UTILIZZANDO IL LINGUAGGIO MATLAB. CAPACITÀ DI VERIFICARE IL CORRETTO FUNZIONAMENTO DI PROGRAMMI MATLAB.


AUTONOMIA DI GIUDIZIO - PRATICA INGEGNERISTICA

SAPER SCEGLIERE ED UTILIZZARE I COSTRUTTI BASE DEL LINGUAGGIO MATLAB PER LA CODIFICA DI ALGORITMI.


CAPACITÀ TRASVERSALI - ABILITÀ COMUNICATIVE

LO STUDENTE ACQUISIRÀ LA TERMINOLOGIA PROPRIA DELL’INFORMATICA E DEL LINGUAGGIO DI PROGRAMMAZIONE MATLAB.


CAPACITÀ TRASVERSALI - CAPACITÀ DI APPRENDERE

IL CORSO MIRA A SVILUPPARE LA CAPACITÀ DI APPRENDIMENTO DEGLI STUDENTI CHE CONSENTA LORO DI AGGIORNARE IN AUTONOMIA, CONTINUAMENTE, LE PROPRIE CONOSCENZE E COMPETENZE, DI APPLICARE LE METODOLOGIE ACQUISITE IN AMBITI DIVERSI DA QUELLI INVESTIGATI DURANTE IL CORSO, UTILIZZANDO FONTI DI INFORMAZIONI DIVERSE DAI LIBRI DI TESTO ADOTTATI, QUALI INFORMAZIONI RECUPERABILI ONLINE.
Prerequisiti
NESSUNO.
Contenuti
CONCETTI PRELIMINARI] (8H LEZIONE FRONTALE + 2H ESERCITAZIONE)

- INFORMAZIONE E DATO, TRATTAMENTO DELL’INFORMAZIONE, HARDWARE E SOFTWARE.

- ARCHITETTURA DI UN SISTEMA PER L’ELABORAZIONE DELL’INFORMAZIONE. COMPONENTI DELLA MACCHINA DI VON NEUMANN E RELATIVO FUNZIONAMENTO. CICLO FETCH-DECODE-EXECUTE. LINGUAGGIO MACCHINA. GERARCHIE DI MEMORIA.

- CODIFICA E RAPPRESENTAZIONE DELL’INFORMAZIONE. CONCETTO DI LINGUAGGIO. LA FUNZIONE DEI LINGUAGGI. LINGUAGGI NATURALI E RELATIVI PROBLEMI DI AMBIGUITÀ. CONCETTO DI LINGUAGGIO FORMALE. RAPPRESENTAZIONE DELL’INFORMAZIONE NEI CALCOLATORI. CODIFICA BINARIA DI NUMERI E CARATTERI. SISTEMA DI NUMERAZIONE POSIZIONALE. BASI DI RAPPRESENTAZIONE. TECNICHE DI CONVERSIONE TRA BASI DIVERSE (DECIMALE-BINARIO, BINARIO-DECIMALE). TECNICHE DI RAPPRESENTAZIONE NUMERICA: MODULO E SEGNO, COMPLEMENTO A DUE.

- ALGEBRA DI BOOLE E CIRCUITI LOGICI. CARATTERISTICHE ED AMBITI DI UTILIZZO DELL’ALGEBRA BOOLEANA. RELAZIONE TRA ALGEBRA BOOLEANA E CIRCUITI LOGICI. PRINCIPALI OPERATORI (O FUNZIONI) DELL’ALGEBRA BOOLEANA: OPERATORE AND (PRODOTTO LOGICO), OPERATORE OR (SOMMA LOGICA), OPERATORE NOT (NEGAZIONE). PROPRIETÀ E LEGGI DELL’ALGEBRA BOOLEANA: IDENTITÀ, PROPRIETÀ COMMUTATIVA, PROPRIETÀ DISTRIBUTIVA, PROPRIETÀ ASSOCIATIVA, LEGGI DI ASSORBIMENTO, LEGGI DI DE MORGAN. TAVOLE (O TABELLE) DI VERITÀ. FUNZIONI LOGICHE. PRODOTTO FONDAMENTALE O PRODOTTO MINIMO (MINTERM). RAPPRESENTAZIONE IN FORMA CANONICA. TECNICA PER TRASFORMARE UNA TAVOLA DI VERITÀ IN UNA FUNZIONE LOGICA. PORTE LOGICHE E CIRCUITI LOGICI. TECNICA PER TRASFORMARE UNA FUNZIONE BOOLEANA IN UN CIRCUITO LOGICO. TECNICA PER TRASFORMARE UN CIRCUITO LOGICO IN UNA FUNZIONE BOOLEANA.


[FONDAMENTI DI PROGRAMMAZIONE] (8H LEZIONE FRONTALE + 2H ESERCITAZIONE)

- MODELLAZIONE FORMALE DI UN PROBLEMA. FASI NECESSARIE ALLA RISOLUZIONE DI UN PROBLEMA TRAMITE ELABORATORE. CONCETTO DI ALGORITMO E RELATIVE DEFINIZIONI. GLI ALGORITMI NEL TRATTAMENTO DELL’INFORMAZIONE. CARATTERISTICHE PRINCIPALI DEGLI ALGORITMI. RAPPRESENTAZIONI DEGLI ALGORITMI: PSEUDOCODICI E DIAGRAMMI DI FLUSSO (DIAGRAMMI A BLOCCHI). PROCESSO PER LA CREAZIONE DI UN ALGORITMO. MODELLAZIONE IN FORMA ALGORITMICA DI ATTIVITÀ QUOTIDIANE.

[PROGRAMMAZIONE IN MATLAB] (20H LEZIONE FRONTALE)

- INTRODUZIONE ALL’AMBIENTE ED AL LINGUAGGIO MATLAB. CARATTERISTICHE PRINCIPALI. COME SI PRESENTA. INSERIMENTO DEI COMANDI. VARIABILI. OPERATORI ARITMETICI E LORO PRECEDENZA. WORKSPACE E SESSIONE DI LAVORO. FUNZIONALITÀ DI HELP.


- COSTRUZIONE INCREMENTALE DEI PROGRAMMI CON PROCESSO TOP-DOWN. DECOMPOSIZIONE FUNZIONALE. FUNZIONI, PROTOTIPI, CHIAMATA PER VALORE E PER RIFERIMENTO, FUNZIONI PREDEFINITE (BUILT IN) E DEFINITE DALL’UTENTE (USER-DEFINED). M-FILE (M-FILE SCRIPT ED M-FILE FUNCTION). GESTIONE DELL’INPUT/OUTPUT IN MATLAB.

- OPERATORI RELAZIONALI E LOGICI. STRUTTURE DI CONTROLLO SELETTIVE: SELEZIONE SINGOLA, SELEZIONE A DUE VIE, SELEZIONE MULTIPLA (IF, IF-ELSE, IF-ELSEIF-ELSE, SWITCH-CASE). STRUTTURE DI CONTROLLO ITERATIVE: CICLO A CONDIZIONE INIZIALE (FOR, WHILE), CICLO A CONDIZIONE FINALE (DO-WHILE), ISTRUZIONI BREAK E CONTINUE.

- GESTIONE DEI FILE IN MATLAB. CARATTERISTICHE DEI FILE. APERTURA/CHIUSURA DEI FILE. SCRITTURA/LETTURA DEI FILE. IMPORTARE DATI DA FILE.

- [SVILUPPO DI ALGORITMI IN MATLAB] (20H ESERCITAZIONE)

- PROGETTAZIONE, SVILUPPO E TESTING DI ALGORITMI SU VETTORI E MATRICI PER LA RISOLUZIONE DI TIPICI PROBLEMI DI PROGRAMMAZIONE: MINIMO, MASSIMO, TRASPOSTA DI UNA MATRICE, PRODOTTO SCALARE, PRODOTTO MATRICIALE, MCD, MCM, FATTORIALE, TEST DI PRIMALITÀ, CALCOLO DEI DIVISORI, ETC. ALGORITMI DI RICERCA. ALGORITMI DI ORDINAMENTO.
Metodi Didattici
IL CORSO PREVEDE LEZIONI IN AULE TRADIZIONALI ED ESERCITAZIONI PRATICHE SUGLI ARGOMENTI TRATTATI IN CLASSE. LE ESERCITAZIONI PREVEDONO LA RISOLUZIONE DI PROBLEMI ATTRAVERSO LA FORMULAZIONE DI ALGORITMI CHE VENGONO TRADOTTI IN MATLAB E TESTATI PER VERIFICARNE LA CORRETTEZZA.
Verifica dell'apprendimento
LA VERIFICA DEL RAGGIUNGIMENTO DEGLI OBIETTIVI PUÒ AVVENIRE IN DUE MODALITÀ:

- DURANTE L'EROGAZIONE DEL CORSO (IN ITINERE)

A) PROVE INTERCORSO DI VERIFICA, DA SVOLGERE DURANTE IL PERIODO DELLE ATTIVITÀ DIDATTICHE. ESSE VERTERANNO SU ESERCIZI PRATICI RELATIVI ALLO SVILUPPO DI UN PROGRAMMA IN MATLAB E QUESITI TEORICI SULLA PARTE DI PROGRAMMA SVOLTO NELLA PRIMA PARTE DEL CORSO.

B) PROVA DI FINE CORSO. ESSA VERTERÀ SU ESERCIZI PRATICI RELATIVI ALLO SVILUPPO DI UN PROGRAMMA IN MATLAB E QUESITI TEORICI SULLA PARTE DI PROGRAMMA SVOLTO NELLA PRIMA PARTE DEL CORSO.

C) COLLOQUIO ORALE. DISCUSSIONE DELLA PROVA SCRITTA E DEL LISTATO FUNZIONANTE DEL PROGRAMMA IN MATLAB PRESENTATO DALLO STUDENTE AL COLLOQUIO.

- APPELLI SUCCESSIVI

A) PROVA SCRITTA, RELATIVA ALLO SVILUPPO DI UN PROGRAMMA IN MATLAB, E SUGLI ARGOMENTI TRATTATI AL CORSO.

B) COLLOQUIO ORALE. LA DISCUSSIONE PARTIRÀ DAI CONTENUTI DELLA PROVA SCRITTA E DAL LISTATO FUNZIONANTE DEL PROGRAMMA IN MATLAB PRESENTATO DALLO STUDENTE AL COLLOQUIO.

È CONDIZIONE ESSENZIALE PER IL RAGGIUNGIMENTO DELLA SUFFICIENZA LA CONOSCENZA DEI MECCANISMI ALLA BASE DEL FUNZIONAMENTO DI UN CALCOLATORE ELETTRONICO (MACCHINA DI VON NEUMANN), LA CAPACITÀ DI EFFETTUARE CONVERSIONI DI BASE TRA NUMERI RAPPRESENTATI IN NOTAZIONE POSIZIONALE (DECIMALE/BINARIO E VICEVERSA), LA CAPACITÀ DI RAPPRESENTARE NUMERI IN MODULO E SEGNO ED IN COMPLEMENTO A DUE, LA CAPACITÀ DI RAPPRESENTARE UNA FUNZIONE LOGICA MEDIANTE TAVOLA DI VERITÀ E CIRCUITO LOGICO, LA CAPACITÀ DI OPERARE SULLE STRUTTURE DATI PRINCIPALI DI MATLAB (ARRAY E MATRICI): IN PARTICOLARE, LO STUDENTE DOVRÀ ESSERE IN GRADO DI INDICIZZARE E MANIPOLARE TALI STRUTTURE E DOVRÀ DIMOSTRARE DI AVERE PADRONANZA CON LE PRINCIPALI FUNZIONI MATLAB CHE OPERANO SU MATRICI (MINIMO, MASSIMO, FUNZIONI DI RICERCA, ETC.), LA CAPACITÀ CREARE ED INTERPRETARE GRAFICI IN MATLAB.
LO STUDENTE RAGGIUNGE IL LIVELLO DI ECCELLENZA SE SI RIVELA IN GRADO DI AFFRONTARE CON CONSAPEVOLEZZA PROBLEMI INCONSUETI O NON ESPRESSAMENTE TRATTATI A LEZIONE.
LA VOTAZIONE DIPENDERÀ DAL GRADO DI MATURITÀ ACQUISITO SUI CONTENUTI E GLI STRUMENTI METODOLOGICI ESPOSTI DEL CORSO, TENENDO CONTO ANCHE DELLA QUALITÀ DELL'ESPOSIZIONE SCRITTA E ORALE E DELL'AUTONOMIA DI GIUDIZIO DIMOSTRATA.
Testi
- DONATELLA SCIUTO, GIACOMO BUONANNO, LUCA MARI - INTRODUZIONE AI SISTEMI INFORMATICI V EDIZIONE, MCGRAW-HILL.

- WILLIAM J. PALM III, MATLAB 7 PER L’INGEGNERIA E LE SCIENZE, MCGRAW-HILL.

- MATERIALE AGGIUNTIVO: SLIDE E DISPENSE FORNITE DAL DOCENTE MEDIANTE IL SITO WEB DEL CORSO.

  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2019-05-14]