ID:
133556
Tipo Insegnamento:
Opzionale
Durata (ore):
0
CFU:
0
Url:
INGEGNERIA ELETTRONICA E INFORMATICA/Ingegneria informatica - Sistemi web Anno: 3
Anno:
2024
Dati Generali
Periodo di attività
Annualità Singola (19/09/2024 - 05/06/2025)
Syllabus
Obiettivi Formativi
I principali obiettivi formativi dell’insegnamento sono:
- fornire agli studenti le basi per affrontare l’analisi e la progettazione delle basi di dati relazionali;
- fornire agli studenti 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;
- linguaggio SQL;
- teoria e metodi di normalizzazione di una base di dati relazionale;
- progettazione fisica;
- indici e loro implementazione;
- cenni di database NoSQL;
- 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.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- progettare e implementare basi di dati relazionali in base alle specifiche analizzate;
- eseguire interrogazioni complesse in SQL su una base di dati relazionale;
- sviluppare applicazioni distribuite secondo il modello Client/Server, utilizzando gli
strumenti Unix e Java per la programmazione di rete.
- fornire agli studenti le basi per affrontare l’analisi e la progettazione delle basi di dati relazionali;
- fornire agli studenti 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;
- linguaggio SQL;
- teoria e metodi di normalizzazione di una base di dati relazionale;
- progettazione fisica;
- indici e loro implementazione;
- cenni di database NoSQL;
- 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.
Le principali abilità (ossia la capacità di applicare le conoscenze acquisite) saranno:
- progettare e implementare basi di dati relazionali in base alle specifiche analizzate;
- eseguire interrogazioni complesse in SQL su una base di dati relazionale;
- sviluppare applicazioni distribuite secondo il modello Client/Server, utilizzando gli
strumenti Unix e Java per la programmazione di rete.
Prerequisiti
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 006435 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 - 006435 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 - 006435 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Lezioni in aula ed esercitazioni in laboratorio.
Studio ed esercitazioni individuali.
Ricevimento individuale.
------------------------------------------------------------
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 - 006435 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
Lezioni in aula ed esercitazioni in laboratorio.
Studio ed esercitazioni individuali.
Ricevimento individuale.
------------------------------------------------------------
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 4 prove: 1 prove scritta, una presentazione di progetto, una prova di laboratorio e una prova orale.
1. Al fine di verificare le conoscenze teoriche relative alle basi di dati e la conoscenza del linguaggio SQL, viene svolta una prova scritta caratterizzata da domande aperte e interrogazioni SQL su uno schema di base di dati relazionale fornito dal docente.
Nella prova scritta non è ammesso utilizzare appunti.
2. Al fine di verificare la capacità di progettare ed implementare una base di dati è previsto lo sviluppo di una base di dati relazionale (a scelta dello studente) e la realizzazione di 4 interrogazioni SQL complesse da eseguire su di essa. Il progetto verrà presentato oralmente al docente con il laptop dello studente, dopo il superamento della prova scritta.
3. Al fine di verificare la capacità di progettare e implementare un servizio Internet, è prevista una prova all’elaboratore in cui è richiesto allo studente di progettare un'applicazione distribuita Client/Server utilizzando sia le Socket Unix che le Socket Java. La prova sarà svolta in uno dei laboratori informatici del Polo Scientifico-Tecnologico.
4. Dopo il superamento della prova di laboratorio al punto precedente si deve sostenere la prova orale, per verificare la preparazione anche sulle parti teoriche del corso.
Alla prova orale e alla presentazione di progetto viene assegnato un punteggio differenziale, ovverosia tali prove possono incrementare o diminuire il voto delle rispettive prove scritte/di laboratorio di massimo 4 punti.
Il voto finale è ottenuto come media dei due punteggi finali.
1. Al fine di verificare le conoscenze teoriche relative alle basi di dati e la conoscenza del linguaggio SQL, viene svolta una prova scritta caratterizzata da domande aperte e interrogazioni SQL su uno schema di base di dati relazionale fornito dal docente.
Nella prova scritta non è ammesso utilizzare appunti.
2. Al fine di verificare la capacità di progettare ed implementare una base di dati è previsto lo sviluppo di una base di dati relazionale (a scelta dello studente) e la realizzazione di 4 interrogazioni SQL complesse da eseguire su di essa. Il progetto verrà presentato oralmente al docente con il laptop dello studente, dopo il superamento della prova scritta.
3. Al fine di verificare la capacità di progettare e implementare un servizio Internet, è prevista una prova all’elaboratore in cui è richiesto allo studente di progettare un'applicazione distribuita Client/Server utilizzando sia le Socket Unix che le Socket Java. La prova sarà svolta in uno dei laboratori informatici del Polo Scientifico-Tecnologico.
4. Dopo il superamento della prova di laboratorio al punto precedente si deve sostenere la prova orale, per verificare la preparazione anche sulle parti teoriche del corso.
Alla prova orale e alla presentazione di progetto viene assegnato un punteggio differenziale, ovverosia tali prove possono incrementare o diminuire il voto delle rispettive prove scritte/di laboratorio di massimo 4 punti.
Il voto finale è ottenuto come media dei due punteggi finali.
Testi
------------------------------------------------------------
Insegnamento raggruppato: 006435 - BASI DI DATI (mutua dall'attività formativa BASI DI DATI - 006435 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 - 006435 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 - 006435 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
- Introduzione alle basi di dati
- Progettazione concettuale e diagramma ER
- Modello relazionale
- Il linguaggio SQL
- Normalizzazione
- Transazioni
- Strutture di indicizzazione
- Basi di dati NoSQL
------------------------------------------------------------
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 - 006435 del CdS INGEGNERIA ELETTRONICA E INFORMATICA - 1328)
------------------------------------------------------------
- Introduzione alle basi di dati
- Progettazione concettuale e diagramma ER
- Modello relazionale
- Il linguaggio SQL
- Normalizzazione
- Transazioni
- Strutture di indicizzazione
- Basi di dati NoSQL
------------------------------------------------------------
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