Skip to content. | Skip to navigation

Personal tools

Squeak

Squeak Lesson 1

Presentation: Introduction to programming, tour of Squeakland.org, first Squeak tutorial: painting
Lab: 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

Animation

Reflection

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.