en
Politecnico di Torino
Anno Accademico 2012/13
01NVWOV
Programmazione distribuita I
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Tut Anni incarico
Masala Enrico ORARIO RICEVIMENTO A2 IINF-05/A 40 0 20 0 7
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
Presentazione
The course is taught in Italian.

Il corso fornisce le conoscenze 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.
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.
- Capacita' di applicare le conoscenze sull'interfaccia socket per realizzare applicazioni distribuite basata su questa.
- Conoscenza di HTML (incluso alcuni aspetti di HTML5) e CSS
- Capacita' di applicare le conoscenze sull'HTML 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.
- Capacita' 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 capacita' 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.
Programma
Introduzione:
- modelli di elaborazione distribuita (client-server, peer-to-peer, 2-tier, 3-tier, ...)
Programmazione di rete:
- i socket
- le chiamate di procedura remota
- scheletro di un client e di un server
- programmazione di rete in linguaggio C
Applicazioni distribuite basate sul paradigma web:
- 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
Verranno svolte delle esercitazioni laboratorio in cui si applicheranno le tecniche illustrate in aula.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
Il materiale verra' fornito dal docente e sara' disponibile sull'apposito sito del corso.
R. Stevens, 'Unix Network Programming', Addison Wesley.
Criteri, regole e procedure per l'esame
Lo studente dovra' sviluppare in autonomia e consegnare entro le date stabilite le seguenti applicazioni:
- creazione di un'applicazione di rete client e/o server in linguaggio C, con specifiche assegnate
- creazione di un sito web in PHP con accesso a base dati, con specifiche assegnate
Lo studente dovrà inoltre sostenere una breve colloquio orale di discussione delle scelte implementative effettuate nelle applicazioni.
Orario delle lezioni
Statistiche superamento esami

Programma definitivo per l'A.A.2012/13
Indietro