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 |
|
Ore |
|
CFU | 6 |
Regolamento | Coorte 2025 |
Erogato | Erogato nel 2025/26 |
Erogato altro regolamento | |
Attività | Caratterizzante |
Ambito | Ingegneria informatica |
Settore | ING-INF/05 |
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 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): 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 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 |