Graphical Interfaces

Spring, 1997
CS594 : Graphical Interfaces
Professor Brad Vander Zanden
Computer Science Department
University of Tennessee
Knoxville, TN 37996-1301

Course description

The course was a graduate-level course that primarily covered programming tools for creating graphical interfaces. The course's topics included 1) graphical design, 2) object-oriented programming (the students programmed in both Python and C++), 3) constraints, 4) incremental redisplay, and 5) event-handling, with an emphasis on the interactors model. The students individually worked on projects of their choosing through the semester. The project assignments included: 1) creating storyboard sketches of their projects and having them critiqued by other students in the class, 2) creating prototypes of their projects in Python and having them critiqued by other students in the class, and 3) creating their final projects in Amulet/C++.

Card catalog (Anne Benson): An application for browsing through a card catalog.
Landscape (Kim Buckner): An application for trying out different landscapes for a piece of property. A neat thing about this application was that you could enter a future year and see what the landscape would look like in that year, assuming various growth factors for the trees and shrubs.
Sport diagrammer (Dorian Arnold): An application for diagramming plays for different sports. The screen snapshot shows a diagrammed play for basketball.
Temple of darkness (Bill Green): An adventure game, somewhat like hack, but with three-dimensional images. The player uses keyboard keys to manuever through tunnels, collect treasure, and fight monsters. All images are gifs, so "dynamic" fighting does not occur (i.e., the graphics do not change as a fight progresses) but you still get a nice feeling of moving through a picturesque maze.
Overrun (James Davis): A front end for an Avalon Hill-like board game that would pit opposing armies against one another in battles for land. The front end provides each player with a budget, from which the player purchases arms and troops, places the arms and troops into units, and moves them to various places on the board.
Program visualizer (Jennifer Finger): A program for graphically depicting the behavior of a program run on a message passing, parallel machine.
Checkers (John Gilbert): A checkers game.
Finite state machine (Larry Karnowski): An editor for visually creating finite state machines.
Network (Chris Larson): An editor for visually configuring networks consisting of server machines, workstations, printers, and either Ethernet or serial line connections.
Tree debugger (Luojian Chen): A graphical debugger for a binary tree program. The debugger shows the existing tree as well as the values of other significant variables in the program. The debugger is meant for one of the lab assignments given in a junior level data structures class at Tennessee.
Ship combat (Mark Spurlock): A graphical game in which you captain a boat in combat with a boat controlled by the computer. Various keyboard controls give you the ability to maneuver your boat and to fire at the opposing boat. A dialog box at the bottom provides running dialog from your crew members.
Lab monitor (Scott Beeler): An application for monitoring the activity on workstations in a computer lab. The screen snapshot shows that the user has selected one of the lab's workstations and requested that the processes on that workstation be displayed.
Markov Chain Editor (Brian Davis)An editor that allows Markov chains to be created and analyzed.
Bubble Viewer (Michael McDaniel)A viewer for various types of image files. The screen snapshot shows the screen for opening an image file.