The cT Programming Language Archives

[VPython home page]

Brief history of cT

The cT programming language was developed in the period 1985-2000 in the Center for Design of Educational Computing at Carnegie Mellon University in Pittsburgh (the Center was later renamed the Center for Innovation in Learning; it ceased operation in 2002). The developers were David Andersen, Bruce Sherwood, Judith Sherwood, and Kevin Whitley. The initial impetus was the need for an easy to use graphics- and mouse-oriented programming environment for faculty and students using the then-new "3M" Unix workstations (a million bytes of memory, a million pixels, and a million instruction per second).

Ease of use was important because the alternative, writing in C and using highly complex graphics libraries, was beyond the capabilities of most users. Another issue was that at that time the windowing software was changing rapidly, so that programs written in C that used graphics or the mouse quickly became obsolete. Moreover, it soon became clear that not everyone would use Unix workstations, thanks to the increasing capabilities of the popular microcomputers, especially Macintosh and IBM PC. This put a premium on cross-platform executability of graphics programs, which C did not offer but cT did.

cT was based on earlier languages used by the authors of computer-based educational materials written for the PLATO computer-based education system developed at the University of Illinois at Urbana-Champaign. cT is a granddaughter of the TUTOR language initiated in 1967, and a daughter of the MicroTutor language initiated in 1977. cT differs from the earlier dialects in being designed for the modern graphical user interface (windows and mouse). Here is a reproduction of the textbook The TUTOR Language written in 1977 by Bruce Sherwood.

cT was used for a variety of purposes, but its main niche was the creation of programs for education. Many prize-winning educational programs were written in cT, especially in the area of physics.

In the fall of 1997 Ruth Chabay and Bruce Sherwood taught cT to students in an introductory physics class at Carnegie Mellon, and students used cT to model physical systems with graphical animations of system behavior. Thanks to its ease of use, it was possible in a mere hour or two to teach an adequate subset of cT to students for the purposes of the physics course, even for the many students who had never written a computer program before.

This approach was repeated in the fall of 1998. In the course was a freshman computer science student named David Scherer. In the following year he was looking for an interesting project to work on and proposed creating an alternative programming environment for students to use in the physics course. His hope was to make the programming even easier for novices, yet make it feasible for them to create real-time navigable 3D animations, whereas cT offered only 2D graphics. Assisted by David Andersen, Ruth Chabay, Ari Heitner, Ian Peters, and Bruce Sherwood, in the spring and summer of 2000 Scherer produced the VPython programming environment which was deployed in the fall 2000 physics course. The clear superiority of VPython with its easy to use object-oriented 3D graphics led to the decision to stop development of cT and concentrate on VPython.

Archived here are versions of the cT programming environment for Windows, Macintosh, and Linux, plus the public-domain source code for these environments. No support is currently available for these materials, but you are free to do whatever you like with them.

Further information:   Download VPython A 3D programming environment similar to VPython, but runs in a browser   Information on the physics curriculum

Translated into Serbo-Croatian by Jovana Milutinovich

Translated into Russian by Ivanka Skakun

Later translation into Russian by Olga Fedorova

Translation into Belarussian by Vicky Rotarova

Translation into Ukrainian by Milana Sharapova

Translation into Polish by Science for Everyone

Translation into Lithuanian by Sergey Ivanov

Translation into Greek by Nikolaos Zinas

Translation into Macedonian by Katerina Nestiv

Translation into Indonesian by Jordan Silasen

Translation into Romanian by Irina Vasilescu

Translation into Thai by Ashna Bhatt

Translation into Uzbek by Sherali Niyazova

Translation into Georgian by Ana Mirilashvili

Tranlation into Japanese by Jianhua Ma

Translation into Kazakh by Alan Kerimova

Translation into Spanish by Suan Brown (

Overview of cT

You should not start using cT now, because it is no longer supported. See instead. The following materials are made available as an archive with historical interest.

The cT programming language is an algorithmic language like C, Pascal, Fortran, and Basic, but greatly enhanced by multimedia capabilities, including easy-to-use support for color graphics, mouse interactions, and even movies in QuickTime or Video for Windows format.

The cT programming language offers easy

programmability of multimedia programs, with
portability across Macintosh, Windows, Linux, and Unix.

The cT programming environment offers

on-line help with executable program examples,
a graphics editor for automatic generation of graphics commands,
incremental compiling to provide rapid turn-around, and
detailed error diagnosis.

cT was developed in the Center for Innovation in Learning at Carnegie Mellon University in Pittsburgh by David Andersen, Bruce Sherwood, Judith Sherwood, and Kevin Whitley. cT is a trademark of Carnegie Mellon University.

  1. When is (was) cT the right tool?
  2. Major features of the cT language
  3. Major features of the cT programming environment
  4. Obtaining cT at no cost
  5. Sample Programs Included with cT
  6. cT References

When is (was) cT the right tool?

It would not be prudent to start using cT now, when it is no longer being supported. The following materials are made available as an archive with historical interest.

There are many excellent applications available for creating pictures and diagrams, and for making multimedia presentations, without having to write your own computer program.

However, it is sometimes the case that doing something really new and different is hard to do with these non-programming applications, because they often don't provide enough control of interactions and enough calculational capability to do what you really want to do.

cT offers the open-ended flexibility and power associated with programming languages but eliminates many of the difficulties and complexities usually associated with using a programming language.

Major features of the cT language

Major features of the cT programming environment

Obtaining cT

Download cT 3.0 at no cost for Windows, Macintosh, or Linux: Click here to view the license agreement and download cT.

Programs written in cT run compatibly on all these machines, with no changes required. All that is needed is to transfer the file and compile it.

cT formerly was distributed by Physics Academic Software, whom we thank for their professional work on behalf of cT. Vastly expanded use of the World Wide Web has made it now appropriate to try a network distribution mechanism.

Sample Programs Included with cT 3.0

Here are descriptions of the cT programs available from the cT download page to give you  ideas for your own work:






Physics and Math

Inter-computer programs using sockets

cT References

[VPython home page]