links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Last updated at 10:51 pm UTC on 25 November 2013

A Self-Study Course in Squeak

back selfStudy next

Your situation

You want to learn Squeak. You have downloaded and installed it. You've poked around the image. You've bought and read one of the many Smalltalk books. You've browsed the Squeak Swiki pages and printed off and read some of the tutorials. (http://www.dmu.com/squeak is quite new and nice.) You lurk at the Yahoo Squeak Maillist Archive. You've looked through both New Squeaker questions and the Squeak FAQ.

And yet you still don't feel like you know what it's all about. You'd like to start becoming a "contributing member" (been listening to too much PBS;) but aren't sure you could even comment on bugs. Do you have an application in mind, but don't know where to start working on it? Does it all feel to overwelming? Maybe you'll try again after the new year....

Our solution

We've been there. Heck we are there. So let's work our way out.

We learn by doing, by exploring and by making things. We learn by having friends point out what might be interesting and helping make sure we really "get" it. So that's the approach we will take here. This "course" consists of suggested topics, with examples, and with a quiz for each topic.

The Course

Disclaimer: Construction on these pages has just started. We would very much like for you to try them, so that you can learn and help improve the learning process for the next person. But be aware that much of this is just being written. This course works with Squeak 3.7a and should work with 3.6.

A video approach

Lawson English has made a sequence of videos providing a pretty darn good introductory course


FAQ: Mouse Buttons - Or, where the heck is the red button?
Menus - The WorldMenu, Morph menus, etc.
Halo handles - Or, how to delete, resize, or move things on the screen.
Projects - These are like desktops, except you can have lots of them.
Flaps - A neat UI widget that acts like a drawer full of stuff.
Object Bin - Lots of neat stuff here. Drag n drop stuff to play with them.


restart with keyboard commands - Making sure we can follow directions.
The Workspace - Like a command-line interface, but cooler.
The Transcript - Like the output of a CLI, but uh... cooler.
The Inspector - See what your objects are up to. Live!
The Debugger - Debugging is so easy in Smalltalk. Find out why!
The System Browser - Classes can be viewed, edited, and created from the Browser.

See also Basic Squeak Development Tools


Smalltalk Objects - What are these objects I keep hearing about?
Smalltalk Classes - What exactly is a class?
Smalltalk messages - Unary, binary and key word messages.
Smalltalk messages with parenthesis Precedence of evaluation.
Smalltalk message with periods and semicolons Separating statements and cascading messages.
Smalltalk :=, = and == Assigning values and testing for equality.
Smalltalk [] Referring to a block of code without giving it a name.
Smalltalk ifTrue: Booleans and conditional logic.
Smalltalk do: Iterating over an Array.

Break Time Hello World programs See how many of ways you can do this old war horse.


Smalltalk integers An introduction to Integers.
Smalltalk Arrays Arrays of characters, symbols, strings and numbers
Smalltalk Dictionaries An introduction to Dictionary, the workhorse of Smalltalk.

Why does it take so long to get to objects


Getting Started with Etoys / User Scripting - Morphic simplified! Even children can program with E-Toys!!


Setting up a Morphic project - Setting up our sandbox to play in.
selfStudy - Create a Rectangle object in Morphic - Just the basic ideas about a morph.
Your own morph - Let's make our own morph from scratch.
Animation - A little about the step method.
Layout - The basics of Morph layout methods.

Feedback - Please, update this page with corrections and comments This is a Wiki, so feel free to make corrections/ extensions to the instructions above. Also feel make suggestions comments below. The more specific your comments the better. Nothing motivates continued enhancements like knowing that folks are using the material. So if nothing else add a note that you were here.

This is AWESOME!!!
I've been looking for a coherent How To like this for ages! This should be on the swiki main page.
I stumbled on this page by accident while searching for date class info. So if anyone can add info for that here, I know I would be quite happy !

Squeaker at large

I concur. A single, coherent, Squeak 101 "course" is a fantastic idea. More advanced courses would be an obvious extension and I hope it happens. I hope this idea will grow and mature quickly.

If I may offer a suggestion to the author and anyone else kind enough to contribute: why not just pilfer some course material from other places here on the swiki? There are a bunch of disconnected tutorials spread out all over the place... why not just whiddle/edit them down to their basics, so that their style is selfStudy-like, then voila!, instant course.

Of course, having the pros write out good course material would be the ideal solution. I hope that happens! Ahh, the Minnow Online University of Squeak Education, what a kind fantasy you are. Would Alan be Dean? :P

Chronic Squeak Newbie

We will indeed use existing swiki material. Where it makes sense, we will modify existing pages and link to them or gather the required info from many pages and write a new, comprehensive page for it. :-)

jjh (yeah,I know I made the first comment but I'm learning while I'm writing !!)

Just want to say Thanks to you.

Now some Common tasks:
  1. File managing in Squeak, this includes how to open, read from, write to, find, copy, move, rename, and delete a file, Listing, changing Directory/file attributes, http://www.canyons.edu/users/langec/, and Dealing with binary files such as some data files generated by C programs.
  2. How to manipulate external programs from inside Squeak such as open a windows notpad program while putting into the openned .txt file some lines of contents, etc.
  3. How to fill in webforms within Squeak say openning a web browser on MSN and filling in my passport info into it.
  4. How to convert a dictionary to an array, an array to string, and vice versa, say I want to read data from a text database and fill them into an ODBC Sqlite database.
  5. How to map data in a database into my objects in Squeak, this maybe too complicated to be discussed here, but
  6. How to send an email message from Squeak while I don't have access to any external SMTP server, that is, can I send email using native SMTP support in Squeak, if there is any?
  7. How to read quotation data from Yahoo financial site (see Recipe: Saving a file to your computer from the Internet), this I really LOVE while I don't know:
  8. How to plot a candle stick chart in Squeak (see How to lay out submorphs - example 5 - bar chart), perhaps with volummn and can be zoomed in and out on demand by inputting symbols
Maybe too many questions?

See Squeak Cookbook where some of these questions are answered.