Dipartimento di Ingegneria Civile e Architettura
Corso di Laurea in Ingegneria Civile, Ambientale e Gestionale

Fondamenti di Informatica
Anno Accademico 2022-2023

Programma del corso (9 CFU)
1.    Introduzione all’informatica
1.1  La macchina di Babbage
1.2  La macchina di Touring
1.3  La nascita della macchina di Von Neumann
1.4  Hardware e Software

2.    Codifica e rappresentazione delle informazioni
2.1  Segnali analogici e segnali digitali
2.2  Digitalizzazione dei segnali analogici
2.3  Campionamento
2.4  Quantizzazione
2.5  Interpolazione
2.6  Il bit e il byte
2.7  Codice ASCII e codice UNICODE
2.8  Il sistema decimale
2.9  Il sistema binario
2.10 Il sistema ottale
2.11 Il sistema esadecimale
2.12 Conversione da base b a base 10
2.13 Conversione da base 10 a base b
2.14 Rappresentazione dei numeri interi con e senza segno
2.15 Rappresentazione in modulo e segno
2.16 Metodo del complemento a due
2.17 Operazioni con i binari
2.18 L'overflow

3.    Algebra di Boole
3.1  Variabili e funzioni booleane
3.2  Le tavole di verità
3.3  Le porte logiche fondamentali: AND, OR e NOT
3.4  Le porte logiche derivate: NAND, NOR, XOR e XNOR
3.5  Circuiti digitali combinatori
3.6  Mintermini e maxtermini
3.7  Prima e seconda forma canonica
3.8  Proprietà d'identità, assorbimento, inverso, idempotenza e doppia negazione
3.9  Principio di dualità
3.10 Proprietà commutativa, associativa e distributiva
3.11 Teoremi di De Morgan e dell'assorbimento
3.12 Mappe di Karnaugh
3.13 Minimizzazione di funzioni booleane

4.    Architettura dei calcolatori
4.1  La macchina di Von Neumann
4.2  Schema a blocchi di un elaboratore
4.3  Il processore
4.4  CPU, FPU e ALU
4.5  I registri
4.6  Il segnale di clock
4.7  La tempistica delle istruzioni
4.8  Time sharing
4.9  La tempistica delle istruzioni
4.10 Time sharing
4.11 Organizzazione delle memorie
4.12 Le memorie principali: la RAM, la ROM e la CACHE
4.13 Definizione di algoritmo
4.14 Il ciclo FETCH-DECODE-EXECUTE
4.16 Le memorie di massa
4.17 I dischi magnetiche: dai floppy disk agli hard disk
4.18 Organizzazione fisica dei dati nei dischi magnetici
4.19 Il tempo di accesso ai dati
4.20 I dischi ottici: CD, DVD e blu-Ray
4.21 Le flash memory: NOR flash e NAND flash
4.22 Nastri magnetici e backup
4.23 La gerarchia di memorie: costo, velocità e dimensione
4.24 Le periferiche di I/O
4.25 Tastiere, sistemi di puntamento, microfoni, webcam
4.26 Caratteristiche dei monitor e risoluzione grafica
4.27 La tecnologia CRT
4.28 Gli schermi LCD e gli LDC con retroilluminazione a LED
4.29 Le matrici di LED
4.30 Le stampanti ad aghi
4.31 Le stampanti a getto di inchiostro a testina termica ed a testina piezoelettrica
4.32 Le stampanti laser
4.33 Le porte

5.    Sistema Operativo e applicativi software
5.1  Funzionalità di un Sistema Operativo
5.2  Classificazione dei Sistemi Operativi
5.3  La fase di bootstrap
5.4  Shell testuali e GUI
5.5  La gestione dei files
5.6  Il File System
5.7  Il software applicativo
5.8  I traduttori: interpreti e compilatori
5.9  Codice sorgente e codice oggetto
5.10 Tipologie di licenze d'uso
5.11 Il software open source

6.    Reti di calcolatori ed Internet
6.1  Tipologie di reti
6.2  Reti LAN, MAN, WAN e GAN
6.3  Caratteristiche delle reti locali e delle reti geografiche
6.4  I sistemi di interconnessione
6.5  Il doppino telefonico, il cavo coassiale e le fibre ottiche
6.6  Il modem tradizionale ed il modem ISDN
6.7  Collegamento dedicato e commutato
6.8  Reti multipunto e reti punto a punto
6.9  I protocolli di comunicazione
6.10 Internet
6.11 I livelli del modello TCP/IP
6.12 Indirizzamento IP
6.13 I protocolli TCP/IP
6.14 I domini Internet
6.15 Domain Name Server
6.16 Il servizio www
6.17 Indirizzi URL
6.18 Navigare in rete
6.19 Il servizio www
6.20 Ipertesti
6.21 Il servizio di posta elettronica
6.22 Il protocollo FTP
6.23 I motori di ricerca
6.24 Il metalinguaggio HTML e gli Ipertesti
6.25 La sicurezza in rete
6.26 Il protocollo HTTPS
6.27 Cybercrime, hackers e crackers
6.28 Tipologie di attacchi informatici
6.29 I malware
6.30 Classificazione per tipologia di attacco
6.31 I software antivirus
6.32 La gestione delle password
6.33 Regole di condotta generale
6.34 Alcuni aspetti legali: profili fake e furto di identità
6.35 Cyberbullismo
6.36 La legge n.71 del 29 maggio 2017
6.37 Il sexting
6.38 Revenge porn
6.39 La legge 19 luglio 2019 n. 69 ed il codice rosso

7.    Introduzione alle basi di dati
7.1  Sistema organizzativo e sistema informativo
7.2  Sistema informatico e automazione
7.3  Il dato come risorsa aziendale
7.4  La gestione delle informazioni
7.5  La semantica dei dati
7.6  I DBMS
7.7  La condivisione dei dati: ridondanza ed incoerenza
7.8  Organizzazione dei dati in un database
7.9  Schemi e istanze
7.10 Record e campi
7.11 Definizione di chiave primaria
7.12 Le viste di dati
7.13 Le relazioni 1 ad 1, 1 a molti e molti a 1
7.14 Le transazioni
7.15 Il linguaggio SQL
7.16 CREATE TABLE, SELECT, DELETE, UPDATE e INSERT INTO
7.17 Microsoft Access: progettazione di tabelle, maschere, query e report
7.18 Microsoft Excel: progettazione di fogli di calcolo
7.19 Microsoft Word: la gestione avanzata dei testi elettronici

8.    Algoritmi e strutture dati
8.1  Il ruolo degli algoritmi nelle strutture dati
8.2  Insertion sort
8.3  Divide et impera
8.4  Heap: definizione e costruzione
8.5  L'algoritmo heapsort
8.6  L'algoritmo quicksort
8.7  Strutture dati elementari
8.8  Stack
8.9  Code
8.10 Liste concatenate
8.11 Tavole hash
8.12 Alberi binari di ricerca
8.13 Alberi rosso-neri
8.14 Strutture dati complesse
8.15 B-alberi
8.16 Grafi




A.    IL LINGUAGGIO DI PROGRAMMAZIONE C
A.1  Programmazione strutturata
A.2  Teorema di Böhm-Jacopini
A.3  Teorema di Böhm-Jacopini
A.4  I diagrammi di flusso
A.5  Integrated Development Environment (IDE)
A.6  Struttura di un programma C: Hello, world!
A.7  I tipi di dato
A.8  Dichiarazione di variabili
A.9  Definizione di costanti
A.10 Le librerie standard
A.11 I commenti all'interno del codice
A.12 Operatori di assegnamento
A.13 Operatori artimetici
A.14 Operatori logici
A.15 Operatori di confronto
A.16 Istruzione if-else
A.17 Blocchi di istruzioni
A.18 Istruzioni annidate
A.19 Variabili locali e variabili globali
A.20 Istruzione switch-case
A.21 Il ciclo for
A.22 Operatori di incremento e decremento
A.23 Il ciclo while
A.24 Il ciclo do-while
A.25 L’operatore virgola
A.26 Le istruzioni break, continue ed exit
A.27 Le variabili strutturate
A.28 Indici e lunghezza degli array
A.29 Gli array multidimensionali
A.30 Dichiarazioni e chiamate di funzioni
A.31 Passaggio di parametri
A.32 Le shell grafiche
A.33 Progettazione di un form
A.34 Gli oggetti button, textbox, label, checkbox, option button, listbox e combobox
A.35 Proprietà ed eventi associati agli oggetti


Programma completo in via di definizione


Testi di riferimento:
Slides del docente. Download qui.

Punti 1, 2, 4, 5, 6, 7, 8, A
Massimiliano Salfi
Fondamenti di informatica per ingegneri civili, ambientali e gestionali
Seconda Edizione - ISBN 9781307789744
McGraw-Hill.

Punto 3
Slides del docente

Torna alla home