Scratch materials
I create Scratch materials in various contexts and will try to aggregate them here in the following broad categories:
- Scratch evangelism (or why you should use Scratch)
- Scratch assignments
- Scratch lessons
Scratch Evangelism
While Scratch was designed with young children in mind, I’m not the only one who believes it’s a great tool for teaching beginning computer science topics.
A presentation I gave to the Puget Sound Computer Science Teachers Association on the topic:
HeleneMartin-CSTA-Scratch.pptx
HeleneMartin-CSTA-Scratch.pdf
Cat-and-Unicorn-Race.sb – a silly Scratch program that debunks a number of programming misconceptions including variables all having global scope and while loops exiting as soon as their condition stops being met.
Scratch Assignments
Scratch lends itself very well to ad-hoc experimentation and open ended projects. When the goal in using it is to teach programming concepts, though, I feel structured assignments are necessary. If you want solutions or more information on any of these, please e-mail me at ![]()
Tree (nested loops)
I expected this “tree drawing” assignment to be easy for students who had been in a Python class for seven months. Nested loops are difficult for students and I believe need to be emphasized separately from simple loops, but I hadn’t realized how much harder the concept is for students with weak math skills. These guys really struggled.
This experience really convinced me that teaching problem-solving strategies should be the focus of high school computer science classes. We talked a lot about pseudo-code and writing out some sample output to find patterns. I ended up giving them both the full analysis and the pseudo-code. For stronger students, sample output in a couple of different sizes should be enough.
HeleneMartin-Scratch-Tree-Assignment.doc
HeleneMartin-Scratch-Tree-Assignment.pdf
Graphing calculator (loops, spatial reasoning, lists)
A “graphing calculator” program worked well with high school students grades 10-12 with relatively weak algebra skills:
HeleneMartin-Scratch-Graphing-Assignment.doc
HeleneMartin-Scratch-Graphing-Assignment.pdf
Screensaver (loops, patterns, random)
The next assignment I did with the same group of 10-12 graders with weak algebra skills involved drawing spirals starting from random locations. I also asked the students to create another sprite with behavior of their choice so they could investigate interaction between sprites. They found this assignment somewhat easier than the previous two.
HeleneMartin-Scratch-Spiral-Assignment.doc
HeleneMartin-Scratch-Spiral-Assignment.pdf
RSS
LinkedIn
Facebook
I teach in Snohomish and am researching for a computer game programming class for next year. We were going to use Digipen, but it appears it might be too expensive. We could use a C++ textbook, but it will be more dry (boring) than I would like. I worked through a few scratch tutorials, but I suspect it will just last a few days.
Are you familiar with a month or two curriculum where I could use Scratch to teach some concepts, and then move into C++, that would be ideal.
Thanks, Jeff Harris
I recommend against the Digipen game curriculum — the classes I saw using it did not seem very successful and the cost is really incredible.
Unfortunately there’s not a lot of polished curriculum out there. I hope to one day formalize what I do but I don’t have the time while I teach! I do about a month of Scratch and I think it does transfer pretty well to follow-up languages (I like Python). You can take ideas from my course website (11/16 – 12/14) though I’ll be the first to admit it’s not really easy to replicate in its current form. Happy to have a longer conversation about this if you want to e-mail me.
If you like Scratch, you’ll love BYOB (Build Your Own Blocks) from UC-Berkeley (http://byob.berkeley.edu). BYOB includes all of the goodies of Scratch plus the ability to create your own procedures. (It contains much more, but being able to write one’s own procedures is a huge deal.)
If you do download BYOB, check out the fractal fruit tree:
http://paleyontology.com/auvw/fruit_tree_fractal_jls.ypr
I suppose this could be done in Scratch using message broadcasting, but… ick. This is about as good as it gets when trying to teach recursion:
* No syntax–it’s all drag and drop a la Scratch
* Create your own procedure that calls itself
* Very little math required
* The power of variables is plain
* Doable on Day One of a school year
There is a reason that Berkeley is using BYOB for its AP CS Principles pilot and, frankly, I am seeing things that I had not thought possible, such as students finishing Breakout within the first two to three weeks of a class. (Some finished Pong in week one!)
You can also take a look at my thoughts on BYOB (there’s even a shout-out to you, Josh).
Thank you for the kindness!
The single most important thing that BYOB has to offer is the user can write her own procedures. While I think recursion is fun (and we do fractal trees on day one), my biggest concern with Scratch is that broadcast messages are often substitutes for procedure calls in gunky ways, much like GOTO used to be in Basic. I want my students thinking about elegant code even in a drag and drop language, and the readability and modularity that BYOB has to offer are no small thing.
You’re right about the broadcast problem. The more I play with BYOB the more I like it. If there were the sharing/social networking part of it, I’d use it exclusively.
The Scratch community is absolutely a big deal. I can see that being a potential showstopper for people interested in doing BYOB. I suspect the BYOB folks understand this as well, and I hope that they deal with it ASAP.
wow scratch lives! cool