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).


21/09: Source code examples online here that includes the examples we cover in class, as well as more examples for changing windows, drag&drop, have timers that start actions, ...

13/09: This week we have reserved on Tue room E201 instead of our regular room.

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

07/09: Welcome !!!

Pratical info

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

Classes are done virtually (but we also have a machine room D103 reserved every week if you prefer to use that to follow the class). The TAs in person in room D103. Contact us if you do not know how to connect.

Our prefered mode of communication is the ecampus forum. Alternatively, 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. 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 week 2: Lecture on starting with JavaFX and drawing in three parts (part 1, part 2, part 3)

Recordings week 3: Lecture on adding Events in two parts (part 1 and part 2)

Homework: (1) individual - MineSweeper v1 due on sep 27th; (2) group - storyboard for project due on sep 21st

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: MVC intro

Class 5

Introduction to custom drawing: Slides

Animation Slides

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

Additional reading

Canvas tutorial

Advanced image tutorials

Animation tutorials from Oracle and from genuinecoder

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).

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.

Setup, language info, etc