Windowing Systems and Toolkits

Note: this module is now out of date.
Computer scientists must not only know about design, but they must also know how to translate their designs into working systems. As in any craft, the tools available to implementers have a profound effect on the end system, both in the style of the interface and the way original designs are translated into working ones.



Topics covered

Readings from Baecker Grudin Buxton and Greenberg

Getting Tcl/Tk

Tcl/Tk runs on Unix, Macs, and PCs (Windows 95). Programs should run across all platforms, although sometimes things can go funny with the fonts (this is because a font may not be available on your platform, and Tcl tries to find the closest match). As well, Tcl/Tk 8.0 will use native look and feel of all the widgets.

To get the latest versions

Additional Reference material: The Tcl/Tk language


FormsVBT shows an integrated interface builder, text editor, and test interface. Garnet walks through the many sophisticated features of the Garnet toolkit, and is a good example of state of the art toolkit capabilities. GroupKit illustrates a groupware toolkit and the special constructs needed to make real time groupware. All the Widgets shows a variety of widget types. As excerpts were already shown in other topics, I use this only if there is extra time.

In-class teaching tips

This topic can have a heavy hands-on component through a capstone project. If done, students learn the Tcl/Tk language and apply it to their design. They use it to translate their paper prototypes into a horizontal prototype (often finding out that some of their ideas are not implementable), and then to turn their prototype into a working system.

Of course, other languages could have been used instead of Tcl/Tk. I chose it because it is freely available, has a very rapid learning time (compared to other toolkits), and is reasonably robust. It is cross platform (Unix, Windows, Macs), which means students can install it on their home machines and work at home. I do not let students use other languages, because I want to make sure that I evaluate them on the same base platform. However, other languages could work just as well, and we have had successful experiences with Suit (which is also freely available) and Visual Basic (which is not).

Major sources used to prepare lecture material

Last updated September 1997, by Saul Greenberg