Offerta Didattica

 

INGEGNERIA ELETTRONICA E INFORMATICA

FONDAMENTI DI INFORMATICA (annuale)

Classe di corso: L-8 - Ingegneria dell'informazione
AA: 2021/2022
Sedi: MESSINA
SSDTAFtipologiafrequenzamoduli
ING-INF/05BaseLiberaLibera
CFUCFU LEZCFU LABCFU ESEOREORE LEZORE LABORE ESE
128049648048
Legenda
CFU: n. crediti dell’insegnamento
CFU LEZ: n. cfu di lezione in aula
CFU LAB: n. cfu di laboratorio
CFU ESE: n. cfu di esercitazione
FREQUENZA:Libera/Obbligatoria
MODULI:SI - L'insegnamento prevede la suddivisione in moduli, NO - non sono previsti moduli
ORE: n. ore programmate
ORE LEZ: n. ore programmate di lezione in aula
ORE LAB: n. ore programmate di laboratorio
ORE ESE: n. ore programmate di esercitazione
SSD:sigla del settore scientifico disciplinare dell’insegnamento
TAF:sigla della tipologia di attività formativa
TIPOLOGIA:LEZ - lezioni frontali, ESE - esercitazioni, LAB - laboratorio

Obiettivi Formativi

MODULO A Obiettivi formativi Fornire le conoscenze di base degli aspetti teorici e pratici dell'informatica moderna con particolare riferimento alle principali problematiche relative alla rappresentazione e alla elaborazione dell’informazione nei calcolatori elettronici. Trasmettere agli studenti una forma di pensiero computazionale ovvero la capacità di pensare in maniera algoritmica. Lo studente sarà reso in grado di analizzare un problema complesso, suddividerlo in sotto-problemi e progettare semplici algoritmi per la loro risoluzione. Favorire lo sviluppo dell’autonomia dello studente che sarà reso in grado di utilizzare in maniera consapevole i moderni strumenti informatici selezionando opportunamente tra quelli a disposizione i più adatti per la risoluzione del problema considerato. Far acquisire la terminologia di base dell’informatica moderna e la capacità di interloquire con linguaggio tecnico appropriato alla disciplina. Sviluppare nello studente un metodo di studio individuale adeguato a consentire l’approfondimento delle conoscenze acquisite e lo studio di altre discipline di base o specialistiche dell’ambito dell’ingegneria dell’informazione. MODULO B Obiettivi formativi Fornire le conoscenze di base dell’informatica moderna con particolare riferimento ai principali algoritmi e alle relative strutture dati presenti in letteratura. Introdurre la loro implementazione tramite un linguaggio di programmazione di alto livello. Trasmettere agli studenti la capacità di progettare algoritmi anche avanzati e di codificarli in programmi eseguibili da un calcolatore elettronico attraverso un linguaggio di programmazione di alto livello. Favorire lo sviluppo dell’autonomia dello studente che sarà reso in grado di selezionare opportunamente, tra gli algoritmi e le strutture dati noti, quelli più opportuni per giungere alla risoluzione dei problemi considerati con particolare attenzione all’ottimizzazione delle risorse di calcolo e di memoria richieste. Far acquisire la terminologia di base relativa alle tecniche di programmazione tramite linguaggi di alto livello. Lo studente sarà reso in grado di comunicare le motivazioni delle scelte tecniche adottate e di rappresentare adeguatamente i risultati ottenuti. Sviluppare nello studente una capacità di aggiornamento autonomo rispetto all’avanzamento delle tecnologie con particolare riferimento ai linguaggi di programmazione di alto livello, alle strutture dati avanzate e agli algoritmi correlati.

Learning Goals


Metodi didattici

Il corso, al fine di raggiungere gli obiettivi formativi previsti, si svolge prevalentemente attraverso lezioni frontali in aula. Sono inoltre previste esercitazioni in aula guidate dal docente, con lo scopo di stimolare la capacità di applicare la conoscenza acquisita durante le lezioni teoriche. In particolare le esercitazioni in aula consentiranno agli studenti di prendere manualità con i principi di base della programmazione. Tutte le attività sono svolte con supporto di slide delle lezioni.

Teaching Methods


Prerequisiti

MODULO A Conoscenze di base di analisi matematica, geometria e logica matematica. MODULO B Sono richieste conoscenze di base di analisi matematica, geometria, logica matematica e informatica.

Prerequisites


Verifiche dell'apprendimento

Il corso prevede due prove in itinere, un’attività di progettazione sotto forma di realizzazione di un programma in linguaggio C e una prova orale. La prima prova in itinere (con domande a risposta multipla e aperta) verterà sugli argomenti relativi alla prima parte del modulo A del corso e mirerà a verificare che gli studenti abbiano acquisito le conoscenze di base relative all’informatica moderna. La seconda prova in itinere (con domande a risposta multipla e aperta) verterà sugli argomenti relativi alla seconda parte del modulo A del corso e mirerà a verificare che gli studenti abbiano acquisito le conoscenze teoriche di base relative al linguaggio C. Per entrambe le prove la valutazione è espressa in trentesimi. Le due prove si tengono in date che vengono concordate durante le lezioni con gli studenti. Superate le prove in itinere, esse hanno validità per tutto l’anno accademico entro il quale dovrà essere sostenuta la prova finale ed ad ogni appello di esami gli studenti hanno la possibilità di recuperare eventuali prove in itinere non superate. L’attività di progettazione ha l’obiettivo di consentire agli studentidi dimostrare di aver acquisito la capacità di valutare e selezionare le alternative disponibili per la soluzione di un problema nonché la capacità di progettare e implementare un programma in linguaggio C mediante l’applicazione delle metodologie apprese. L'argomento dell’attività di progettazione viene concordato con il docente. L’attività viene sottoposta al giudizio del docente che potrà approvare o respingere il progetto. Gli studenti per i quali il progetto viene approvato sono ammessi alla prova orale che possono svolgere in un qualunque appello dell’anno accademico. L’obiettivo di tale prova è di verificare la capacità dello studente di comunicare le motivazioni delle scelte tecniche adottate durante l’attività di progettazione nonché il livello di conoscenza acquisito dallo studente sugli argomenti del modulo B del corso. In particolare, gli studenti saranno chiamati a dimostrare di conoscere e di sapere utilizzare le strutture dati e i relativi algoritmi mostrati a lezione. Il voto finale è espresso in trentesimi e tiene conto dei voti conseguiti durante le due prove in itinere, della complessità dell’attività di progettazione e della qualità della prova orale.

Assessment


Programma del Corso

------------------------------------------------------------ Modulo: 192/1 - FONDAMENTI DI INFORMATICA A (mutua dall'attività formativa FONDAMENTI DI INFORMATICA A - 192/1 del CdS INGEGNERIA BIOMEDICA - 1080) ------------------------------------------------------------ - FONDAMENTI DELL’INFORMATICA MODERNA: Introduzione all'informatica. Il calcolatore elettronico, macchina di Von Neumann. Gerarchie di memorie. Sistemi numerici posizionali. Sistema binario. Conversioni di base. Operatori aritmetici nel sistema binario. Algoritmi, dati ed istruzioni, programmazione strutturata, Teorema di Böhm-Jacopini. Codifica degli algoritmi, linguaggio naturale, linguaggio di programmazione, pseudo-codice. Diagrammi di flusso. Algebra booleana. Linguaggi e grammatiche. Grammatiche formali. Backus-NaurForm (BNF). Linguaggi di programmazione: linguaggio macchina, Assembler, linguaggi di alto livello. Compilatori ed interpreti. Compilatori per linguaggio C, GCC. - IL LINGUAGGIO C: Caratteristiche del linguaggio C, struttura di un programma C, principali librerie. Tipi di dato, tipi elementari. Stringhe e I/O da terminale. Operatori ed espressioni, precedenza ed associatività, overloading degli operatori, conversioni di tipo. Istruzioni semplici, istruzioni di controllo, blocchi, regole di visibilità. Costrutto if e costrutto switch-case. Costrutti while, do-while e for. Tipi di dato strutturato in C. Array: definizione, operatori, inizializzazione. Gestione della memoria, Heap. Puntatori e loro operatori. Implementazione di array con puntatore. Le strutture. Tipi enumerativi. Le unioni. Tipi di dato definiti dall'utente. Le funzioni. Passaggio dei parametri per valore e per riferimento, utilizzo dei puntatori. Gestione dei file, file di testo e binari, canali standard, uso dei buffer. ------------------------------------------------------------ Modulo: 192/2 - FONDAMENTI DI INFORMATICA B ------------------------------------------------------------ - ALGORITMI AVANZATI: Algoritmi ricorsivi: funzioni ricorsive e parametri di funzioni ricorsive in C, condizione di terminazione, esempi di algoritmi ricorsivi e loro implementazione in C. Calcolo della complessità: introduzione alla valutazione della complessità di un algoritmo, utilizzo di espressioni asintotiche per esprimere la complessità computazionale di un algoritmo eloro proprietà e regole. Complessità computazionale di operazioni semplici, cicli e funzioni (ricorsive e non). Esempi di calcolo di complessità computazionale di programmi in C. Ricerca e ordinamento in strutture dati semplici. Algoritmi di ricerca: ricerca sequenziale e ricerca binaria. Loro implementazione in C e calcolo della loro complessità computazionale. Algoritmi di ordinamento semplici e evoluti: Bubble sort, Selection sort, Insertion sort, Shell sort, Quick sort, Merge sort. Loro implementazionein C e calcolo della relativa complessità computazionale. - STRUTTURE DATI ELEMENTARI E AVANZATE: Tipi di dato astratto: liste, pile e code. Liste concatenate: ricerca, inserimento in testa, in coda e ordinato, cancellazione. Liste doppiamente concatenate:ricerca, inserimento in testa, in coda e ordinato, cancellazione. Implementazione delle liste tramite array collegati e tramite allocazione dinamica della memoria e puntatori in C. Implementazione di pile e code con liste concatenate e con array monodimensionali in C. Code circolari. Operazioni di push, pop e peak. Operazioni di enqueue e dequeue. Strutture dati complesso: grafi e alberi. Definizione di grafo. Grafi orientati e non orientati. Rappresentazione dei grafi con matrici di adiacenza e liste di adiacenza in C. Algoritmi di attraversamento dei grafi: in ampiezza e in profondità. Loro implementazione in C. Definizione di albero come grafo aciclico. Definizione di albero binario, algoritmi di attraversamento e loro implementazione in C. Definizione di albero binario di ricerca. Algoritmi di creazione, inserimento ordinato, cancellazione, ricerca e loro implementazione in C.

Course Syllabus


Testi di riferimento: ------------------------------------------------------------ Modulo: 192/1 - FONDAMENTI DI INFORMATICA A (mutua dall'attività formativa FONDAMENTI DI INFORMATICA A - 192/1 del CdS INGEGNERIA BIOMEDICA - 1080) ------------------------------------------------------------ - B. Kernighan, D. Ritchie, “Il linguaggio C - Principi di programmazione e manuale di riferimento.”, II edizione, Pearson, 2018. - R. Sedgewick, “Algoritmi in C.”, IV edizione, Pearson, 2015 - S. Berretti, L. Carnevali, E. Vicario, “Fondamenti di Programmazione – linguaggio C, strutture dati e algoritmi elementari, C++.” IV edizione, Esculapio, 2017 - L. Mari, G. Buonanno, D. Sciuto, “Informatica e cultura dell’informazione.”, II edizione, McGraw-Hill, 2013 - L. Console, M. Ribaudo, U. Avalle, F. Carmagnola, F. Cena, “Introduzione all’Informatica.”, IV edizione, UTET Università, 2018 - P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi, R. Torlone, “Basi di Dati - Modelli e linguaggi di interrogazione.”, IV edizione, McGraw-Hill, 2013 - Francesco Pinciroli, Marco Masseroli, “Elementi di informatica biomedica.”, Polipress, 2005 ------------------------------------------------------------ Modulo: 192/2 - FONDAMENTI DI INFORMATICA B ------------------------------------------------------------ -B. Kernighan, D. Ritchie, “Il linguaggio C -Principi di programmazione e manuale di riferimento.”, II edizione, Pearson, 2018. - R. Sedgewick, “Algoritmi in C.”, IV edizione, Pearson, 2015 - S. Berretti, L. Carnevali, E. Vicario, “Fondamenti di Programmazione –linguaggio C, strutture dati e algoritmi elementari, C++.” IV edizione, Esculapio, 2017

Elenco delle unità didattiche costituenti l'insegnamento

Docente: FRANCESCO LONGO

Orario di Ricevimento - FRANCESCO LONGO

GiornoOra inizioOra fineLuogo
Martedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Giovedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Note:

Docente: FRANCESCO LONGO

Orario di Ricevimento - FRANCESCO LONGO

GiornoOra inizioOra fineLuogo
Martedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Giovedì 15:00 16:007° piano blocco B del Dipartimento di Ingegneria
Note:
  • Segui Unime su:
  • istagram32x32.jpg
  • facebook
  • youtube
  • twitter
  • UnimeMobile
  • tutti