Insegnamento PROGRAMMAZIONE PER INTERNET E WEB

Corso
Ingegneria informatica e robotica
Codice insegnamento
A003178
Curriculum
Robotics
Docente
Walter Didimo
Docenti
  • Walter Didimo
Ore
  • 72 ore - Walter Didimo
CFU
9
Regolamento
Coorte 2022
Erogato
2022/23
Attività
Caratterizzante
Ambito
Ingegneria informatica
Settore
ING-INF/05
Tipo insegnamento
Opzionale (Optional)
Tipo attività
Attività formativa monodisciplinare
Lingua insegnamento
ITALIANO
Contenuti
I servizi in Internet. Progetto di applicazioni client/server in Java. Sviluppo di applicazioni e servizi per il Web
Testi di riferimento
La disciplina affronta un insieme di metodologie e tecnologie correlate che non sono contenute in un singolo libro di testo.
Al fine di facilitare lo studente, la maggior parte degli argomenti trattati sono illustrati in dispense a cura del docente.

In aggiunta, vengono consigliati alcuni testi di riferimento o tutorial per approfondimenti sui vari argomenti del corso. Tra questi:

(i) J. Kurose e K. Ross, Internet e Reti di Calcolatori, McGraw-Hill (per la parte relativa alle applicazioni di rete più diffuse)
(ii) Ken Arnold, James Gosling, David Holmes,
Java: Manuale Ufficiale, Addison-Wesley (per aspetti tecnici sulla programmazione avanzate in Java)
(iii) tutorial on-line dal sito w3c (per la parte di sviluppo di applicazioni e servizi Web)
Obiettivi formativi
L'insegnamento di prefigge di impartire agli studenti le nozioni teoriche e pratiche sulle applicazioni client/server e sullo sviluppo di servizi Web. In particolare, al termine del corso lo studente avrà acquisito:

(a) conoscenza dei principi delle architetture client/server;

(b) conoscenza di strumenti di programmazione avanzata in Java per la realizzazione di applicazioni distribuite.

(c) conoscenza delle principali metodologie per il progetto e lo sviluppo di applicazioni per il Web.

(d) capacità di realizzare servizi ad architettura client/server attraverso il linguaggio Java, sia utilizzando direttamente socket a basso livello sia attraverso tecnologie di più alto livello, quali RMI.

(e) capacità di sapersi orientare tra le varie tecnologie disponibili per la realizzazione di servizi Web, e capacità di applicare alcune tecnologie per lo sviluppo lato client e lato server.
Prerequisiti
Sono richieste conoscenze di base relativamente alla progettazione e all'analisi di algoritmi, nonché conoscenze di programmazione imperativa e ad oggetti tramite il linguaggio Java, impartite negli insegnamenti di Fondamenti di Informatica.
Consigliate nozioni di ingegneria del software.
Metodi didattici
Il corso si articola in due principali tipologie di lezioni:

(i) Lezioni frontali (per circa il 60% del tempo totale): vengono svolte lezioni frontali in aula. Ogni lezione consiste nell'illustrazione da parte del docente di nuovi concetti teorici, attraverso la proiezione di appositi lucidi.

(ii) Esercitazioni guidate in laboratorio (per circa il 40% del tempo totale): si svolgono nel laboratorio di ingegneria del software, e prevedono la progettazione e l'implementazione di programmi sotto la guida del docente.
Altre informazioni

Modalità di verifica dell'apprendimento
[Obiettivi della valutazione]. I metodi di valutazione di questo insegnamento cercano di quantificare le conoscenze teoriche acquisite dallo studente, nonché le sue capacità di applicare tali conoscenze per la risoluzione di problemi teorici e applicativi. Il tipo di prova è dettagliato di seguito.

Esame scritto di natura teorica e prova di programmazione pratica

Durata: 2 ore
Obiettivo: accertare le conoscenze sui concetti teorici impartiti nell'insegnamento e valutare abilità di programmazione per le reti


I risultati della prova è presentata allo studente durante un breve colloquio, in cui lo studente può confutare i giudizi del docente.

Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Programma esteso
[I servizi in Internet]. Nozioni sull'architettura della rete Internet. Servizi in Internet: principi delle architetture client/server. Analisi di alcune applicazioni di largo uso: World Wide Web (HTTP), posta elettronica (SMTP), collegamento remoto (telnet), trasferimento file (ftp), DNS.

[Progetto di applicazioni client/server in Java]. Strumenti avanzati di programmazione: gestione degli errori, multithreading, gestione dell'input/output. Progettazione di protocolli di comunicazione. Connessioni di rete tramite socket TCP. Studi di caso: client Web, client SMTP, ChatLine. Connessioni di rete tramite socket UDP. Middleware per applicazioni distribuite: Remote Method Invocation (RMI).

[Applicazioni e servizi Web]. Formati di interscambio dati: XML, JSON. Applicazioni Web e Web Services: principi architetturali e tipologie di Web Services (SOAP-based e RESTful). HTML, CSS, Servlet, Javascipt, AJAX, Node.js.
Condividi su