Topics for Senior Projects and M.Sc. Theses

I am currently offering a number of senior projects (see also the department's Senior Project list). Other topics are also available, and I am always open to interesting ideas that are related to visualization. So let's talk!

The topics below are also suited for master's theses. If you're interested in pursuing a thesis, come talk to me! A thesis is a great way to find out if you might be interested in going for a Ph.D. later. Even if not, it gives you a substantial piece of work to show to prospective employers.

All projects require a good command of Java and knowledge of at least an interest in graphics programming.

Statistical Tools in Parallel Coordinates

Parallel Coordinates (PC) is one of the most powerful visualization techniques for high-dimensional numerical data. Interaction techniques like scaling, translation, etc. are useful for seeing patterns, but make it difficult to keep track of the numerical differences and strength of correlations that can be seen.

In this project, we will add statistical tools to an existing implementation of Parallel Coordinates. The goal is to indicate the strength of correlations that are seen (as lines pointing in roughly the same direction), show the significance level of differences between subsets of the data, allow the user to select all values that are within one standard deviation from the selected value, etc.

The Parallel Coordinates program we will adapt is written in Java. A working knowledge of Java is required; basic statistics would certainly help; some basics of graphics programming would be desirable but can be acquired quite easily.

Visualization Explanation using Animated Transitions

Parallel Sets is a visualization technique for categorical data. While it is based on bar charts, it requires considerable effort to become familiar with. We want to use animations and transitions from more familiar data displays to help users understand this more complex (and more powerful) visualization.

The student will design, implement, and test several animations and transitions. There is some existing animation code in the program, but we expect that some of its architecture will have to be adapted to accommodate more elaborate animations. We want to try out a number of different strategies for animations (e.g., starting from a bar chart of a single dimension that morphs into one dimension in the Parallel Sets, and then adding two or three more dimensions in a similar way). In a small user study, we will then empirically test which one(s) are the most effective.

Parallel Sets is written in Java and uses OpenGL. Knowledge of Java or a similar language is required; direct work with OpenGL is fairly unlikely, but if necessary, we will provide all the assistance needed.

Rapid Prototyping for Information Visualization

Implementing new visualization techniques requires a lot of effort and manual programming. We want to make it possible for researchers, designers, etc. to develop visualizations much more quickly and with immediate feedback to see what their designs will look like with real data.

In this project, the student will implement a rapid prototyping system that will allow the user to draw shapes like in a vector drawing program, and then attach data dimensions to visual properties of these objects. The program will show the resulting visualization using a real data set in a separate view.

The program is to be written in Java, so knowledge of that language is required. For performance reasons, OpenGL will be used for the display code. Some graphics experience would be useful, but knowledge of OpenGL is not necessary, using it for 2D graphics is fairly straight-forward.

Music Visualization

There are many visualization plugins for mp3 players, which produce more or less interesting-looking graphics from music. The goal of this project is to develop ways to visualize the actual musical structure in a way the viewer can use to understand the music.

In particular, this project will try to visualize the beat structure in electronic music. We will develop ways to show the layers of beats, how they interact, and how they change over time.

A working knowledge of Java and an interest in music are prerequisites for this project. Experience with graphics programming would be a plus, but is not strictly necessary.

Robert Kosara @ UNC Charlotte