Vai al contenuto principale
Oggetto:
Oggetto:

TECNOLOGIE WEB: APPROCCI AVANZATI

Oggetto:

WEB TECHNOLOGIES: ADVANCED APPROACHES

Oggetto:

Anno accademico 2021/2022

Codice dell'attività didattica
CPS0547
Docente
Annamaria Goy (Titolare dell'insegnamento)
Corso di studi
Corso di laurea magistrale in Comunicazione, ICT e media (Classe LM-59)
Anno
1° anno
Periodo didattico
Primo semestre
Tipologia
Caratterizzante
Crediti/Valenza
9
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto ed orale
Prerequisiti

Nozioni di base di: architettura dei calcolatori; software e sistemi operativi; reti e internet; linguaggi di programmazione; HTML e CSS, programmazione Web (si veda anche la sez. Testi consigliati e bibliografia/Testi di riferimento).

Basic notions about: computer architectures; software and operating systems; networks and internet; programming languages; HTML and CSS, Web programming (see also section Testi consigliati e bibliografia/Testi di riferimento).
Propedeutico a

Propedeutico per i corsi di
Intelligenza artificiale,
Programmazione mobile: Android,
Programmazione avanzata: Python e Arduino,
Web of open and secure data.

Preparatory for
Artificial Intelligence,
Mobile programming: Android,
Advanced Programming: Python and Arduino,
Web of open and secure data.
Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

Oggigiorno, la maggioranza soluzioni informatiche per la gestione dell'informazione, della comunicazione e della conoscenza - tanto in azienda quanto sul territorio e nella Pubblica Amministrazione - sono applicazioni o servizi che si basano sulle tecnologie Web.

L'obiettivo dell'insegnamento è quello di mettere gli studenti in grado di sviluppare un'applicazione o servizio Web, utilizzando i corretti paradigmi architetturali e le corrette metodologie di sviluppo.

L'insegnamento si propone di rendere lo studente autonomo nella scelta e nell'utilizzo degli strumenti necessari per lo sviluppo di applicazioni e servizi sul Web.

Nowadays, the majority of ICT solutions for the management of information, communication, and knowledge - both for business and for the territory and the Public Administration - are based on Web technologies.

The goal of the course is to enable students to develop a Web-based application or service, using the correct architectural paradigms and the correct development methodologies.

The course aims at making students autonomous in the choice and usage of tools needed to develop applications and services on the Web.

Oggetto:

Risultati dell'apprendimento attesi

Al termine dell'insegnamento lo studente avrà le seguenti competenze:

a) Conoscenza e capacità di comprensione: conoscenza delle architetture, dei paradigmi, delle metodologie di programmazione, delle soluzioni tecnologiche per lo sviluppo di applicazioni e servizi Web.

b) Capacità di applicare conoscenza e comprensione: capacità di utilizzare tali conoscenze per realizzare applicazioni e servizi Web.

c) Autonomia di giudizio: capacità di valutare le tecnologie, i paradigmi e le metodologie più appropriate per lo sviluppo di applicazioni e servizi Web.

d) Abilità comunicative: capacità di comunicare e interagire efficacemente con team interdisciplinari di sviluppo Web.

e) Capacità di apprendimento: capacità di apprendere rapidamente ed efficacemente l'utilizzo di nuove metodologie e tecnologie emergenti nell'ambito dello sviluppo Web.

At the end of the course, students will have the following know-how:

a) Knowledge and understanding: knowledge of the architectures, paradigms, programming methodologies, technological solutions for developing Web-based applications and services.

b) Know-how to apply knowledge and understanding: ability to use such a knowledge to develop Web-based applications and services.

c) Autonomy in judgement: ability to evaluate the most suited technologies, paradigms, and methodologies to develop Web-based applications and services.

d) Communication skills: ability to communicate and effectively interact with interdisciplinart Web development teams.

e) Learning skills: ability to quickly learn the usage of new methodologies and technologies for web development.

Oggetto:

Modalità di insegnamento

L'insegnamento è organizzato in lezioni frontali, affiancate da esercitazioni pratiche, per circa un terzo delle ore complessive dell'isegnamento (quindi 18 ore su 54), nelle quali gli studenti potranno applicare i paradigmi architetturali nonché le metodologie e le tecniche di programmazione descritte nelle lezioni frontali.

The course is organized in frontal lessons, coupled with practice exercises, taking about one third of the overall amount of hours of the course (thus 18 hours out of 54), in which students will be able to apply the architectural paradigms as well as the programming methodologies and techniques described during frontal lessons.

Oggetto:

Modalità di verifica dell'apprendimento

L'esame finale rappresenta una valutazione sommativa e consiste in due prove:

-- la prima prova è volta a verificare le conoscenze acquisite circa le architetture, i paradigmi, le soluzioni tecnologiche disponibili, le metodologie di programmazione per lo sviluppo di applicazioni e servizi Web, nonché le competenze necessarie per progettare e implementare tali applicazioni;

-- la seconda prova è volta a valutare la capacità concreta di progettare e implementare, in modo appropriato ed efficace, applicazioni e servizi Web.

Entrambe le prove avranno la forma dell'interrogazione strutturata.

In base alle condizioni, la prima prova potrà essere un esame scritto o un colloquio orale.

La seconda prova sarà in ogni caso un colloquio orale, in preparazione del quale verrà chiesto allo studente di realizzare un piccolo progetto (un'applicazione/servizio Web) che rispetti i requisiti che verranno comunicati durante il corso e pubblicati online (sulla pagina dell'insegnamento). Tale progetto verrà discusso con il docente durante il colloquio. La valutazione della discussione del progetto terrà conto delle scelte implementative e della capacità di spiegarle correttamente.

Entrambe le prove possono essere sostenute in lingua inglese.

La valutazione, sia della prima che della seconda prova, avverrà sulla base dell'appropriatezza, della completezza e dell'articolazione delle risposte elaborate dallo studente.

Per la versione da 6 cfu, sia la prima prova sia i requisiti del progetto da discutere nella seconda prova saranno ridotti a 2/3 rispetto alla versione da 9 cfu.

La valutazione complessiva sarà in trentesimi (30 punti), che verranno calcolati nel seguente modo:

(a) La valutazione della prima prova apporterà 18 punti e avrà peso 60%.

(b) La valutazione della seconda prova apporterà 12 punti e avrà peso del 40%.

The final examination is a summative evaluation and consists in two tests:

- the first test aims at verifying the acquired knowledge concerning architectures, paradigms, available technological solutions, programming methodologies for developing Web-based applications and services, together with the necessary skills for the design and implementation such applications;

- the second test aims at verifying the concrete ability to design and develop, in an appropriate and effective way, Web-based applications and services.

Both tests are in the form of a structured interview.

Depending on external conditions, the first test can be a written examination, or an oral interview.

The second test, in any case, wil be an oral interview; to prepare it students will be asked to develop a small project (a Web-based application/service) satisfying the requirements that will be provided during the course and published online (on the course Web page). Such a project will be discussed with the teacher during the oral examination. The evaluation of the project discussion will take into account implementation choices and the ability to correctly explain them.

 

Both tests can be taken in English.

The evaluation of both the first and the second test will be based on the pertinence, completeness, and structure of students' answers.

For the 6 cfu version of the exam, both the first test and the project requirements to be discussed during the second test will be reduced to 2/3 with respect to the 9 cfu version.

The overall evaluation will be expressed in a standard 1-30 scale and will be calculated in the following way:

(a) The evaluation of the first test will contribute with 18 points, and will represent the 60% of the final score.

(b) The evaluation of the second test will contribute with 12 points, and will represent the 40% of the final score.

Oggetto:

Programma

Il programma dell'insegnamento si articola nei seguenti contenuti:

- Cos'è una applicazione Web: architetture, componenti, tecnologie

- Gestire la componente server-side: Object-oriented PHP:

-- introduzione: classi, oggetti, costruttori, metodi, ereditarietà, classi anonime, ecc.

-- l'interazione con il client: gestire HTTPrequest e HTTPresponse con OO-PHP

-- l'interazione con il Database: la libreria PDO

- Gestire la componente client-side: Javascript/jQuery

- L'interazione asincrona tra client e server: chiamate Ajax

- Trasformare un'app in un Web Service: costruire e invocare API REST con PHP

- Costruire applicazioni Web strutturate: il modello MVC e i Framework PHP

Per ogni argomento sarà dedicato ampio spazio ad esercitazioni pratiche.

Ulteriori dettagli saranno disponibili all'indirizzo: www.di.unito.it/~goy/dida.html

The program of the course will develop the following topics:

- Web applications: architectures, components, technologies;

- Server-side management: Object-oriented PHP:

-- introduction: classes, objects, constructors, methods, inheritance, anonymous classes, etc.

-- interaction with the client: managing HTTPrequest and HTTPresponse with OO-PHP

-- interaction with the Database: the PDO library

- Client-side management: Javascript/jQuery

- Asynchronous interaction between client ande server: Ajax calls

- Transforming apps into Web Services: building and invoking API REST with PHP

- Building structured Web applications: MVC model and PHP Frameworks

For each topic, enough time will be devoted to practical exercises.

Further information will be available at: www.di.unito.it/~goy/dida.html

Testi consigliati e bibliografia



Oggetto:
Libro
Titolo:  
Web Programming Step by Step, 2nd edition
Anno pubblicazione:  
2013
Editore:  
Lulu
Autore:  
M. Stepp, J. Miller, V. Kirst
Note testo:  
http://www.webstepbook.com/
Obbligatorio:  
No
Oggetto:

Accanto alle dispense (slide) del corso, che saranno pubblicate online (www.di.unito.it/~goy/dida.html), si consiglia l'approfondimento delle tematiche trattate attraverso la lettura di:

- M. Stepp, J. Miller, V. Kirst. Web Programming - Step by Step (second edition), 2013. Il testo può essere acquistato online all'indirizzo http://www.webstepbook.com/; è disponibile materiale supplementare gratutito (http://www.webstepbook.com/supplements.shtml).

- D. Cameron. A Software Engineer Learns HTML5, JavaScript & jQuery. Cisdal Publishing, 2014 (http://asoftwareengineerlearns.com/publishing.html).

- E. Zimuel, Sviluppare in PHP 7 (II edizione), Tecniche Nuove, 2019. Il testo può essere acquistato online all'indirizzo https://www.sviluppareinphp7.it/; sono disponibili alcune slide relative alla I edizione (2017): www.zimuel.it/slides/unito2017#/

Inoltre, possono essere utili alcuni tutorial online gratuti: "AJAX CRUD Tutorial Using jQuery, JSON and PHP - Step by Step Guide!" (https://www.codeofaninja.com/2015/06/php-crud-with-ajax-and-oop.html); "How To Create A Simple REST API in PHP? Step By Step Guide!" (https://www.codeofaninja.com/2017/02/create-simple-rest-api-in-php.html).

Infine, sul sito https://www.pluralsight.com, ci sono molti corsi online che possono essere utili (per esempio: "Front End Web Development: Get Started"; "PHP Fundamentals"; "PHP: Getting Started"; "Code School: Try PHP"; "Object-oriented PHP: Essential Constructs"; "JavaScript: Getting Started"; "jQuery Fundamentals"; "jQuery: Getting Started"; "Designing RESTful Web APIs"). E' disponibile un free trial di 10 giorni; il costo dell'abbonamento mensile è di 26 euro.

Ulteriori indicazioni bibliografiche puntuali saranno contenute nelle slide delle lezioni.

Per i pre-requisiti si consigliano i seguenti riferimenti:

- L. Console, M. Ribaudo, U. Avalle, F. Carmagnola, F. Cena. Introduzione all’informatica - quarta edizione, Utet, 2010

- P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. Database Systems - Concepts, Languages and Architectures. McGraw-Hill, 1999

- www.w3schools.com/html

- www.w3schools.com/css

- V. Della Mea, L. Di Gaspero, I. Scagnetto, Programmazione Web Lato Server (seconda edizione aggiornata), Apogeo, 2011

- What is programming: https://www.pluralsight.com/courses/what-is-programming

- Learning to Program, Part 1: Getting Started: https://www.pluralsight.com/courses/learning-programming-javascript

Besides the slides, which will be published online (www.di.unito.it/~goy/dida.html), the following readings are suggested in order to gain further insight of the course topics:

- M. Stepp, J. Miller, V. Kirst. Web Programming - Step by Step (second edition), 2013. The book can be purchased online at the following address: http://www.webstepbook.com/; further free material is also available (http://www.webstepbook.com/supplements.shtml).

- D. Cameron. A Software Engineer Learns HTML5, JavaScript & jQuery. Cisdal Publishing, 2014 (http://asoftwareengineerlearns.com/publishing.html).

- E. Zimuel, Sviluppare in PHP 7 (II edizione), Tecniche Nuove, 2019. The book can be purchased online at the following address: https://www.sviluppareinphp7.it/; some slides related to the first edition (2017) are available: www.zimuel.it/slides/unito2017#/

Moreover, some free online tutorials can be useful: "AJAX CRUD Tutorial Using jQuery, JSON and PHP - Step by Step Guide!" (https://www.codeofaninja.com/2015/06/php-crud-with-ajax-and-oop.html); "How To Create A Simple REST API in PHP? Step By Step Guide!" (https://www.codeofaninja.com/2017/02/create-simple-rest-api-in-php.html).

Finally, on the following web site: https://www.pluralsight.com, there are many obnline courses that could be useful (for example: "Front End Web Development: Get Started"; "PHP Fundamentals"; "PHP: Getting Started"; "Code School: Try PHP"; "Object-oriented PHP: Essential Constructs"; "JavaScript: Getting Started"; "jQuery Fundamentals"; "jQuery: Getting Started"; "Designing RESTful Web APIs"). A 10 days free trial is available; the cost for one month subscription is 26 euros.

Further specific references will be available in the slides.

For pre-requirements the following references are suggested:

- L. Console, M. Ribaudo, U. Avalle, F. Carmagnola, F. Cena. Introduzione all’informatica - quarta edizione, Utet, 2010

- P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone. Database Systems - Concepts, Languages and Architectures. McGraw-Hill, 1999

- www.w3schools.com/html

- www.w3schools.com/css

- V. Della Mea, L. Di Gaspero, I. Scagnetto, Programmazione Web Lato Server (seconda edizione aggiornata), Apogeo, 2011

- What is programming: https://www.pluralsight.com/courses/what-is-programming

- Learning to Program, Part 1: Getting Started: https://www.pluralsight.com/courses/learning-programming-javascript



Oggetto:

Note

Le modalità di svolgimento dell'attività didattica potranno subire variazioni in base alle limitazioni imposte dalla crisi sanitaria in corso. In ogni caso è assicurata la modalità a distanza per tutto l'anno accademico”.

Entrambe le prove d'esame possono essere sostenute in lingua inglese.

The format of the teaching activity could change due to the limitations imposed by the current sanitary emergency. In any case, distant learning will be granted for the whole academic year

Both examination tests can be taken in English.

Oggetto:
Ultimo aggiornamento: 02/11/2021 15:50
Location: https://www.didattica-cps.unito.it/robots.html
Non cliccare qui!