ICS 465: Intro to Hypermedia
Fall 2010

course web site: www2.hawaii.edu/~janst/465

course email: ics465f10@gmail.com

(lecture room HOLMES 243 MW 9:00-10:15 will be rarely - if ever - used)

Dr. Jan Stelovsky

office hours: Mo 12:15-1:00, and by appointment (preferably on Skype)
POST 305C, janst@hawaii.edu, 956-7175
Skype: havajsky





Learn the tools for constructing user interfaces and interactive multimedia environments, in particular for integrating media contents using RIA (Rich Internet Application) technologies. Learn the typical user interface and media frameworks with emphasis on JavaFX, the newest RIA technology.

Method and Grading

Fortunately, the hypermedia (aka multimedia) programming technologies have finally reached a mature stage. The term Rich Internet Applications is, however, misleading: rich interfaces are now finally also available on Internet. And not only on Internet, the newest RIA frameworks attempt to reach cell phones and TV stetop boxes as well. The main goal of this course is that you become familiar with RIA technologies in general, and with the - in my opinion - not only the most promising, but the one which is based on currently best concepts and thus the best for educational purposes. Learning one technology in detail will make it easier for you to switch to another such technology once a better one (or the one that prevails) in the future.

There will be virtually no lecture notes. Instead, I will publish a list of links to tutorials, examples, blog entries and other web resources. These materials, assignments, FAQ, etc.) will be all posted on this web site, so please check the News section periodically. Moreover, you should be prepared to surf the web for additional sources of information - tutorials, blogs, API documentation, and FAQs offer wealth of excellent knowledge.

Unlike some other courses, this course will be heavily project-based. There will be no conventional tests or quizzes. The course will be based on small project assignments. Typically there will be only short turn-around time - depending on the size of the project you will be expected to complete the project in one week or even in 1/2 of a week (i.e. 3-4 days). There will be one midterm (middle-sized) project and one final (larger-sized) project. The exciting news: I will be discussing with several K-12 educational institutions whether their teachers are willing to spend some time to help you define meaningful projects. I will publish a list of such projects to let you choose the ones that you like most (first come first serve).

Usually, you will be expected to work in groups. (Except for the Assignment 1, essay-type assignments, such as the specification of your programming style in Assignment 1, or discussions of user interface design issues.)  The groups' teams will be assigned on random basis - this will account for some additional overhead, but will give you more experience in what works in a teamwork and what does not. More importantly you will not get "stuck" in a group where you do all the work for the entire semester:)

The assignments and projects will be typically evaluated in categories that are relevant to the given task, such as:

There will be a formula that determines your final score: While the exact formula will be published towards the end of the semester, expect that the final project as well as the total of the assignments will carry larger weight than the midterm project.

Because the course is very practically oriented, you should be quite proficient in Java. Some experience with scripting languages, e.g. JavaScript, will be a plus, but is not a prerequisite. However a good grasp of what object-oriented programming will be very important. A good experience with using library modules is essential, too. You should also be familiar with basic concepts such as threads and exceptions- if you have not heard about these concepts, you should study them on your own - they will not be covered in depth in this course.

Some topics (e.g. XML) will seem to go beyond the scope of the course. However, they may be covered because of their importance and (future) general implications on user interface and multimedia software development.


There is no fixed weekly schedule for the course topics.