ICS 465: Intro to Hypermedia
Fall 2014

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

MW 9:00-10:15
(or lecture room HOLMES 243)

Dr. Jan Stelovsky

TA: Nurit Kirschbaum

office hours room mail phone skype
Dr. Jan Stelovsky any time and by appointment
(preferably on hangouts or Skype)
POST 305C janst at hawaii.edu 808-673-0035 havajsky
TA: Nurit Kirschbaum Mon, Wed 1:30-3:00, Tue 1:30-2:30
and by appointment via email
Post 314-8 nuritk at hawaii.edu





Learn the tools for constructing user interfaces and interactive multimedia environments, in particular for integrating media contents using RIA (Rich Internet Applications) and Web Apps technologies. Learn the typical user interface and media frameworks with emphasis on HTML5, CSS, HTML5 API, the newest User Interface an Multimedia frameworks and technologies.

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 reach cell phone, tabletsand TV set top boxes as well. The main goal of this course is that you become familiar withWeb App technologies in general, and with those frameworks that are - in my opinion - not only the most promising, but the ones which are 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. 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 assignments in one week or even in 1/2 of a week (i.e. 3-4 days). In addition, here will be one midterm (middle-sized) project and one final (larger-sized) project.

Usually, you will be expected to work in groups. 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. In my coding examples, I will be using the scripting language CoffeeScript, which in my opinion a viable alternative to JavaScript and based on some best practices. Therefore I will offer a crash course in CoffeeScript in the first few lectures. A good grasp of object-oriented programming will be very important. A good experience with using frameworks and 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.

This is the formula for determining the final grade:

final project 40%
midterm project presentation 25%
assignments 25%
quizzes 10%

In addition, to get an A you must have submitted all but one homework an participated in most of the quizzes.


There is no fixed weekly schedule for the course topics.