Vai al contenuto principale
Oggetto:
Oggetto:

Interazione Uomo Macchina e Tecnologie Web

Oggetto:

Human-computer Interaction and Web Technologies

Oggetto:

Anno accademico 2022/2023

Codice dell'attività didattica
MFN0608
Docenti
Cristina Gena (Docente)
Marino Segnan (Docente)
Liliana Ardissono (Docente)
Corso di studi
[008707] Laurea in Informatica
Anno
3° anno
Periodo didattico
Primo semestre
Tipologia
Caratterizzante
Crediti/Valenza
12 CFU - Numero di ore - Number of hours: 48 (in aula) + 60 (in laboratorio)
SSD dell'attività didattica
INF/01 - informatica
Modalità di erogazione
Tradizionale
Lingua di insegnamento
Italiano
Modalità di frequenza
Facoltativa
Tipologia d'esame
Scritto più orale obbligatorio
Prerequisiti

Si richiede una buona conoscenza delle basi di dati, dei sistemi operativi, dell'analisi e della progettazione object-oriented e dei fondamenti della programmazione distribuita. Gli studenti e le studentesse devono inoltre avere la capacità di scrivere, compilare e verificare la correttezza di programmi in Java.
Insegnamenti propedeutici (forniscono le competenze attese in ingresso): Basi di Dati, Sistemi Operativi, Programmazione II, Algoritmi e strutture dati, Programmazione III.
The student is requested to have a good knowledge of data base systems, operating systems, object-oriented analysis and design, foundations of distributed programming. Moreover the student must be able to write, compile and verify the correctness of Java programs.
Preparatory courses (providing the expected entry skills): Basi di Dati, Sistemi Operativi, Programmazione II, Algoritmi e strutture dati, Programmazione III. .

Oggetto:

Sommario insegnamento

Oggetto:

Obiettivi formativi

Questo insegnamento concorre agli obiettivi formativi specifici dell'ambito delle conoscenze di approfondimento del Corso di Laurea in Informatica (L31) e fa parte dell’area Informatica caratterizzante.  È mirato a fornire alle studentesse e agli studenti solide conoscenze di base sull'interazione uomo-macchina e sulle metodologie per la progettazione e lo sviluppo di applicazioni web e mobili a tre livelli. Nello specifico, l'insegnamento si pone un duplice obiettivo: da una parte, fornire la conoscenza di base necessaria per il disegno corretto di interazioni uomo-macchina, che sta alla base della progettazione di applicazioni di ogni genere (web e non, mobili, etc.). Dall’altra, fornire la conoscenza di base necessaria per la progettazione e lo sviluppo di applicazioni Web interattive, accessibili da terminali desktop e mobili (come gli smart phone), e caratterizzate da una logica applicativa mediamente complessa.

Per quanto riguarda l'interazione uomo-macchina, verranno affrontate le tematiche fondamentali per una progettazione web (desktop/mobile) usabile, accessibile e centrata sull’utente e relative al processo di user experience, così come i principi e linee guida e la loro applicazione in scenari reali. Questi ultimi riguarderanno lo sviluppo di interfacce per il desktop e mobile web, per passare poi ad esaminare le principali metodologie di valutazione predittiva, formativa, e sommativa. Verranno di conseguenza affrontati gli approcci orientati al miglioramento della user experience in un’ottica di design centrato sull’utente.

Per quanto riguarda gli aspetti architetturali e tecnologici, nell'insegnamento verranno acquisite competenze teoriche e pratiche su: (i) lo sviluppo di pagine web statiche e dinamiche responsive e di Single Page Application; (ii) la programmazione lato server; (iii) la programmazione lato client per device mobili su piattaforma Android e lo sviluppo di interfacce mobili per applicazioni web. Inoltre, l'insegnamento fornirà conoscenza relativa alla rappresentazione di dati con XML, data l'importanza per l'interoperabilità tra applicazioni software.

In compliance with the training objectives of the Computer Science Bachelor Program (Corso di Laurea in Informatica (L31)), this course is part of the area “Informatica caratterizzante” and aims at providing students with robust basic knowledge about Human-Computer Interaction and methodologies for the design and development of three-tier Web-based and mobile applications. In detail, this module has two main objectives: the former is that of providing students with the knowledge needed for a correct design of human-computer interaction, which underlies the design of all kinds of applications (web-based, mobile ones, etc.). The latter objective is to provide students with the basic knowledge they need to design and develop interactive, Web-based applications that can be accessed from desktop and mobile terminals (such as smartphones) and have medium-complexity business logic.

As regards the human-machine interaction, the fundamental issues regarding usability, accessibility, user-centered web design (desktop/mobile), and user experience processes will be addressed, as well as related principles, guidelines, and their application in real scenarios. The latter will concern the development of interfaces for the desktop and mobile web that are usable and accessible, and their main predictive, formative, and summative evaluation methodologies. Approaches aimed at improving the user experience will therefore be addressed from a user-centered design perspective.

Concerning the architectural and technological aspects, the course covers both theoretically and practically: (i) the development of static and dynamic responsive web pages, and of Single Page Applications; (ii) server-side programming; (iii) client-side programming for mobile devices on Android platform and the development of mobile user interfaces for web applications. Moreover, the course presents data representation and interpretation with XML, given its importance for the interoperability of software applications.

Oggetto:

Risultati dell'apprendimento attesi

CONOSCENZA E CAPACITÀ DI COMPRENSIONE. Acquisizione di conoscenze teoriche e applicative relative a:

  • progettazione centrata sull’utente e il processo di User Experience - UX (personas, rapid prototyping, ecc.)
  • euristiche e valutazione di usabilità per il desktop e mobile web
  • progettazione e organizzazione dell’architettura dell’informazione
  • valutazione dell’accessibilità web secondo le linee guida internazionali e nazionali
  • architetture di riferimento per lo sviluppo di applicazioni web e mobili
  • modelli software più usati per gestire applicazioni interattive di media complessità
  • tecnologie attualmente utilizzate per l’implementazione delle applicazioni (back-end e interfacce utente web/mobili)

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE. Acquisizione della capacità di applicare le conoscenze teoriche relative alle tematiche di cui sopra.

AUTONOMIA DI GIUDIZIO. Acquisizione di consapevole autonomia di giudizio con riferimento alla progettazione e realizzazione di applicazioni web e mobili con interfacce utente accessibili.

ABILITÀ COMUNICATIVE. Acquisizione di competenze e strumenti per la comunicazione nella forma scritta e orale, in lingua italiana, unitamente all'utilizzo di linguaggi formali.

CAPACITÀ DI APPRENDIMENTO. Acquisizione di capacità autonome di apprendimento e di
autovalutazione della propria preparazione, atte ad intraprendere gli studi successivi con un alto
grado di autonomia.

KNOWLEDGE AND UNDERSTANDING. Acquisition of theoretical and applicative skills concerning:

  • user-centered design and the User Experience - UX process (personas, rapid prototyping, etc.)
  • Usability heuristics and evaluation for desktop and mobile web
  • design and organization of the information architecture
  • evaluation of websites accessibility according to national and international guidelines
  • reference architectures to develop web-based and mobile applications
  • largely applied software models to manage interactive applications having medium complexity
  • current technologies for the implementation of software applications (back-and and web-based or mobile user interfaces)

APPLYING KNOWLEDGE AND UNDERSTANDING. Acquisition of the ability to apply the above-listed theoretical and applicative skills.

MAKING JUDGMENTS. Acquisition of aware judgment autonomy concerning the design and implementation of web-based and mobile software applications with accessible user interfaces.

COMMUNICATION SKILLS. Acquisition of oral and written communication skills and expertise, in the Italian language, as well as the ability to use formal languages.

LEARNING SKILLS. Acquisition of independent learning skills and the ability to self-evaluation of one's own preparation, apt to undertake further studies with a high degree of autonomy.

Oggetto:

Modalità di insegnamento

L’insegnamento è diviso in una parte di teoria e una sperimentale.

  • Per la parte di teoria sono previste lezioni integrate da casi di studio e da esercitazioni volte ad illustrare l’applicazione pratica dei concetti appena studiati. Le esercitazioni, strutturate come sequenze di esercizi specifici, permettono di mettere in pratica i concetti e le metodologie illustrate nelle lezioni teoriche su esempi concreti. I temi introdotti durante le esercitazioni corredano e integrano le conoscenze derivanti dalla parte teorica (knowledge and understanding) e permettono alle studentesse e agli studenti di familiarizzare con le metodologie e tecnologie introdotte, anche investigando soluzioni alternative (applying knowledge and understanding). 
  • Per la parte sperimentale, lo sviluppo del progetto SW, che si effettua in piccoli gruppi (composti da al più 3 persone), permette di consolidare le conoscenze teoriche e il lavoro in team in un caso realistico di media complessità. Il progetto SW, descritto nel seguito, va oltre la complessità del tipico esercizio proposto nelle esercitazioni. La progettazione e lo sviluppo del progetto SW permettono di allenare l'autonomia di giudizio (making judgments) nella scelta delle implentazioni da realizzare, analizzando in forma critica le informazioni acquisite nella parte teorica dell'insegnamento. La preparazione del progetto SW è anche volta a stimolare la capacità comunicativa degli studenti e delle studentesse che sono invitati/e a illustrare verbalmente le soluzioni adottate (communication skills).

Le attività pratiche sono svolte a calcolatore, utilizzando ambienti di sviluppo professionali. Si consiglia caldamente la frequenza costante alle lezioni teoriche e alle esercitazioni. È inoltre fondamentale iscriversi alle pagine dell'insegnamento su I-Learn (Interazione Uomo Macchina; Interazione Uomo Macchina e Tecnologie Web - parte tecnologica), in cui sono messi a disposizione il materiale didattico di supporto e i riferimenti a materiale pubblico utilizzabile per approfondire le proprie conoscenze in modo autonomo (learning skills).

La comunicazione con le studentesse e gli studenti avviene attraverso il forum dell'insegnamento su I-Learn e via email agli account istituzionali dei docenti.

The course is divided into a theory part and an experimental part.

  • The theory part includes lectures supplemented by case studies and experimental lessons designed to illustrate the practical application of the concepts just studied. The experimental lessons, structured as sequences of specific tasks, allow the concepts and methodologies presented in the theory lecture to be put into practice on concrete examples. The topics introduced during the experimental lessons accompany and complement the knowledge derived from the theoretical part (knowledge and understanding) and allow students to familiarize themselves with the methodologies and technologies introduced, including the investigation of alternative solutions (applying knowledge and understanding).
  • For the experimental part, the development of the SW project in small groups (consisting of at most 3 people) allows the consolidation of theoretical knowledge and teamwork in a realistic case of medium complexity. The SW project, described below, goes beyond the complexity of the typical exercise proposed in the experimental lessons. The design and development of the SW project allow training in the autonomy of judgment (making judgments) in choosing the solutions to be implemented, and critically analyzing the information acquired in the theoretical part of the course. The preparation of the SW project is also aimed at stimulating the communication skills of the students, who are invited to verbally illustrate the solutions adopted (communication skills).

The experimental activities are carried out computer-based, using professional development environments. We recommend attending all the lessons in this course. It is also important to enroll in the online courses on I-Learn (Human-Machine Interaction; Human-Machine Interaction and Web Technologies - technology part), which provide teaching materials and references to public materials that can be used to deepen one's knowledge independently (learning skills).

Communication with students takes place through the course forum on I-Learn and via email to the lecturers' institutional accounts.

Oggetto:

Modalità di verifica dell'apprendimento

L'esame è composto da una PROVA TEORICA e dalla DISCUSSIONE DEL PROGETTO SW. Le due prove possono essere sostenute in qualsiasi ordine durante le sessioni d'esame dell'Anno Accademico.

  • PROVA TEORICA: esame scritto che include esercizi e domande teoriche sul programma della PARTE 2 - APPLICAZIONI WEB E TECNOLOGIE DI SUPPORTO. Viene valutata da un minimo di 0 ad un massimo di 30 (31 vale per la lode) e si considerano sufficienti i voti ≥18. Il voto ottenuto durante la prova teorica decade se si partecipa ad un'altra prova teorica. Questa prova è volta a verificare l’acquisizione della conoscenza fornita dall'insegnamento in termini di sapere (knowledge and understanding), nonché le abilità comunicative (communication skills) e l'autonomia di giudizio (making judgments).
  • DISCUSSIONE DEL PROGETTO SW: questa prova è volta a verificare le competenze acquisite (applying knowledge and understanding), nonché le abilità comunicative,  l'autonomia di giudizio e la capacità di apprendimento (learning skills). Il progetto SW si articola in tre parti:
    • prototipo Figma di app mobile, consegnato insieme ad una presentazione delle scelte progettuali in termini di UX e di 3 schede di Personas, poi realizzato come app Android che si appoggia a un backend Java per offrire le funzionalità all’utente; 
    • applicazione web a tre livelli composta dal backend java e da un client web realizzato come Single Page Application; l’applicazione include una pagina web separata, realizzata secondo le linee guida di accessibilità presentate nell’insegnamento;
    • programma scritto in linguaggio Python.

Le tre parti vengono discusse insieme dal gruppo di laboratorio. La discussione deve essere effettuata preferibilmente con tutti i membri del gruppo presenti. NB: non si richiede di consegnare i progetti di laboratorio prima dell'esame. Il voto è un numero intero compreso tra 0 e 30 (31 vale per la lode), si considerano sufficienti i voti ≥18.

CALCOLO DEL VOTO FINALE DI ESAME. Il voto finale dell’esame viene determinato come segue:

  • voto finale = (voto prova teorica + 3*voto discussione del progetto SW)/4.

NB: i voti acquisiti durante ciascuna delle prove rimangono validi fino al termine della sessione d’esame che precede l'inizio del nuovo insegnamento.

The examination consists of a THEORETICAL TEST and the SW PROJECT DISCUSSION. The two tests can be taken in any order during the exam sessions of the Academic Year.

  • THEORETICAL TEST: written examination that includes exercises and theoretical questions on the syllabus of PART 2 - WEB APPLICATIONS AND SUPPORTING TECHNOLOGIES. It is graded from a minimum of 0 to a maximum of 30 (31 counts for honors) and grades ≥18 are considered sufficient. The grade obtained during the theory test is forfeited if another theory test is taken. This test is designed to test the acquisition of knowledge provided by the course in terms of knowing (knowledge and understanding), as well as communication skills and autonomy of judgment (making judgments).
  • SW PROJECT DISCUSSION: this test is designed to check the acquired knowledge (applying knowledge and understanding), as well as communication skills, the autonomy of judgment, and learning skills. The SW project consists of three parts:
    • a Figma prototype of the mobile app, delivered along with a presentation of the design choices in terms of UX and 3 Personas tabs, then implemented as an Android app that relies on a Java backend to deliver the functionality to the user;
    • a three-tier web-based application consisting of the java backend and a web client built as a Single Page Application; the application includes a separate web page built according to the accessibility guidelines presented in the teaching;
    • a program developed in the Python language.

The three parts are discussed together by the lab group. The discussion should preferably be done with all group members present. NB: Lab projects are not required to be handed in before the exam. The grade is an integer number between 0 and 30 (31 applies to honors), grades ≥18 are considered sufficient.

CALCULATION OF FINAL EXAMINATION VOTE. The final exam grade is determined as follows:

  • final grade = (grade of the theoretical test + 3*grade of the SW project discussion)/4.

Note: the grades acquired during each of the tests remain valid until the end of the exam session preceding the start of the new course.

Oggetto:

Attività di supporto

Durante il periodo dell'insegnamento, e dopo, saranno svolte attività di tutorato su richiesta. Le studentesse e gli studenti potranno chiedere via email appuntamento ai docenti e/o ai tutor per la revisione di argomenti presentati in aula e per il supporto allo svolgimento degli esercizi e del progetto SW. Le attività potranno essere svolte in presenza oppure in modalità online su una piattaforma di videoconferenza come WebEx. Gli indirizzi di posta elettronica istituzionale dei tutor sono pubblicati nella pagina dell'insegnamento su I-Learn.
During the teaching period, and afterward, tutoring activities will be carried on demand: the students can request by email appointments with lecturers and/or tutors for reviewing topics presented in the classroom and for support in carrying out exercises and the SW project. The activities may be conducted in person or online on a videoconferencing platform such as WebEx. The institutional e-mail addresses of the tutors are posted on the course page on I-Learn.

Oggetto:

Programma

PARTE 1A: HUMAN-COMPUTER INTERACTION (HCI)

  • I concetti e ai principi dell’Interaction Design e della User Experience (UX)
  • Il processo di UX e il rapid prototyping
  • Le linee guida di usabilità per il web (desktop e mobile)
  • Principi di architettura dell’informazione
  • Le linee guida di accessibilità internazionali e nazionali: le WCAG, le linee guida AGID
  • Il design centrato sull’utente e le metodologie di valutazione: la fase di valutazione preliminare, la fase di valutazione formativa e la fase finale.
  • La valutazione dell’accessibilità, sia oggettiva che soggettiva

PARTE 1B - PROGRAMMAZIONE DI DEVICE MOBILI

  • Il sistema operativo Android e le sue peculiarità. Gli elementi costitutivi di una applicazione utente ed il suo ciclio di vita. Le pratiche consolidate e l'ambiente di sviluppo di una applicazione Android. Sviluppo di applicazioni mobili all'interno del sistema Android sia interagendo direttamente coi servizi del sistema operativo che utilizzando dei Framework multipiattaforma. Utilizzo del framework Flutter per la scrittura dei tipi di applicazioni più utilizzati.
  • Il linguaggio avanzato Python: principali differenze rispetto al linguaggio Java e caratteristiche più interessanti

PARTE 2 - APPLICAZIONI WEB E TECNOLOGIE DI SUPPORTO

  • Architetture delle applicazioni Web: Web browser e Web server
  • Il Pattern Model View Controller per le applicazioni Web - Progettazione e sviluppo di applicazioni Web a 3 livelli basate su MVC:
    • Il primo livello (client dell'applicazione): HTML5, CSS, scripting lato client (JavaScript e AJAX). Raccolta dati con HTML form
    • Il secondo livello (logica applicativa): Servlet Java
    • Il terzo livello (livello dei dati): accesso a database relazionali con Java Database Connectivity (JDBC), rappresentazione e gestione di informazioni con XML (XML Schema, XPath, XML Parsers)
  • Framework le applicazioni web MVC (Vue.js)
  • Introduzione al linguaggio PHP per lo sviluppo di pagine web dinamiche con accesso a DB relazionale

PART 1A: HUMAN-COMPUTER INTERACTION (HCI)

  • Concepts and principles of Interaction Design and User Experience (UX)
  • UX processes and rapid prototyping
  • Desktop and mobile web usability guidelines
  • Principles of information architecture
  • International and national accessibility guidelines: the WCAGs, the AGID guidelines
  • User-centered design and evaluation methodologies: the preliminary evaluation phase, the formative evaluation phase, and the final phase.
  • The evaluation of accessibility, both objective and subjective

PART 1B: MOBILE PROGRAMMING

  • The Android operating system and its peculiarities. Essential elements of an interactive application and life cycle. Best practices and development environment for the development of an Android application. Usage of the Flutter framework for the implementation of the most common types of applications
  • Python, an advanced programming language: main differences with respect to Java and most interesting features

PART 2 - WEB-BASED APPLICATIONS AND SUPPORTING TECHNOLOGIES

  • Architectures of Web applications: Web browser and Web server.
  • The Model View Controller pattern for web applications - design and development of 3-tier Web applications based on MVC:
    • The first level (application client): HTML5, CSS, client-side scripting (JavaScript and AJAX). Data collection via HTML forms
    • The second level (business logic): Java Servlets
    • The third level (business data): accessing relational databases via Java Database Connectivity (JDBC), information representation and management via XML (XML Schema, XPath, XML Parsers)
  • Framework for MVC web-based applications (Vue.js)
  • Introduction to PHP for the development of dynamic web pages connected to relational databases .

Testi consigliati e bibliografia



Oggetto:
Libro
Titolo:  
Per la PARTE 1: Facile da usare
Anno pubblicazione:  
2010
Editore:  
Apogeo
Autore:  
Polillo, R.
ISBN  
Permalink:  
Obbligatorio:  
No


Oggetto:
Libro
Titolo:  
Per la PARTE 2: Programmare in Java 11/Ed. - MyLab
Anno pubblicazione:  
2020
Editore:  
Pearson
Autore:  
Paul J. Deitel - Harvey M. Deitel
ISBN  
Permalink:  
Obbligatorio:  
No
Oggetto:

PARTE 1A:

  • https://www.agid.gov.it/it/design-servizi/accessibilita/linee-guida-accessibilita-pa
  • https://www.w3schools.com/accessibility/index.php

PARTE 1B:

  • Android: http://www.html.it/guide/guida-android/
  • Flutter: href="https://flutter.dev/"
  • Python: http://www.python.it/doc/newbie/

ALTRI RIFERIMENTI (per consultazione):

  • Don't make me think. Un approccio di buon senso all'usabilità web e mobile, Steve Krug, Tecniche nuove
  • Interaction Design: Beyond Human-computer Interaction, Preece et al., Wiley
  • https://www.interaction-design.org/literature
  • Interaction Design: Beyond Human-computer Interaction, Preece et al., Wiley 
  • Principi di Web design, di Joe Sklar, Apogeo

PART 1A:

  • https://www.agid.gov.it/it/design-servizi/accessibilita/linee-guida-accessibilita-pa
  • https://www.w3schools.com/accessibility/index.php

PART 1B:

  • Android: http://www.html.it/guide/guida-android/
  • Flutter: href="https://flutter.dev/"
  • Python: http://www.python.it/doc/newbie/

OTHER REFERENCES:

  • Don't make me think. Un approccio di buon senso all'usabilità web e mobile, Steve Krug, Tecniche nuove
  • Interaction Design: Beyond Human-computer Interaction, Preece et al., Wiley
  • https://www.interaction-design.org/literature
  • Interaction Design: Beyond Human-computer Interaction, Preece et al., Wiley 
  • Principi di Web design, di Joe Sklar, Apogeo

 

 



Oggetto:
Ultimo aggiornamento: 29/05/2023 15:49
Location: https://laurea.informatica.unito.it/robots.html
Non cliccare qui!