Vai al contenuto principale
Oggetto:
Oggetto:

TECNOLOGIE WEB: APPROCCI AVANZATI

Oggetto:

WEB TECHNOLOGIES: ADVANCED APPROACHES

Oggetto:

Anno accademico 2023/2024

Codice attività didattica
CPS0547
Docente
Luca Anselma (Titolare dell'insegnamento)
Corso di studio
Corso di laurea magistrale in Comunicazione, ICT e media (Classe LM-59)
Anno
1° anno
Periodo
Primo semestre
Tipologia
Caratterizzante
Crediti/Valenza
9
SSD attività didattica
INF/01 - informatica
Erogazione
Tradizionale
Lingua
Italiano
Frequenza
Facoltativa
Tipologia 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 fornire le competenze per sviluppare un'applicazione o servizio Web, utilizzando i corretti paradigmi architetturali e le corrette metodologie di sviluppo.

L'insegnamento si propone di rendere gli studenti e le studentesse autonomi nella scelta e nell'utilizzo degli strumenti necessari per lo sviluppo di applicazioni e servizi 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 Web applications and services.

Oggetto:

Risultati dell'apprendimento attesi

Al termine dell'insegnamento si avranno 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:

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, ...
    • interazione con il client: gestire HTTPrequest e HTTPresponse con OO-PHP
    • interazione con il Database: la libreria PDO
    • gestione delle sessioni
  • 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
  • Cenni su Node.js e framework Express

Per ogni argomento sarà dedicato spazio ad esercitazioni pratiche.

Ulteriori dettagli sono disponibili sulla pagina Moodle del corso.

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
    • -- session management
  • 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
  • A brief overview of Node.js and Express

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

Further information will be available on the Moodle page.

Oggetto:

Modalità di insegnamento

L'insegnamento è organizzato in lezioni frontali affiancate da esercitazioni pratiche per circa un terzo delle ore complessive dell'insegnamento (quindi 18 ore su 54), nelle quali si 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 di realizzare un piccolo progetto (un'applicazione Web/servizio Web) che rispetti i requisiti che verranno comunicati durante il corso e pubblicati online sulla pagina Moodle 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 fornite.

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.

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:

Oltre alle dispense (slide) del corso, che saranno pubblicate online sulla pagina Moodle del corso, si consiglia l'approfondimento delle tematiche trattate attraverso i seguenti testi:

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:

Besides the slides, which will be published online on the Moodle page, the following readings are suggested in order to gain further insight of the course topics:

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:



Oggetto:

Insegnamenti che mutuano questo insegnamento

Registrazione
  • Aperta
    Oggetto:
    Ultimo aggiornamento: 27/09/2023 14:04
    Location: https://www.didattica-cps.unito.it/robots.html
    Non cliccare qui!