| Hello World and Deployment (Chapter 1 and Chapter 12) | Hello Hello_2 Deployment |
| Developer-Designer Workflow (Chapter 2) | Eclipse Eclipse Assets |
| JavaFXScript (Chapter
3) JavaFX At Crossroads |
FX Cool FX Cool 2 Controls |
| Binding and Triggers (Chapter 4) | JavaFXList ControlsWithInput |
| Multimedia with pure Java | |
| Hawai'i Driver's License Test sample project | |
| Flash |
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.