Squeak
Squeak Lesson 1
Presentation: Introduction to programming, tour of Squeakland.org, first Squeak tutorial: paintingLab: Squeak painting tutorial
QuickQuiz: Squeak painting
Presentation: Squeak Tutorial: Handles
Lab: Handles Tutorial
QuickQuiz: Handles
Presentation: Squeak Tutorial: Make a Car
Lab: Car Tutorial
QuickQuiz: Making a Car
Tuesday, June 21
Plan
Diablo Valley College is having severe network problems, so the kids' computers are unusable today.
Dave shows his Roomba, the robotic vacuum cleaner
Is it a computer?
Discussion of programming
What decisions? State? Loops?
Animusic, play tracks from DVD
How was this done? What programming is involved
Kids introduce selves, talk about programming experience
Program demos
Teaching assistants
Chris
Ian
Mine (source in DBSchools project on sourceforge.net)
Math quiz multiplayer game
others (see Java Run dialog)
Run python client to connect to Java server
Introduction to Squeak
Reflection
We watched a Roomba robotic vacuum cleaner and talked about how it works--what kind of programming it must contain.
We discussed how big time commercial games take many talented people a
long time to develop, and how though we will learn a lot in our short
time together, we mustn't expect to create a game of commercial
quality--or anywhere near it.
I told the kids about Alan Kay, the developer of Smalltalk (and
Squeak). I demonstrated some Squeak programs, and the kids learned very
quickly and enjoyed themselves a great deal.
I made a (crudely-drawn, as usual) spaceship and make a script to make
it move and turn on its own. Then I added a steering wheel back at
mission control that was "tied" to the rocket and could be used to
remote control it. Most of the students did similar things with their
own graphics and ideas.
We're off to a great start!
Wednesday, June 22
Plan
Tutorial 3 from squeakland.org: make a car that drives by itself on a track. Then apply the new skills to make something of your own invention. Here are some ideas:A skier going down a slope
A plane that flies into a cloud, then does a 180-degree turn
A robotic vacuum cleaner moving around a room with obstacles
Two people that avoid walking into each other
Reflection
We learned to create a car that follows a track by detecting the outside and inside walls. Then we started on similar projects of the kids' invention. The kids were very enthusiastic.Thursday, June 23
Plan
Continue: make a car that drives by itself on a track. Then apply the new skills to make something of your own invention. Here are some ideas:A skier going down a slope
A plane that flies into a cloud, then does a 180-degree turn
A robotic vacuum cleaner moving around a room with obstacles
Two people that avoid walking into each other
How to use the "joystick" (Chris Gibson)
How to do animation
Reflection
Continued making race car track games and other games using the same principles. One student was able to do animation, having read the Squeakland.org tutorial. One made a game where a vehicle is driven around obstacles and when it hits the walls it stops. There were "speed boost" objects. I got some of the kids to walk around and look at other kids' projects that interested them.Tuesday, June 28
Plan
AnimationReflection
I invited one of our students, who had taught himself how to do animation from the squeakland.org tutorial, to show everyone how how to do it. He did an excellent job, and soon the screens filled with animation.Wednesday, June 29
Plan
Using random numbers. A "teleport" example.Reflection
I drew a "truck" and a "teleporter" and then made several copies of the teleporter. I made a script for the truck with a test for encountering the teleporter. The "true" action randomly relocated the truck. One student had an idea of having the truck come out of another teleporter instead of random location. Another asked if we could have it come out of some other one of many teleporters, selected at random. Our (my TAs and I) Squeak knowledge is limited, so we weren't able to help with that, but thought that maybe there's a way to create an array of teleporters and address them by with an index.
Thursday, June 30
Plan
Creating a variable for making a ball bounce
Reflection
I introduced the concept of a variable, and used one (called
"direction") to remember the direction that a ball is traveling, as it
bounces off two paddles, one on either side. We modified the ball's x
value instead of using "forward." We added "5 * ball's direction" to
the ball's x, and then multiplied the ball's direction by -1 (to change
the sign and reverse the direction) whenever the ball saw a paddle. One of the students raised his hand and told me he thought it would be simpler to use "forward" and then have the ball turn by 180 when it sees the paddle. I realized he was right and explained that I was using this as a lesson for teaching about variables. I'll need a better lesson for variables.
Unlike the Python class (25 students) where some kids are having problems with very basic things, everybody in the Squeak class (24 students) "gets it."
Tuesday, July 5
Plan
Dave shows his "Elevator Door" and "Tank" projects:http://www.davebsoft.com/Teaching/Classes/Squeak/
Reflection
This was a big success, I would say. It was nice to have learned enough Squeak myself recently, to be able to answer most of the advanced kids' outstanding questions.
Wednesday, July 6
Plan
A closer look at Dave's "Elevator Door" and "Tank" projects:http://www.davebsoft.com/Teaching/Classes/Squeak/
Squeak's collaborative features: dropping a Morph on another student's world.
Reflection
Squeak's collaborative features were a very big hit. We spent most of the time on this. Three kids wanted to know more about the tank and elevator so I worked with them in a group while the rest of the class explored dropping morphs on each others' desktops and the like.
Thursday, July 7
Plan
Test: Write one or more programs that use as many of the following language features as you can, and show them to Dave or a TA. You may use your notes, squeakland.org, and dbschools.com as resources. You must work alone. If your parents are with you, you may describe what you're doing (don't give anything away to the people sitting next to you), but they may not help you.A morph that uses "color sees"
Animation
Joystick
Random numbers
Reflection
Most were able to do at least "color sees" and joystick control, perhaps half could also do animation and use random numbers. I'm very pleased with how this class turned out.