Teaching is one of my passions. Via teaching, I deepen my understanding of the field. Teaching courses has provided me with fundamental insight into visualization, and generated new directions for my research. In turn, I bring my research results back into the classroom where they are disseminated and refined. This tie between teaching and research is a theme in many of my classes; several projects from courses I have taught have either been presented at international conferences or published as journal papers.

This page details students currently working with me and about courses I teach. For information about my teaching philosophy, see my CV.

Students Past & Present

Current Students

Donald Johnson (PhD)
Flood Visual Analytics
Andrew Stamps (PhD)
Heterodox Visualization
Andrew LaFrance (BS/MS)
Security visualization
Morgan Sweeney (BS)
Bioinformatics Visualization


Ketan Mehta (MS August 2006)
Thesis: NLCViz: Tensor Visualization and Defect Detection in Nematic Liquid Crystals
Miao Liu (MS December 2007)
Project: Visualization Interface for Vortical Flow Simulations
David Wilson (MS August 2008)
Project: Computer Forensics Visualization
Chad Steed (PhD December 2008, co-advised with J. Edward Swan II)
Dissertation: Development of a Geovisual Analytics Environment to Conduct North Atlantic Tropical Cyclone Trend Analysis
Yagneshwara Lanka (MS August 2009)
Project: Security Visualization
Chris Lewis (MS August 2012)
Project: Natural Distaster Visualization
Peter L. Curtis (MS August 2012)
Project: Security Visualization
Marlon Taylor (MS August 2013)
Project: Student Retention Visualization
Christian Hall (BS May 2014)
Project: Color Chooser Tool
Swapnik Shah (BS May 2014)
Project: Bioinformatics Visualization


Currently Offered

CSE4/6453: Game Design

[Spring 2009, 2011, 2013–2015] Study the principals, practice, and techniques of interactive computer game design, including design theory, design process, and design production. Analyze existing computer games. Build interactive computer games in a small, interdisciplinary group format.

Past Courses

CSE1284: Introduction to Computer Programming

[Spring 2010, Fall 2010] Introduction to basic problem solving using computer programming and the basic structures of programming. Data types, selection, loops, and functions.

CSE1384: Intermediate Computer Programming

[Spring 2011, 2013] Continuation of problem solving with computing. Analysis of algorithms, recursion, and linear data structures.

CSE2383: Data Structures

[Summer 2012] Trees, hash tables, sort and search algorithms.

CSE3813: Introduction to Formal Languages

[Spring 2005, Summer 2008, Fall 2008, Fall 2011, Spring–Summer 2012, Fall 2013, 2014] Introduction to the theory of computation. Regular languages and automata, context-free languages and automata, computability theory, complexity theory.

CSE4413/6413: Principles of Computer Graphics

[Fall 2003–2005, 2007, 2010–2011, 2013] Introduction to Computer Graphics and OpenGL. 2- and 3-dimensional modeling, transformations, and rendering.

CSE4990/6990: Illustrative and Non-Photorealistic Rendering

[Spring 2007] Introduction to Non-Photorealistic Rendering and its applications.

CSE4/6990: Digital Visual Communication and Analysis

[Fall 2009, Summer 2011, Fall 2014] Introduction to the design principles behind effective digital visual communication and visual analysis.

CSE4/6990: Mobile Computing

[Spring 2012] Basic of web and device-based mobile programming.

CSE4/6990: Web-based Graphics and Visualization

[Summer 2013] Web-based design; web-based computer graphics and visualization tools.

CSE8413: Visualization

[Fall 2005] Essential algorithms for three-dimensional rendering and modeling techniques, viewing transformations, illumination, surface modeling, methodologies for visualization of scalar and vector fields in three dimensions.

CSE8990: Information Visualization)

[Spring 2004, 2005, Fall 2006, 2008, 2012] Introduction to Information Visualization. Theory and techniques including document visualization, database visualization, and graph visualization.

CSE8990: Display Technology

[Spring 2008] Introduction to large and small display technology and interactions for such devices.


Python Tutorials

A rough introduction to Python, the language I use in my research and teaching.