ID:
163392
Tipo Insegnamento:
Opzionale
Durata (ore):
0
CFU:
0
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica1 Anno: 3
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica2 Anno: 3
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica3 Anno: 3
Anno:
2025
Dati Generali
Periodo di attività
Annualità Singola (22/09/2025 - 05/06/2026)
Syllabus
Obiettivi Formativi
I principali obiettivi formativi dell’insegnamento sono: - fornire allo studente le fondamenta per affrontare l’analisi e la progettazione delle basi di dati relazionali; - fornire allo studente una chiara visione dell'architettura della rete Internet e dei modelli e tecnologie per lo sviluppo di servizi IT. Le principali conoscenze acquisite saranno: - elementi di base riguardo l'analisi e la modellazione concettuale di una base di dati relazionale; - conoscenze relative all’algebra relazionale e al linguaggio SQL; - teoria e metodi di normalizzazione di una base di dati relazionale; - transazioni e sicurezza; - modello Client/Server; - architettura dei principali protocolli e servizi Internet; - modelli di programmazione di rete (socket, RPC, ecc.); - principali problematiche di sicurezza nelle reti di calcolatori.
Prerequisiti
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Aver seguito i corsi di Informatica di base.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso richiede la conoscenza approfondita dei linguaggi C e Java e del sistema operativo Unix. Quindi si assume (ma non è «formalmente» obbligatorio) che siano stati superati gli esami di Fondamenti di Informatica (entrambi i moduli) per la L-8, Programmazione e laboratorio per la L-31, e Sistemi Operativi.
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Aver seguito i corsi di Informatica di base.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso richiede la conoscenza approfondita dei linguaggi C e Java e del sistema operativo Unix. Quindi si assume (ma non è «formalmente» obbligatorio) che siano stati superati gli esami di Fondamenti di Informatica (entrambi i moduli) per la L-8, Programmazione e laboratorio per la L-31, e Sistemi Operativi.
Metodi didattici
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Lezioni in aula ed esercitazioni in laboratorio. Studio ed esercitazioni individuali.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso è organizzato nel seguente modo:
-lezioni frontali in aula su tutti gli argomenti del corso;
-esercitazioni nei Laboratori di Informatica INFO1 e INFO2 per il progetto e lo sviluppo di semplici applicazioni distribuite Client/Server utilizzando le Socket in ambienti Unix/C e Java.
Al termine delle esercitazioni guidate gli studenti avranno libero accesso al laboratorio per ulteriori esercitazioni individuali.
Le lezioni dell'insegnamento sono esplicitamente pensate per essere fruite in presenza, e hanno natura interattiva. Esclusivamente come supporto allo studio, sarà resa disponibile una versione registrata (possibilmente effettuata nelle edizioni precedenti dell'insegnamento) delle lezioni frontali (escluse quindi le esercitazioni di laboratorio) nel minisito Google Classroom dell'insegnamento (codice c25muci).
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Lezioni in aula ed esercitazioni in laboratorio. Studio ed esercitazioni individuali.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso è organizzato nel seguente modo:
-lezioni frontali in aula su tutti gli argomenti del corso;
-esercitazioni nei Laboratori di Informatica INFO1 e INFO2 per il progetto e lo sviluppo di semplici applicazioni distribuite Client/Server utilizzando le Socket in ambienti Unix/C e Java.
Al termine delle esercitazioni guidate gli studenti avranno libero accesso al laboratorio per ulteriori esercitazioni individuali.
Le lezioni dell'insegnamento sono esplicitamente pensate per essere fruite in presenza, e hanno natura interattiva. Esclusivamente come supporto allo studio, sarà resa disponibile una versione registrata (possibilmente effettuata nelle edizioni precedenti dell'insegnamento) delle lezioni frontali (escluse quindi le esercitazioni di laboratorio) nel minisito Google Classroom dell'insegnamento (codice c25muci).
Verifica Apprendimento
L'esame consiste di 2 prove scritte, una presentazione di un progetto e 1 prova orale.
1. Al fine di verificare le conoscenze teoriche delle basi di dati viene svolta una prova scritta costituita da: 4 domande aperte su tutti gli argomenti trattati nel corso e esercizi su linguaggio SQL.
2. Al fine di verificare le conoscenze sulle applicazioni distribuite viene svolta una prova scritta all'elaboratore, in cui sarà richiesto di progettare un'applicazione distribuita Client/Server utilizzando sia le Socket Unix che le Socket Java.
Per superare le prove scritte è necessario acquisire almeno 18 punti.
3. Al fine di verificare la capacità di progettare semplici basi di dati viene assegnato un progetto di sviluppo. La presentazione del progetto deve seguire la prima prova scritta (anche per i progetti in coppia). Il progetto può essere svolto singolarmente o in coppia e riguarda la documentazione, progettazione e implementazione di un sistema di basi di dati funzionante. Agli studenti del curriculum INGEGNERIA INFORMATICA - SISTEMI WEB (Cento) è data la possibilità di realizzare un progetto unico valutabile negli insegnamentni di Basi di dati e Ingegneria dei Sistemi Web.
4. Al fine di verificare la preparazione sulle applicazioni distribuite non interessate dalla seconda prova scritta, lo studente deve sostenere una prova orale.
1. Al fine di verificare le conoscenze teoriche delle basi di dati viene svolta una prova scritta costituita da: 4 domande aperte su tutti gli argomenti trattati nel corso e esercizi su linguaggio SQL.
2. Al fine di verificare le conoscenze sulle applicazioni distribuite viene svolta una prova scritta all'elaboratore, in cui sarà richiesto di progettare un'applicazione distribuita Client/Server utilizzando sia le Socket Unix che le Socket Java.
Per superare le prove scritte è necessario acquisire almeno 18 punti.
3. Al fine di verificare la capacità di progettare semplici basi di dati viene assegnato un progetto di sviluppo. La presentazione del progetto deve seguire la prima prova scritta (anche per i progetti in coppia). Il progetto può essere svolto singolarmente o in coppia e riguarda la documentazione, progettazione e implementazione di un sistema di basi di dati funzionante. Agli studenti del curriculum INGEGNERIA INFORMATICA - SISTEMI WEB (Cento) è data la possibilità di realizzare un progetto unico valutabile negli insegnamentni di Basi di dati e Ingegneria dei Sistemi Web.
4. Al fine di verificare la preparazione sulle applicazioni distribuite non interessate dalla seconda prova scritta, lo studente deve sostenere una prova orale.
Testi
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
L'impostazione del corso si basa su: Ramez A. Elmasri, Shamkant B. Navathe. Sistemi di basi di dati. Fondamenti e complementi. Settima edizione, 2018, Pearson Addison Wesley. Reperibile in biblioteca.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Non esiste un unico libro di testo che contenga tutto il materiale presentato a lezione. Il docente propone quindi un elenco di libri, suddivisi tra libri di carattere più introduttivo/generale e libri che coprono con maggiore dettaglio alcuni specifici argomenti del corso.
Il testo che fornisce la più ampia copertura della maggior parte degli argomenti del corso, seguendo la stessa impostazione, è il Kurose-Ross:
J. Kurose, K. Ross, "Reti di Calcolatori - Un approccio top-down a Internet ", Pearson Education Italia, 8a edizione, 2022.
Il Kurose-Ross è da molti considerato il testo di riferimento del settore e fornisce una trattazione un po' più teorica e sicuramente più ampia degli argomenti rispetto ad altri testi.
Un altro testo con ampia copertura degli argomenti del corso, ma con una diversa impostazione è:
A.S. Tanenbaum, D. Wetherall, "Reti di calcolatori", 6a edizione, Pearson Education Italia, 2023.
Il Tanenbaum-Wetherall rappresenta un ottimo riferimento per approfondire alcuni argomenti specifici, ma l'approccio bottom-up adottato lo rende decisamente meno adatto ai fini di questo corso rispetto al Kurose-Ross.
Altri testi con trattazione più approfondita di alcuni argomenti (indicati tra parentesi):
E. Harold, "Java Network Programming", 4th Edition, O'Reilly, 2013 (Socket Java)
M. Kerrisk, "The Linux Programming Interface", No Starch Press, 2010 (Unix)
W.R. Stevens et al., "Advanced Programming in the UNIX Environment", 3rd Edition, Addison-Wesley, 2013 (Unix)
W.R. Stevens et al., "Unix Network Programming - Vol.1", 3rd Edition, Addison-Wesley, 2003 (Socket Unix)
W.R. Stevens et al., "TCP/IP Illustrated: the protocols - Vol.1", 2nd Edition, Addison-Wesley, 2012 (TCP/IP)
W. Stallings, L. Brown, "Computer Security: Principles and Practice", 2nd Edition, Prentice Hall, 2011 (Security)
J. Forshaw, "Attacking Network Protocols", No Starch Press, 2017 (Security and protocol analysis)
C. Sanders, "Practical Packet Analysis", 3rd Edition, No Starch Press, 2017 (Protocol analysis and debugging)
R. Seacord, "Effective C", No Starch Press, 2020 (Modern C)
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
L'impostazione del corso si basa su: Ramez A. Elmasri, Shamkant B. Navathe. Sistemi di basi di dati. Fondamenti e complementi. Settima edizione, 2018, Pearson Addison Wesley. Reperibile in biblioteca.
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Non esiste un unico libro di testo che contenga tutto il materiale presentato a lezione. Il docente propone quindi un elenco di libri, suddivisi tra libri di carattere più introduttivo/generale e libri che coprono con maggiore dettaglio alcuni specifici argomenti del corso.
Il testo che fornisce la più ampia copertura della maggior parte degli argomenti del corso, seguendo la stessa impostazione, è il Kurose-Ross:
J. Kurose, K. Ross, "Reti di Calcolatori - Un approccio top-down a Internet ", Pearson Education Italia, 8a edizione, 2022.
Il Kurose-Ross è da molti considerato il testo di riferimento del settore e fornisce una trattazione un po' più teorica e sicuramente più ampia degli argomenti rispetto ad altri testi.
Un altro testo con ampia copertura degli argomenti del corso, ma con una diversa impostazione è:
A.S. Tanenbaum, D. Wetherall, "Reti di calcolatori", 6a edizione, Pearson Education Italia, 2023.
Il Tanenbaum-Wetherall rappresenta un ottimo riferimento per approfondire alcuni argomenti specifici, ma l'approccio bottom-up adottato lo rende decisamente meno adatto ai fini di questo corso rispetto al Kurose-Ross.
Altri testi con trattazione più approfondita di alcuni argomenti (indicati tra parentesi):
E. Harold, "Java Network Programming", 4th Edition, O'Reilly, 2013 (Socket Java)
M. Kerrisk, "The Linux Programming Interface", No Starch Press, 2010 (Unix)
W.R. Stevens et al., "Advanced Programming in the UNIX Environment", 3rd Edition, Addison-Wesley, 2013 (Unix)
W.R. Stevens et al., "Unix Network Programming - Vol.1", 3rd Edition, Addison-Wesley, 2003 (Socket Unix)
W.R. Stevens et al., "TCP/IP Illustrated: the protocols - Vol.1", 2nd Edition, Addison-Wesley, 2012 (TCP/IP)
W. Stallings, L. Brown, "Computer Security: Principles and Practice", 2nd Edition, Prentice Hall, 2011 (Security)
J. Forshaw, "Attacking Network Protocols", No Starch Press, 2017 (Security and protocol analysis)
C. Sanders, "Practical Packet Analysis", 3rd Edition, No Starch Press, 2017 (Protocol analysis and debugging)
R. Seacord, "Effective C", No Starch Press, 2020 (Modern C)
Contenuti
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
- Introduzione alle basi di dati - Progettazione concettuale e diagramma EER - Algebra relazionale - Modello relazionale - Il linguaggio SQL - Normalizzazione - Transazioni - Sicurezza nelle basi di dati
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso prevede 60 ore di didattica tra lezioni ed esercitazioni, più 4 ore di approfondimenti. In particolare sono previste 45 ore di lezione in aula e 15 ore di esercitazioni guidate in laboratorio.
Gli argomenti affrontati durante il corso sono:
- Introduzione alle reti di calcolatori e ai sistemi distribuiti
- Inter Process Communication per applicazioni distribuite
- Il modello Client/Server
- Naming e binding
- Le Socket in Java e in Unix - sviluppo di sistemi Client/Server
- Strumenti per il testing e il debug di applicazioni distribuite
- Gestione dell’eterogeneità nei sistemi distribuiti
- Modelli architetturali per la realizzazione di Server
- Remote Procedure Call (RPC)
- I servizi Internet e loro realizzazione (telnet, FTP, e-mail, etc.)
- Sistemi Web, servizi, linguaggi e protocolli
- Il problema della sicurezza in Internet
- Oltre il modello Client/Server
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 75417 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
- Introduzione alle basi di dati - Progettazione concettuale e diagramma EER - Algebra relazionale - Modello relazionale - Il linguaggio SQL - Normalizzazione - Transazioni - Sicurezza nelle basi di dati
------------------------------------------------------------
Insegnamento raggruppato: 133554 - ARCHITETTURA E SVILUPPO SERVIZI INTERNET (mutua dall'attività formativa ARCHITETTURA E SVILUPPO SERVIZI INTERNET - 133555 del CdS INFORMATICA - 1233)
------------------------------------------------------------
Il corso prevede 60 ore di didattica tra lezioni ed esercitazioni, più 4 ore di approfondimenti. In particolare sono previste 45 ore di lezione in aula e 15 ore di esercitazioni guidate in laboratorio.
Gli argomenti affrontati durante il corso sono:
- Introduzione alle reti di calcolatori e ai sistemi distribuiti
- Inter Process Communication per applicazioni distribuite
- Il modello Client/Server
- Naming e binding
- Le Socket in Java e in Unix - sviluppo di sistemi Client/Server
- Strumenti per il testing e il debug di applicazioni distribuite
- Gestione dell’eterogeneità nei sistemi distribuiti
- Modelli architetturali per la realizzazione di Server
- Remote Procedure Call (RPC)
- I servizi Internet e loro realizzazione (telnet, FTP, e-mail, etc.)
- Sistemi Web, servizi, linguaggi e protocolli
- Il problema della sicurezza in Internet
- Oltre il modello Client/Server
Lingua Insegnamento
Italiano.
Corsi
Corsi
3 anni
No Results Found