Salta al contenuto principale
CODICE 56703
ANNO ACCADEMICO 2023/2024
CFU
SETTORE SCIENTIFICO DISCIPLINARE ING-INF/05
LINGUA Italiano
SEDE
  • GENOVA
PERIODO 2° Semestre
MATERIALE DIDATTICO AULAWEB

PRESENTAZIONE

Il corso si propone di introdurre lo studente nel campo dei moderni metodi elettronici per la gestione delle informazioni, delle comunicazioni correlate e dei metodi di calcolo di base. Il corso segue due filoni distinti; il primo riguarda lo studio dell'architettura dei sistemi informatici, la rappresentazione delle informazioni al loro interno, l'organizzazione e il funzionamento delle reti e di Internet; il secondo insegna i fondamenti della programmazione con l'uso del linguaggio C++.

OBIETTIVI E CONTENUTI

OBIETTIVI FORMATIVI

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.

OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO

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 (CLion) 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.

PREREQUISITI

Nessuno,

MODALITA' DIDATTICHE

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.

PROGRAMMA/CONTENUTO

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.

Introduzione alla programmazione in C++: algoritmi, programmi e linguaggi di programmazione, costrutti fondamentali (variabili, costanti, tipi, operatori, assegnamento, condizioni, cicli), sottoprogrammi, array.

TESTI/BIBLIOGRAFIA

Nello spazio di Aulaweb riservato al corso, sono reperibili dispense ed indicazioni sia riguardanti la parte di teoria, sia riguardanti la parte di programmazione.

DOCENTI E COMMISSIONI

Commissione d'esame

ALESSANDRO CARFI' (Presidente)

FULVIO MASTROGIOVANNI

ALBERTO GIORDANO (Presidente Supplente)

LEZIONI

Orari delle lezioni

L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy

ESAMI

MODALITA' D'ESAME

L'esame prevede due prove scritte una per la parte di architetture e una per la parte di programmazione da svolgere al calcolatore. Per accedere alla prova scritta di programmazione è necessario superare una prova di selezione. Sempre per quanto riguarda la parte di programmazione il docente si riserva il diritto di richiedere una prova orale per confermare il voto dello scritto. 

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.

MODALITA' DI ACCERTAMENTO

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.

Calendario appelli

Data appello Orario Luogo Tipologia Note
17/01/2024 14:00 GENOVA Scritto
14/02/2024 14:00 GENOVA Scritto
12/06/2024 14:00 GENOVA Scritto
03/07/2024 14:00 GENOVA Scritto
24/07/2024 14:00 GENOVA Scritto
04/09/2024 14:00 GENOVA Scritto