Insegnamento INTERNET AND WEB PROGRAMMING

Nome del corso di laurea Ingegneria informatica e robotica
Codice insegnamento A005836
Curriculum Data science e data engineering
Docente responsabile Walter Didimo
Docenti
  • Walter Didimo
Ore
  • 48 Ore - Walter Didimo
CFU 6
Regolamento Coorte 2026
Erogato Erogato nel 2026/27
Erogato altro regolamento
Attività Caratterizzante
Ambito Ingegneria informatica
Settore IINF-05/A
Anno 1
Periodo Primo Semestre
Tipo insegnamento Obbligatorio (Required)
Tipo attività Attività formativa monodisciplinare
Lingua insegnamento Italiano
Contenuti I servizi in Internet. Progetto di applicazioni client/server. Sviluppo di applicazioni e servizi per il Web
Testi di riferimento La disciplina affronta un insieme di metodologie e tecnologie che non sono contenute in un singolo libro di testo.
Gli argomenti trattati sono illustrati in una collezione di dispense a cura del docente.

Obiettivi formativi L'insegnamento si 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.

(e) capacità di realizzare applicazioni Web, attraverso alcune tecnologie ampiamente diffuse, come HTML/CSS, Jascript, Node.Js e Java.
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. Queste nozioni sono tipicamente acquisite in un percorso triennale in ingegneria informatica o in informatica.
Metodi didattici Il corso si articola in due principali tipologie di lezioni:

(i) Lezioni frontali (per circa il 50% del tempo totale). 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 50% 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 applicazioni in Internet e per il Web

I risultati della prova sono presentati 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]. Richiami 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).

[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 e secure socket TCP. Studi di caso: client Web, ChatLine. Connessioni di rete tramite socket UDP.

[Applicazioni e servizi Web]. Formati di descrizione dei dati: XML, JSON. Applicazioni Web e Web Services: principi architetturali e tipologie di Web Services (SOAP-based e RESTful). Linguaggi, protocolli e tecnologie di sviluppo di applicazioni Web: HTML/CSS, Java Servlet e tecnologie correlate, Javascipt, AJAX, Node.js, Web socket e gRPC.
Obiettivi Agenda 2030 per lo sviluppo sostenibile