CODICE | 56703 |
---|---|
ANNO ACCADEMICO | 2021/2022 |
CFU |
|
SETTORE SCIENTIFICO DISCIPLINARE | ING-INF/05 |
LINGUA | Italiano |
SEDE |
|
PERIODO | 2° Semestre |
MATERIALE DIDATTICO | AULAWEB |
Obiettivo dell’insegnamento è fare acquisire allo studente le conoscenze di base dell’informatica e della programmazione. Queste conoscenze riguardano sia le architetture, cioè la rappresentazione delle informazioni ed una panoramica dei calcolatori e delle reti dati, sia la programmazione di base che ha come scopo quello di permettere allo studente la capacità di scrivere semplici programmi.
La rapida evoluzione delle metodologie e delle tecniche che trattano l’informazione e la comunicazione richiede oggi l’impiego del calcolatore in ogni ambito lavorativo. E’ pertanto necessario comprendere la sua architettura ed il suo funzionamento in modo da poterne conoscere i possibili impieghi, le potenzialità nonché i limiti. Uno degli strumenti più utili nel campo dell’ingegneria è la programmazione: mediante essa è possibile far svolgere al calcolatore qualsiasi compito, in particolare nell'ambito tecnico e scientifico dell’ingegneria. Considerata la specializzazione del corso di laurea che non riguarda l’ambiente informatico, e quindi il numero limitato di ore delle quali si dispone per il corso, viene presentato agli studenti il linguaggio C mediante un ambiente di programmazione (CodeBlock) facilmente comprensibile ed utilizzabile. La efficacia della didattica dipende fortemente dalla presentazione agli studenti di un buon numero di esercitazioni che illustrino i principali algoritmi e la loro formalizzazione.
Parallelamente alla parte di programmazione, è necessario far comprendere sia il modo con cui il calcolatore traduce i programmi in servizi illustrandone l'architettura ed il funzionamento, sia come il contenuto di conoscenza dell'informazione possa essere considerato e trattato, In particolare viene quindi definito il concetto di informazione e viene illustrato come l'informazione stessa possa essere gestita e trasmessa mediante le moderne tecnologie con l'impiego delle reti di calcolatori e di Internet.
L'obiettivo del corso è quindi quello di accrescere la dimestichezza dello studente con il mondo dell'Informatica mediante la comprensione dei principi di base e dei meccanismi di funzionamento dei sistemi che la riguardano.
La parte di architetture (28 ore) si basa su lezioni frontali in aula mentre quella di programmazione (32 ore) si basa in parte su presentazioni sempre in aula seguite dallo svolgimento assistito di esercizi proposti dal docente. Gli studenti sono consigliati di disporre di un proprio PC portatile da utilizzare in un’aula attrezzata.
Il materiale didattico e l’ambiente di programmazione sono disponibili su Aulaweb.
Cenno agli impieghi ed alla storia del calcolatore.
Rappresentazione delle informazioni all’interno del calcolatore, bit byte e codici.
Architettura e funzionamento di un calcolatore (modello di Von Neumann).
CPU (microprocessore), registri ed ALU, memoria, rom, ram, I/O.
Istruzioni, codice eseguibile, assembler, linguaggi e compilatori, esecuzione di un programma, esempi.
Sistemi operativi.
Dati e codifiche, rappresentazione dei dati all’interno del calcolatore, stringhe, numeri interi, numeri reali; suoni, immagini e video.
Operazioni matematiche, operazioni logiche e loro significato, porte logiche, esempio di sintesi di un sommatore ad un bit.
L’hardware, il software e la loro evoluzione: dai personal computer agli smartphone.
Trasmissione dati tra calcolatori, relazioni tra velocità e larghezza di banda, supporti fisici per la trasmissione dei dati. Protocolli.
Input/Output dei personal computer, interfacce utente ed interfacce per la trasmissione dati.
Modem, linee telefoniche e linee dati, connettività analogica e digitale.
Reti di calcolatori, modello client - server, servizi, reti locali e geografiche.
Standard ethernet, TCP/IP, il modello a layer: link, network, transport ed application.
Esempi di protocolli ai diversi livelli, campi header e data di un protocollo.
Internet e la sua rete, indirizzi MAC ed IP, assegnazione degli indirizzi, accesso ad internet.
Dominii ed indirizzi IP, DNS, DNS dinamici, netmask; IPV4/6
Web Server e Web Client: programmazione server-side e client-side.
Apparati di rete, hub, switch e router.
Wireless LAN, Bluetooth, GPRS, UMTS.
La crittografia e la protezione dei dati, l’algoritmo RSA, chiave pubblica e privata.
Cenni al rapporto tra privacy, sicurezza e servizi offerti.
La rivelazione e la correzione degli errori.
Nello spazio di Aulaweb riservato al corso, sono reperibili dispense ed indicazioni sia riguardanti la parte di teoria, sia riguardanti la parte di programmazione.
Ricevimento: Il docente è in genere disponibile sia prima che dopo l'orario di lezione in aula o presso il proprio ufficio. Egli è inoltre disponibile a richiesta. Per appuntamenti è reperibile con continuità al proprio numero di telefono cellulare (328 1003200).
Ricevimento: Il docente è disponibile per appuntamento previa email: in EMAROlab, Viale Causa 18, 16145, Genova.
ALBERTO GIORDANO (Presidente)
FULVIO MASTROGIOVANNI
ALESSANDRO CARFI' (Presidente Supplente)
L'orario di tutti gli insegnamenti è consultabile su EasyAcademy.
L'esame prevede una prova scritta di programmazione al calcolatore ed una prova orale. La prova orale si basa sulla valutazione scritta di una serie di questioni che riguardano gli argomenti trattati durante il corso.
Si raccomanda agli studenti con certificazione di DSA, di disabilità o di altri bisogni educativi speciali di contattare il/la docente all’inizio del corso per concordare modalità didattiche e d’esame che, nel rispetto degli obiettivi dell’insegnamento, tengano conto delle modalità di apprendimento individuali e forniscano idonei strumenti compensativi.
Lo studente riceve un programma in parte già scritto con il compito di completarlo nelle parti mancanti sulla base della descrizione del servizio che il programma deve offrire e la descrizione delle funzioni il cui codice deve essere scritto dallo studente. L’esame svolto utilizzando l’ambiente di programmazione permetterà di valutare la comprensione della parte di programma già presente e la capacità di scrivere il codice mancante.
La parte teorica (architetture) valuterà la capacità di rispondere e valutare una serie di considerazioni riguardanti gli argomenti trattati a lezione, in modo da verificarne l’apprendimento. Allo studente verranno presentate una serie di affermazioni riguardanti contenuti tecnici e logici che dovranno essere verificate e validate.
Le due parti di esame dovranno essere entrambe superate: esse saranno valutate indipendentemente ed i rispettivi voti, come media, costituiranno il voto finale.
Data | Ora | Luogo | Tipologia | Note |
---|---|---|---|---|
14/01/2022 | 10:00 | GENOVA | Scritto + Orale | |
11/02/2022 | 10:00 | GENOVA | Scritto + Orale | |
10/06/2022 | 14:00 | GENOVA | Scritto + Orale | |
29/06/2022 | 14:00 | GENOVA | Scritto + Orale | |
19/07/2022 | 14:00 | GENOVA | Scritto + Orale | |
14/09/2022 | 14:00 | GENOVA | Scritto + Orale |