<!doctype html public "-//W3C//DTD W3 HTML//EN">
<html><head><style type="text/css"><!--
blockquote, dl, ul, ol, li { padding-top: 0 ; padding-bottom: 0 }
 --></style><title>Various things Squeaky</title></head><body>
<div>A message I'm sending to someone new to Squeak, and might be
interesting to the rest of you too.<br>
If you can think of good additional exercises, that help to get to
know Smalltalk &amp; Squeak specifically, I'd like to hear about
'em.<br>
</div>
<div>Tal,<br>
</div>
<div>Have fun. I suggest writing your answers down, so if I know
better ones, I can tell you, and if you come up with better ones than
mine (which is quite likely) I'll learn something new too.<br>
The exercises assume 3 things - you know the basic syntax of
Smalltalk, you have a working Squeak, and you know how to use the
basic Squeak UI. If any of those 3 are a problem, ask me, I'll be glad
to help.<br>
</div>
<div>The mail list -<br>
squeak@cs.uiuc.edu<br>
</div>
<div>The Swiki -<br>
<a
href="http://minnow.cc.gatech.edu/squeak.1"
>http://minnow.cc.gatech.edu/squeak.1</a><br>
</div>
<div>Exercises -<br>
</div>
<ul>
<li>how many words are there in aString?
<li>how many different words are there in aString?
<li>how many appearances are there of each kind of word in aString? (a
good solution for the previous question has precidely one more message
send than a good solution to this one.)
<li>draw a circle made of 50 points on the middle of the screen
(Display will come in handy. look at the examples in the class Pen.)
<li>what exactly is Display?
<li>what exactly is Pen?
<li>what are the concrete collection classes (a concrete class, not
being abstract, can and usually will, have instances...)? describe
them briefly.
<li>what are Dictionaries?
<li>what is a SystemDictionary? what is it's name? what does it
include?
<li>why is the method gcd: important? what is the best way of finding
out the answer to this question?
<li>look at some source. Right click on it. choose more until you see
explain, format, and such. Explain what they and the other menu
choices do. Some of them offer you a menu of possibilities. Play with
them, explain what they do in general. Use them to revise your answer
to the previous question.
<li>what are the control structures in Squeak? (hint: what is similar
about #ifTrue:ifFalse:, #whileTrue:, #do:, #inject:into:..... ? what
is it that allows them to be control structures? look for that in
other messages.)
<li>look at Delay&gt;&gt;testDelayOf:for:rect:. Run the examples
embedded in the method. Look at the code. Look at the classes in it's
category. Answer the following questions -
<li>what's so special about ProcessorScheduler?
<li>what priority levels are there?
<li>make the 50 points take 200 seconds to get drawn, without stopping
the user from using the system. Check how much time this really took.
Make it take more than 200 seconds, by being a nuisence as a user. If
you wish, make it take 200 seconds (almost) no matter what.
<li>rather advanced exercise - make a method that prints out the names
of the temporary vars *in the method that called it*.</ul>
</body>
</html>