Politecnico di Torino
Politecnico di Torino
   
Login  
en
Politecnico di Torino
Anno Accademico 2014/15
03MQPOV
Distributed programming I
Corso di Laurea Magistrale in Ingegneria Informatica (Computer Engineering) - Torino
Docente Qualifica Settore Lez Es Lab Anni incarico
Sisto Riccardo ORARIO RICEVIMENTO PO ING-INF/05 56 0 24 7
SSD CFU Attivita' formative Ambiti disciplinari
ING-INF/05 6 B - Caratterizzanti Ingegneria informatica
Esclusioni:
01NVW
Presentazione
Course for the Laurea Magistrale degree in Computer and Communication Networks Engineering, which is taught during the 2nd semester of the 2nd year. Part of the course (6 credits) is also offered to students of the Laurea Magistrale degree in Computer Engineering, during the 2nd semester of the 1st year.
The objective of this course is to provide the student with the knowledge and abilities required for developing distributed applications, starting with the so called 'network programming', up to the programming of a web application, including the access to a distributed relational data base.
Risultati di apprendimento attesi
• Knowledge of the socket interface in C, for network programming, including both IPv4 and IPv6 versions.
• Ability to apply the knowledge of the socket interface to implement distributed applications, including the case of dual-stack (IPv4 and IPv6) servers.
• Knowledge of HTML and CSS
• Ability to apply the knowledge of HTML and CSS to develop simple web pages.
• Knowledge of web applications that use client-side programming, server-side programming (dynamic web pages) and interaction with relational data bases.
• Ability to develop web applications that use client-side programming (Javascipt), server-side programming (PHP) and interaction with remote relational data bases.
• Knowledge of XML, of the AJAX technique, and of the principles of web services
• Ability to manipulate XML data and to use the AJAX technique using Javascript and PHP.
The last two points are only for the students of the Laurea Magistrale degree in Computer and Communication Networks Engineering.
Prerequisiti / Conoscenze pregresse
Knowledge of advanced C programming. Knowledge of database management systems and ability to describe operations on them using the SQL language. Knowledge of the main protocols for computer networks, with particular reference to HTTP, TCP, UDP, IPv4 and IPv6.
Programma
• Introduction (0,2 CFU):
 distributed interaction models (client-server, peer-to-peer, 2-tier, 3-tier, ...)
 application protocol features (interaction models, data encoding, session management, ...)

• Network programming (2,4 CFU):
 the socket interface
 remote procedure calls (RPC, RMI)
 client and server skeletons
 network programming in the C language

• Distributed applications based on the web paradigm (3 CFU):
 motivation
 the http protocol
 the CGI programming interface and its limitations
 the Javascript language
 scripting in the server-side (PHP)
 integration with data bases
 managing sessions (cookies and other mechanisms)
 web programming (PHP)

• Additional aspects of web-based applications (2 CFU, only for students of the Laurea Magistrale degree in Computer and Communication Networks Engineering):
 XML as a technique for data exchange among distributed applications
 the AJAX technique
 introduction on web services

• Remarks on performance and scalability of distributed applications (0,4 CFU)
Programma (Prof. R. Sisto)
  • 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
In addition to lectures, the course includes a programming laboratory about the application of the presented techniques. During the laboratory time, the students will discuss with the teachers about the solution of the assigned exercises. For students of the Laurea Magistrale degree in Computer and Communication Networks Engineering the course includes 24 hours of laboratory while for the other students it includes 20 hours of laboratory.
Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
The teacher will provide material (copy of transparencies) that will be available on the course web site.

Suggested textbooks:
• W.R. Stevens, B. Fenner, A. M. Rudoff, Unix Network Programming, Volume 1, 3rd Ed., Pearson, 2004
• R. Nixon, Learning PHP, MySQL & JavaScript, O’Reilly, 2009
Criteri, regole e procedure per l'esame
The exam consists of two tests followed by an oral discussion: a programming test on Network Programming (program to be developed in C) and a programming test on Web Programming (web site to be developed using HTML, CSS, JavaScript, PHP, XML, AJAX and DB access). The two tests will contribute with the same weight to the final mark. The oral exam will be used to evaluate the knowledge of the student about the taught techniques.
Criteri, regole e procedure per l'esame (Prof. R. Sisto)
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.2014/15
Indietro



© Politecnico di Torino
Corso Duca degli Abruzzi, 24 - 10129 Torino, ITALY
WCAG 2.0 (Level AA)
Contatti