Visualization Course (V22.0480.002, Spring 2003, Yap)
Visualization is a basic tool used in many disciplines
to help researchers understand their data.
We need to visualize a variety of datasets:
fluid flows (e.g., weather patterns),
volumetric data (e.g., brain tissues),
geometric models (e.g., aeroplane or engine),
large graphs (e.g., internet sites),
or just abstract tabular data.
A major issue arise from the fact that these
datasets can be very large.
If we want to do visualization on the internet,
this is compounded with severe bandwidth limitations
and bandwidth variability (we call this ``thinwire visualization'').
Researchers have developed many techniques in recent
years to address these problems. These techniques
are highly dependent on the nature of the datasets.
In this course, we take a look at techniques for
some important types of datasets, but mainly focus on geometric/vector data.
The technical basis for visualization includes
computer graphics, computational geometry and algorithms.
In addition, for thinwire visualization,
some networking background (the use of the TCP/IP) will be provided.
This is a hands-on, projects-oriented course.
Programming for computer graphics will require
Java programming (especially Java2D).
The programming environment is assumed to be Unix/Linux
(for Windoz, we recommend the free "Cygwin" system
that offers Unix-like environment on top of Windoz).
There is final programming
project. You can do this project in groups of 1-3.
Fundamental Algorithms, Java programming.
25% homework, 15% quiz and class participation, 60% final project.
BOOKS: We strongly recommend (1) and suggest (2, 3).
JAVA 2D Graphics,
J. Knudsen, O'Reilly, 1999.
Core WEB Programming (Second Edition),
M. Hall and L. Brown, Sun Microsystem Press (Prentice Hall), 2001.
Graphic Java (Third Edition),
D. M. Geary, Sun Microsystem Press (Prentice Hall), 1999.