Scheda programma d'esame
PROGRAMMAZIONE DI INTERFACCE
ANTONIO CISTERNINO
Anno accademico2018/19
CdSINFORMATICA
Codice257AA
CFU6
PeriodoPrimo semestre

ModuliSettoreTipoOreDocente/i
PROGRAMMAZIONE DI INTERFACCEINF/01LEZIONI48
ANTONIO CISTERNINO unimap
DAVIDE MORELLI unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

Il corso si propone di introdurre lo studente alla programmazione di interfacce grafiche. Al termine del corso sarà in grado di scrivere interfacce GUI basate sul modello di rendering immediato e a retention (sia native che con HTML5). Sarà inoltre a conscenza degli elementi di base della grafica 3D, utile per comprendere le differenze con la grafica e intraprendere ulteriori studi su argomenti collegati a questo tipo di visualizzaizone. Saranno inoltre forniti cenni su dispositivi di input non convenzionali e su elementi di design dell'interazione.

Knowledge

The student completing the course will have a broad vision of user interfaces programming. She will be able to write traditional GUI applications based on the Paint based model and retention based interfaces (both native and Web with HTML5). An introductory knowledge about 3D graphics will be part of the take away of the course, useful as a starting point for learning 3D related topics. Insight about interaction design and non-standard input device for gesturing will also be part of the acquired knowledge.

Modalità di verifica delle conoscenze

Lo studente sarà valutato con due prove individuali di programmazione, una durante il corso (midterm) l'altra alla presentazione di un progetto finale consistente nello sviluppo di un'applicazione grafica. L'esame si concluderà con una prova orale in cui sarà presentata l'applicazione sviluppata e saranno discussi i vari argomenti trattati nel corso.

 

Metodo:

  • Esame orale finale
  • Test scritti

 

Ulteriori informazioni:

L'esame richiede che gli studenti superino la prova intermedia (mid-term) per poter accedere all'esame orale. In caso di non superamento della prova sarà possibile partecipare ad una nuova durante ciascun appello di esame.

Assessment criteria of knowledge

The studend will be assessed in the quality of the solution presented of the mid-term assignment. She will also be assessed on a personal final project consisting in developing a graphical application and an oral exam on all the topics of the course starting from the implemented application.

Methods:

  • Final oral exam
  • Periodic written tests

Further information:
The exam requires that students pass a mid-term assignment in order to be able to give the oral exam. In case of failure there will be additional tests during exam sessions.

Capacità

Lo studente sarà in grado di sviluppare sia applicazioni grafiche che componenti grafici. In particolare saprà:

  • programmare usando il framework WindowsForms come esempio di toolkit grafico
  • programmare componenti grafici
  • programmare sistemi di animazione
  • programmare sistemi grafici interattivi in HTML5 (JavaScript, CSS e DOM)
  • Comprendere il sistema di gestione degli eventi e la programmazione ad eventi
  • Gestire sistemi di coordinate omogenee e le trasformazioni affini della vista
Skills

At the end of the course the student will be capable of developing graphical applications and graphics components. She will know:

  • how to program using graphic framework WindowsForms as an example of graphical toolkit
  • how to program graphical components
  • how to program animated systems
  • how to program interactive graphical systems using HTML5 (JavaScript, CSS and DOM)
  • internal workings of event-driven programming
  • how to use homoheneous coordinate systems to transform the view

 

Modalità di verifica delle capacità

Durante il corso lo studente sarà incoraggiato a sviluppare componenti grafici con complessità crescente in preparazione della verifica intermedia e finale.

Assessment criteria of skills

During the course students will be encouraged to practice graphical components with increasing complexity in order to prepare for the mid-term and final term projects.

Comportamenti

Lo studente acquisirà la capacità di comprendere i meccanismi che vengono poi utilizzati per realizzare applicazioni grafiche in modo da scrivere applicazioni che usino in modo appropriato le risorse del sistema.

Behaviors

Students will acquire a deeper understanding of the underlying mechanisms used by graphical applicazions in order to pay more attention to system resources usage while developing new applications.

Modalità di verifica dei comportamenti

Lo sviluppo di un'applicazione grafica a scelta dello studente utilizzando un framework grafico a scelta come progetto finale incoraggia la rielaborazione delle tecniche e dei concetti di base esaminati durante il corso mediante la loro applicazione in un ambiente differente da quello usato a lezione.

Assessment criteria of behaviors

The final project requires the development of a graphical application using a framework chosen by the student. This encourages the review of the studied basic concepts and programming techniques by applying them in a different evironment than the one used during the course.

Prerequisiti (conoscenze iniziali)
  • Programmazione ad oggetti.
  • Algebra matriciale.
  • Trigonometria.
  • Equazioni di base del moto.
Prerequisites
  • Object Oriented Programming
  • Matrix algebra
  • Trigonometry
  • Motion equations (Physics)
Indicazioni metodologiche

Le lezioni sono frontali

 

Attività di apprendimento:

  • Seguire le lezioni
  • Partecipazione a seminari
  • Preparazione di una relazione scritta
  • Partecipazione a discussioni
  • Studio individuale
  • Esercitazioni pratiche individuali
Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • participation in seminar
  • preparation of oral/written report
  • participation in discussions
  • individual study
  • Practical

Attendance: Advised

Teaching methods:

  • Lectures
  • Seminar
  • project work
Programma (contenuti dell'insegnamento)

Il corso è dedicato alla comprensione dei modelli di programmazione di applicazioni grafiche. Inizialmente si apprende rapidamente come realizzare applicazioni grafiche componendo componenti grafici e facendo uso della programmazione ad eventi. Successivamente si impara la prorgammazione di componenti grafici in framework tradizionali. Sono introdotti elementi relativi alle trasformazioni affini di coordinate del piano, con particolare attenzione relativa alle coordinate omogenee. Si analizzano poi i tratti essenziali della pipeline di rendering (clipping e rastering) e della gestione degli eventi da parte del sistema grafico. Viene introdotta la grafica a retention portando come esempi UWP e HTML5. Il corso da una breve introduzione ai fondamenti della grafica 3D. Sono toccati durante il corso anche elementi di interaction design, animzaione e gestione di gesture.

Syllabus

The course focuses on programming models for interactive graphical applications. It starts with programming native applications by composing user controls with event driven programming, and swiftly moves into understanding how user controls are written in traditional frameworks. Few elements of affine geometrical transformations are discussed, in particular homogeneous coordinates. Essential elements of rendering pipeline (clipping and rastering) and graphics system event processing. Retention based graphics is then introduced both for UWP and for HTML5 applications. The course gives also an introduction to 3D fundamentals of rendering and tools. Within the course also insights about interaction design, animation, and gesture handling are given.

Bibliografia e materiale didattico

Codice reso a disposizione durante le lezioni.

Capitoli del libro "Fondamenti di grafica tridimensionale interattiva",  Riccardo Scateni, Paolo Cignoni, Claudio Montani, Roberto Scopigno.

Bibliography

Code developed during lectures.

Chapters from the book (italian) "Fondamenti di grafica tridimensionale interattiva", Riccardo Scateni, Paolo Cignoni, Claudio Montani, Roberto Scopigno.

 

Indicazioni per non frequentanti

Il corso ha una natura molto pratica e gli esempi svolti in classe possono essere riprodotti utilizzando il codice reso disponibile sul sito del corso. La parte più fondazionale è coperta da capitoli di libro.

Non-attending students info

The course is very practival and the examples discussed and presented during classes can be reproduced using the code available on the cours site. The foundational part of the course is discussed in indicated book chapters.

Modalità d'esame

Progetto intermedio (MidTerm) da svolgere in autonomia in una settimana. Progetto finale con lo sviluppo di un'applicazione grafica a scelta dello studente e prova orale.

Assessment methods

Intermediate project (mid-term) to be solved in a week time. Final project consisting in the development of a graphical application chosen by the student and oral exam.

Ultimo aggiornamento 30/10/2018 18:01