Politecnico di Torino | |||||||||||||||||
Anno Accademico 2014/15 | |||||||||||||||||
01NVWOV Programmazione distribuita I |
|||||||||||||||||
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino |
|||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
Esclusioni: 03MQP |
Presentazione
The course is taught in Italian.
L’insegnamento si prefigge di far conoscere le principali tecniche per la realizzazione di applicazioni distribuite, a cominciare dalla cosiddetta "programmazione di rete", per arrivare alla programmazione di un'applicazione distribuita basata sul paradigma web che includa anche l'uso di una base dati relazionale remota. Inoltre, la trattazione è orientata a consentire allo studente di acquisire le abilità di base necessarie ad affrontare la valutazione e le principali scelte progettuali nell’ambito dei predetti argomenti. |
Risultati di apprendimento attesi
- Conoscenza dell'interfaccia socket in C per la programmazione di rete, sia nella versione per IPv4, sia in quella per IPv6.
- Capacità di applicare le conoscenze sull'interfaccia socket per realizzare applicazioni distribuite basata su questa. - Conoscenza di HTML (incluso i principali aspetti di HTML5), CSS, e Javascript. - Capacità di applicare le conoscenze sull'HTML e CSS per la realizzazione di pagine web semplici, incluso interazione con l'utente lato client tramite Javascript - Conoscenza dei meccanismi per la realizzazione di pagine web dinamiche. - Capacità di realizzare un sito web con utilizzo di programmazione lato client tramite Javascript e lato server basata su PHP, e con utilizzo di una base dati relazionale remota. |
Prerequisiti / Conoscenze pregresse
Conoscenze sulla programmazione in C di livello avanzato, inclusa gestione, comunicazione e sincronizzazione tra processi in ambiente UNIX. Conoscenze dei sistemi di gestione di basi dati relazionali e capacità di definire operazioni su di essi, in linguaggio SQL. Conoscenze sui principali protocolli per reti di calcolatori, con particolare riguardo a TCP, UDP, IPv4 e IPv6, HTTP. Per le attività di laboratorio, parte fondamentale del corso, sono richieste spiccate abilità di debugging, in particolare di applicazioni scritte in linguaggio C, e la capacità di utilizzare dei tool di analisi di traffico di rete al fine di debugging.
|
Programma (Prof. E. Masala)
Introduzione: (3 ore lezione)
- modelli di elaborazione distribuita (client-server, peer-to-peer, 2-tier, 3-tier, ...) Programmazione di rete: (12 ore lezione + 9 ore di laboratorio) - i socket - scheletro di un client e di un server - programmazione di rete in linguaggio C - le chiamate di procedura remota Applicazioni distribuite basate sul paradigma web: (24 ore lezione + 12 ore di laboratorio) - motivazioni - HTML e CSS - il linguaggio Javascript - cenni sull'interfaccia di programmazione CGI ed i suoi limiti - ambienti di programmazione lato server (PHP) - programmazione web in PHP - gestione delle sessioni (cookie ed altri meccanismi) - integrazione con le basi di dati - cenni di AJAX |
Organizzazione dell'insegnamento (Prof. E. Masala)
Il corso presenta una forte componente pratica, che prevede 7 attività di laboratorio di 3 ore ciascuna che consistono nello svolgimento di esercizi che illustrano gli aspetti più importanti degli argomenti trattati a lezione. I laboratori vertono sulla programmazione di rete (3), sull’utilizzo di HTML e CSS (1), su Javascript (1) e sulla programmazione web lato server con accesso al database (2).
|
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico (Prof. E. Masala)
Saranno disponibili copie elettroniche integrali dei lucidi presentati in aula. Tutto il materiale didattico è scaricabile attraverso il portale della didattica.
Testi di riferimento e approfondimento: R. Stevens, 'Unix Network Programming', Addison Wesley. |
Criteri, regole e procedure per l'esame (Prof. E. Masala)
Lo studente dovrà sviluppare in autonomia e consegnare entro la data stabilita per ogni appello un’applicazione, con specifiche assegnate, riguardante la creazione di un sito web in PHP con accesso ad una base dati.
Inoltre, lo studente dovrà sostenere una prova al calcolatore, il giorno dell’appello, riguardante la creazione di un’applicazione di rete client e/o server in linguaggio C, con specifiche assegnate. Lo studente dovrà infine sostenere una breve colloquio orale di discussione delle scelte implementative effettuate nelle applicazioni, che consentirà di assegnare un voto ad entrambe le prove, che devono essere entrambe sufficienti. In questo caso, il voto finale sarà la media dei voti delle due parti. |
Orario delle lezioni |
Statistiche superamento esami |
|