en
Politecnico di Torino
Anno Accademico 2015/16
03NQVOC
Distributed programming
Corso di Laurea Magistrale in Ingegneria Telematica (Computer And Communication Networks Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Sisto Riccardo ORARIO RICEVIMENTO PO IINF-05/A 56 0 24 0 5
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 8 D - A scelta dello studente A scelta dello studente
Presentazione
Insegnamento per la Laurea Magistrale in Computer and Communication Networks Engineering, collocato al II p.d. del II anno. Il corso fornisce le conoscenze per la realizzazione di applicazioni distribuite, a cominciare dalla così detta 'programmazione di rete', per arrivare alla programmazione di un sito web, che includa anche l'uso di una base dati relazionale remota.
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 basate su questa, anche nel caso di server dual-stack (IPv4 e IPv6)
Conoscenza dell'HTML
Capacità di applicare le conoscenze sull'HTML per la realizzazione di pagine web semplici
Conoscenza dei meccanismi per la realizzazione di pagine web dinamiche.
Conoscenza dell'XML e della tecnica AJAX.
Capacità di realizzare un sito web con utilizzo di programmazione lato server e client basata su pagine dinamiche e tecnica AJAX, e con utilizzo di una base dati relazionale remota
Prerequisiti / Conoscenze pregresse
Conoscenze sulla programmazione in C di livello avanzate. 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.
Programma
Introduzione: (0,2 CFU)

modelli di elaborazione distribuita (client-server, peer-to-peer, 2-tier, 3-tier, ...)
generalità relative ai protocolli applicativi (modalità di interazione, codifica dei dati, gestione delle sessioni, ...)

Programmazione di rete: (2,4 CFU)

i socket
le chiamate di procedura remota (RPC, RMI)
scheletro di un client e di un server
programmazione di rete in linguaggio C

Applicazioni distribuite basate sul paradigma web: (5 CFU)

Parte comune a tutti gli studenti (3 CFU)
motivazioni
il protocollo HTTP
l'interfaccia di programmazione CGI ed i suoi limiti
il linguaggio Javascript
ambienti di scripting lato server (PHP)
integrazione con le basi di dati
gestione delle sessioni (cookie ed altri meccanismi)
programmazione web (PHP)
Parte avanzata, solo per gli studenti del corso in Ingegneria Telematica (2 CFU)
XML come tecnica per lo scambio di dati tra applicazioni eterogenee
la tecnica AJAX
cenni sui web services
Cenni su prestazioni e scalabilità delle applicazioni distribuite (0,4 CFU)
Organizzazione dell'insegnamento
Verranno svolte delle esercitazioni in laboratorio in cui si applicheranno le tecniche illustrate in aula.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Il docente fornirà materiale didattico (copia delle trasparenze) che sarà disponibile sull'apposito sito del corso.

Vengono consigliati i seguenti testi:
W.R. Stevens, B. Fenner, A. M. Rudoff, Network Programming, Volume 1, 3rd Ed., Pearson, 2004
R. Nixon, Learning PHP, MySQL & JavaScript, O’Reilly, 2009
Criteri, regole e procedure per l'esame
Ai fini della valutazione finale verrà assegnato un esercizio di programmazione che comprende:
la realizzazione di un server e/o di un client di rete in linguaggio C
la creazione di un sito web

Completerà l’esame un colloquio nel quale verranno discusse le soluzioni dell’esercizio assegnato, con riferimento al programma del corso.
Altre informazioni

L'esame comprende due prove di programmazione (una prova di programmazione di rete e una prova di programmazione web). Ai fini del superamento dell'esame è necessario superare entrambe le prove. Per gli studenti del corso in Ingegneria Telematica, al voto finale la prova di programmazione di rete contribuisce per il 40% e la prova di programmazione web per il restante 60%, mentre per gli studenti del corso in Ingegneria Informatica le due prove contribuiscono nella stessa misura.
La prova di programmazione di rete si svolge al LABINF nella medesima data dell'appello. Essa consiste nello sviluppo di codice client e/o server in linguaggio C, con specifiche assegnate, svolto direttamente sulle macchine del LABINF.
La prova di programmazione web invece viene svolta da ciascuno studente in autonomia a casa. Per ogni appello d'esame, 2-3 settimane prima della data dell'appello, viene assegnato l'esercizio di programmazione web il cui elaborato va sviluppato secondo le specifiche date e consegnato entro la scadenza indicata. Solo gli studenti che consegnano la soluzione della prova web entro la scadenza possono accedere alla prova di programmazione di rete. Chi supera anche la prova di programmazione di rete può accedere ad un breve orale, che consiste nella discussione delle prove di programmazione svolte e nell'attribuzione del voto.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2015/16
Indietro