This is the website for Intro to Programming of Interactive systems (backup to e-campus)

Classes are given by Anastasia Bezerianos. Raphael James and Mehdi Chakhchoukh are your TAs.

The class is based partially on older classes by Anastasia, classes by M. Beaudouin-Lafon, by T. Tsantilas, by N. Roussel and by O. Chapuis. The following people have contributed to the design of the TA excersises : N. Roussel, C. Appert, O. Bau, M. Beaudouin-Lafon, G. Besacier, S. Gueddana, Y. Riche, M. Nancel, D. Bonnet, C. Fleury, A.Prouzeau, and Jean-Philippe Rivier (Java FX switch).


06/10: Updated source code examples online here (include more examples for changing windows, have timers that start actions, and include all examples from class).

28/09: Pre-recodrings of lecture for week 4 are now online. During class time you can view the recordings while Anastasia will be chatting with everyone individually looking at your assignments (MS v1) - make sure it runs on your machine !!!

15/09: Recordings of all TA classes can be found under practical work on this page.

15/09: A schedule of all assignments can be found here.

15/09: Links added to the TA site and to the project site.

07/09: Before the TA tomorrow, try to install all the needed components described here and come to your TAs for questions.

07/09: If you want to move to the Advanced class, before the TA tomorrow add your name to the list provided by the instructors via email.


Pratical info

Class take place on Tue @ 9:00, and TAs happen every Wed @ 2:00.

Both are done virtually, contact us if you do not know how to connect.

You can contact Anastasia or the TAs by email (introduction [dot] prog [dot] is [at] gmail [dot] com).

Don't forget the [Intro-ProgIS] in the title!

Code used in classes can be found here (updated on 6/10 - older archive is here). Put the content of src/ under your src directory, and the resources/ under your project directory. Try things on your own!

Class material

Class 1

Introduction - Definitions: Slides

Design Cycle: Slides

Practical: Slides

Recordings: Intro, and Desing Cycle and Practical work

Homework: (1) due in TA session tomorrow - try the installation described here and come with questions to your TAs. (2) due next week on Monday - finish and email the practical exercise (see info on practical work)

Additional reading

A Moving Target—The Evolution of Human-Computer Interaction by Jonathan Grudin

Why is UX so hard for some developers? by Karl Fast (with several links to useful resources)

A Brief Rant on the Future of Interaction Design by Bret Victor

Class 2 & 3

Introduction to JavaFX UI programming: Slides

Practical: Slides

Event programming with JavaFX: Slides

More about layout: Slides

Recordings: (i)starting with JavaFX and layouts (15/09); (ii) adding css and assignment info (15/09); events and event programming (22/09).

Homework: (1) individual - MineSweeper v1 due on sep 28th; (2) group - storyboard for project due on sep 22nd

Additional reading

GUI Programming by Brad Myers (quite old)

Apple's guidelines for Mac OS applications

C.R.A.P. principles applied to graphic design and UI design

Class 4

Peripherals, Software Architectures and intro to MVC Slides

MVC examples Slides

Recordings: (i) MVC intro and (ii) MVX examples

Class 5

Introduction to custom drawing: Slides

Animation Slides

Recordings: (i) showing images and (ii) shape drawing and animations

Homework: (1) individual - MineSweeper v2 due on oct 12th; (2) group project oct 20th

Additional reading

Canvas tutorial

Advanced image tutorials

Animation tutorials from Oracle and from genuinecoder

Minesweeper v2 presentations

Class 6

UI Toolkits and event handling Slides

State machines in UI programming Slides

Recordings: (i) toolkits and (ii) state machines

Practical Work

This class has two practical components: exercises done with Anastasia (that are individual); and a project and exercises done with the TAs (some of these are individual some are group based). Here is a Schedule of practical work you have to hand in.

Individual Practical (with Anastasia on Tuesdays)

Project and other exercises (with the TA on Wednesdays)

With your TAs you will do practice in the form of exercises, and get help with your (group) project.

Recordings of the TA sessions: TA 1 (setup); TA 2 (basic UI and layouts); TA 3(events); TA 4(MVC); TA 6(MVC and drawing).

Setup, language info, etc