Digital Learning Environment


The Pit of the Pendulum

I chose Squeak for a digital software environment as Mark Guzdial’s presentation at CSCL made it look easy and it also seemed to have a good GUI (graphical user interface) for creating programs using a drag and drop. I was particularly impressed with the apparent versatility of the program as it is the heart of Swikis (Squeak Wiki Wiki Webs), which run on almost any platform. With power and a good user interface, how hard could it be? I just intended to do something simple—paint a simple pendulum and program the equation for simple harmonic motion using the small angle approximation so it would swing.

How easily we are deceived.

Learning Process

Click for larger versionI ordered Squeak: Object-Oriented Design with Multimedia Applications [Guzdial, 2001] as it was the recommended book for the course. While waiting for it to arrive, I figured I would explore Squeak a bit. So, full of high hopes, I launched Squeak 3.0 on my Windows XP computer and was met by this screen (right). Well, it looked friendly enough, although the mouse’s eyes had the annoying habit of following the cursor.

After clicking around a bit, and still realizing not much was making sense, I pulled up the World menu (left), which is the top level menu within Squeak, accessed by left clicking anywhere on the world. "World" is Squeak's term for any part of the desktop that isn't covered by an object. The help items made little sense, so off to Squeakland I went to find out more about the program. The first thing I discovered is that I needed a plugin, so I went to the plug-in page. My two main browsers are Internet Explorer 6 and Netscape 6.2, neither of which was supported, so I couldn’t look at the projects on line. I succeeded in downloading one of the projects then figured out how to open it. Click for larger versionA pink window popped (right) up that looked like it might be an error message, but the error messages weren't very helpful as the first line was "SmartRefStream>>scanFrom:"

Since that was going nowhere fast, I fired up an ancient version of Netscape (4.79), loaded the plugin, and tried to follow their “make your own car” tutorial. The first problem was that the version in the browser was different than my version, with some of the menu items being different as well. After much effort, several crashes, features that sometimes seem to work and sometimes didn’t, I finally was able to get a basic car to run that mimicked the car Guzdial had illustrated at CSCL. The car, track, and joystick are all objects and their properties can be viewed with the object inspector. The object inspector shows information about the object, such as it's position, location, or orientation, but it also allows the tiles (boxes that show a piece of information) to be dragged out of the object inspector, which it then converts to a script. Click for larger imageThe image (right) shows the car on the track with the heading of the car controlled by the angle of the joystick. The script in the center contains the tiles that are the program, which was created by dragging and dropping tiles representing various properties or methods from the object inspector. It’s also possible to view the actual code rather than the tiles

Guzdial’s book arrived about that time so I eagerly ripped open the package and started reading…. It rapidly became apparent that the book did not address creating items through the graphical user interface; rather, its focus was to teach object-oriented programming (OOP) through Squeak. It also was written about Squeak 2.8, which did not have the morphic projects that are a focus of Squeak 3.0. However, he was very clear on one helpful point—everything in Squeak is an object.

Although the book wasn’t much help, it did show most of the mathematical operations. I had discovered that help menu isn't much help. I felt I was ready to try my pendulum. I easily painted a pendulum but its center of rotation wouldn’t budge. After digging around in menus, I finally found a way to change the center of rotation when I couldn’t just grab it and drag it.

At this point I ran into a limitation of the graphical interface in Squeak. Although it’s possible to drag numerous tiles into a script so that the script is built only of tiles, the numeric operations are limited to arithmetic. A random number tile can be created if a random number is needed, but any higher operations, such as exponents, logs, or trigonometric functions, require going into the code and programming in Squeak. I went into the code to make changes, I finally realized the changes always disappear when switching back to tile view. It’s possible to do some nice programming, and then have it disappear in a flash. It was time to stop the squeak development as my goal with Squeak was to explore scripting using the graphical user interface, not to learn to program in Squeak.

I created another car and used the tests that were available as tiles to program it to stay on the track. That design led to interesting instabilities as the car wandered back and forth. That type of instability would be worth students exploring. Click for a larger image

I made use of the everything-is-an-object design of Squeak and started driving the help menu (left) around the track using a joystick while the car tried to find it's own way around the track.

With all of the other screen shots, why I didn't incorporate one with the pendulum? The screen shot was much less interesting than anything else as it looked only like the joystick shown at left.

As desperation knows no budget I also ordered Squeak: A Quick Trip to ObjectLand [Korienek et. al., 2002] during my investigations. This book also did not deal with scripting using tiles. However, it does a good job of teaching the fundamentals of object-oriented programming using an entertaining dialogue between a hapless software engineer who is transported to ObjectLand and the Objective Wizard.

Affordances and Constraints

Based on all of the time I spent with Squeak, the following strengths became evident:

  • Free.
  • Runs on many different platforms.
  • Very powerful Object-Oriented Programming Language.
  • Tile scripting is simple once the paradigm is understood.
  • Tile scripts can be designed using numerous tests (conditionals), which makes for a powerful combination if done well.
  • Everything is an object.
  • Multimedia capable.
  • Has numerous other areas worth exploring.

Squeak has several obvious weaknesses:

  • Tile scripting is limited to basic mathematical operations on numbers.
  • The interface (menus, menu items, locations, terminology, etc.) is so different from other programs on PCs or Macintoshes that it’s not easy to understand.
  • Poor help system so troubleshooting is tedious.
  • Plugins are not available for the most popular browsers.
  • Occasional instability as the program crashed several times.
  • Inconsistencies in the user interface and operation.

In short, Squeak is obviously a very powerful program but it’s not a polished program. In playing with it and looking at the examples It would be a good program for middle school students to explore assuming the teacher knows enough of the basics and the interface to get them started and to translate messages for them.


Click for larger imageIt had taken numerous hours stretched over a couple of months to get to the point in Squeak where I realized that I couldn't create the simple pendulum by dragging tiles. I wondered if I could do it another way? Since I have some familiarity with Logo, I downloaded the MicroWorlds Pro Logo trial. From the time I started installing the demo on my computer until I had a pendulum swinging from a turtle (right) was approximately one hour. I'm not a Logo power programmer—I keep learning new things as my students work with their version of logo. (We use the free Windows-only MSW Logo from However, even with my limited knowledge MicroWorlds was very simple to get up and running and it has an adequate help file with plenty of examples. Unless you have a definite reason to use Squeak with students, Logo is a powerful, and much-easier-to-learn, environment.



Squeak Swiki—

Guzdial, Mark, Squeak: Object-Oriented Design with Multimedia Applications, Prentice Hall, Upper Saddle River, New Jersey, 2001.

Kornienek, Gene,  Tom Wrensch and Doug Dechow, Squeak: A Quick Trip to ObjectLand, Addison Wesley, Boston, Massachusetts, 2002.


Created 4/4/2002

Last maintained 08/23/2003


This site best viewed with browsers released in 2001 or later.

Original Content ©2001-2008 by Derrel Fincher, Other rights reserved by individual authors

Do you have suggestions, questions, or comments about anything you see here? Contact me.