LearningForward

Kent Chesnut's technology in education blog.

March 20, 2008

Scratch - Limitations

Filed under: Constructivism, Scratch, Programming, K12 — kchesnut @ 7:40 pm

While I’m still a big advocate of Scratch as a constructive environment for children to learn programming along with powerful ideas in mathematics and science, I have run across several limitations.

Limitations are common in engineering.  Limitations - often referred to as trade-offs - are a part of every project.  I had one coworker (Electrical Engineer) who used to say - “I can do it fast, good, cheap; pick 2 out of 3.” 

In a classroom situation using Scratch to demonstrate a concept, I suspect students will run across these limitations occasionally.  Usually, all that is needed is a creative trade-off.  I can’t figure out how to make _____, but this other idea I can do is pretty good.

In my efforts to think through ways in which Scratch could be used by kids in a classroom situation to demonstrate their knowledge of a scientific concept, I started thinking about Radiocarbon dating (OK, so I have odd thought patterns!).  Suppose the class has 20 - 25 kids and 5 computers.  What could a teacher do to make a constructive use of Scratch to help kids understand Radiocarbon dating.  The following came to mind.

  • Break kids into 5 small groups.
  • Break out the basic concepts of Radiocarbon dating… I break them down as
    • How is Carbon 14 created?
    • How does Carbon 14 break down?
    • What is half-life?
    • How does the concentration of Carbon 14 change over time?
    • How does Radiocarbon dating work?
  • Allow the groups to choose one of the questions to study.  Each group studies their question (with the teacher acting as a collaborator / consultant as needed) and creates a Scratch project to demonstrate the concept.
  • The groups present their projects to the class and answers questions from the rest of the class.

I think such projects could let the kids assume multiple roles; researcher, designer, programmer, teacher, and mathematician (at least in 1 or 2 of the projects).  Do you think the students’ understanding of Radiocarbon dating would be enhanced by such an assignment?

OK, back to limitations.  The most mathematically complex of the questions has to do with the concentration of Carbon 14 over time, so I started thinking about how one might construct a Scratch project to demonstrate his knowledge of this concept (and teach the other classmembers).  Several ideas came to mind - and met with the limitations of Scratch.  Ideas and limitations included:

  • Given a starting number of Carbon 14 atoms, calculate the number of C-14 atoms at times in the distant future.  But Scratch has limited math capabilities.  The concentration decreases as an exponential function.  Scratch has no provision for trig, logarithmic, or exponential functions. 
    Trade-off?  Increase time by half-lifes and hard code in the number of C-14 atoms at each time.
  • Somehow graphically represent the  number of C-14 atoms remaining.  Well, we could draw a sprite for each C-14 atom and have them disappear or change colors as time increases.  But Radiocarbon dating is good to about 60,000 years or 11 half-lifes.  To have even 1 C-14 atom left after 11 half-lifes, we have to start with 2048 sprites.  But Scratch has limited sprite capabilities.  To manually create and place the 2048 sprites would be a tremendous amount of work. 
    Trade-off?  Maybe draw a graph of the number of atoms over time manually and have a pointer sprite move along the curve as time changes to illustrate the passage of time.  (I used Excel to do the calculations and draw the curve).

Radiocarbon dating project

 My project looks like the picture to the right.  This project does illustrate the concept pretty good.

  • Students can see that the number of C-14 atoms drops off over time.
  • The concept of half-life can be explained from the project.
  • Students can see why radiocarbon dating wouldn’t be good for really long periods of time (sensitivity of detection / measuring equipment becomes extremely critical).

Run the project here.  Download the project file here.

The biggest problem I have with the project is the graph… for several reasons:

  • Students probably don’t learn about exponential curves until their upper High School years (anyway, my Sophomore daughter in Algebra II hasn’t yet encountered them in any meaningful way).  It’s also not clear at what age a student would have sufficient experience with both the math (exponential functions) and Excel (creating data sets and charts) to be able to create the graph.
  •  Given the curve, a 6th or 7th grade student (11-12 years old) could probably create the project.  However, I doubt that the graph (with C-14 atoms / 10’s of thousands of years) will really convey the information to a student of this age.  Some sort of interaction allowing them to change the half-life or time scale interactively may be better - but beyond Scratch’s capability.
  • It is likely possible to let Scratch draw the graph as a series of lines (a sprite moving between points with its pen down) at half-life intervals.  Then the student could play with several variables (starting C-14 atoms, half-life, total time, …) and get a better feel for the concept.  In my experience with other development environments, this isn’t so hard to do for a particular data set.  But if one wants to be able to change things to see what happens, one must implement some sort of auto-scaling - which would likely make the project too complex for students younger than high school.

So what can I conclude???  Scratch is a powerful environment for constructive learning.  However, it has limitations, some of which I’ve mentioned above.  As project complexity increases and knocks on the door of Scratch’s limitations, one needs to design clever trade-offs or consider moving to a constructive environment with more capability (such as NetLogo, MicroWorlds, and probably Squeak).  As always, I’d certainly appreciate any comments and suggestions.

P.S. Another limitation is that Scratch does not allow for string variables - nor does it support the methods normally available in Logo to manipulate string variables.

March 9, 2008

Scratch Adventures in Linux

Filed under: Edubuntu, PuppyLinux, Linux, Scratch — kchesnut @ 9:35 pm

A perfect storm of circumstances has arisen over the last couple of weeks to send me on an investigation of Linux.

  • A project came up that might be feasible if a really cheap embedded computer could be found that would run the flash player. A low cost Linux platform might allow the project to be feasible.
  • Over the years I’ve considered the perfect kids’ computer platform.  I’ve come to believe that Scratch must be a requirement.  The OLPC (One Laptop Per Child) computer may be the perfect kids’ platform, if it’ll run Scratch well enough. Until a native Linux version is available, the chatter on the internet is that there are some limitations. I’ve looked at the (current) limitations of Scratch on the Linux platform in conjunction with my Linux investigations above.
  • My daughter’s XP computer caught a pretty persistent virus. Cleaning using instructions / utilities I found on the internet seems effective, but the virus keeps coming back. I’m wondering if a Linux platform would be a good fit for most of her needs (if only iTunes was available for Linux).

This post will examine what I found out about Scratch on the Linux platform. I’ll also include other interesting tidbits I learned about Linux along the way. I ran these tests on dell laptops. I looked at 2 Linux builds, Puppy Linux and Edubuntu 7.1.

Puppy Linux

Puppy Linux is a compact Linux build. I learned about it while looking for a really cheap platform (as I mentioned above). In my investigations, I found a $100 PC listed as a Mini Linux PC. Pupply Linux is available as a <100MByte LiveCD that allows you to save your work (and configuration, …) to a USB flash stick. The standard build comes with the SeaMonkey browser with the flash player pre-installed. Whether you can run the browser and flash on the $100 platform is not yet determined, but I did try out Scratch on a laptop running Puppy Linux.   Note that you only click desktop icons once in PuppyLinux.  I don’t know how many times I ended up with 2 copies of stuff running!

  • Scratch runs on top of Squeak. I downloaded the Squeak Virtual Machine for Linux from squeak.org, opened it with the default application, and extracted it to /.  I downloaded the standard Image, opened it with the default application, and extracted only the image file (not the Mac version) to /Squeak-3.9-8. I navigated to th e/Squeak-3.9-8 folder and installed by typing “sh INSTALL i686-pc-linux-gnu”. I renamed the Squeak image file (had the revision embedded into the name) to squeak.image in the /Squeak-3.9-8 folder. You can run squeak by navigating to the /Squeak-3.9-8 folder and typing squeak squeak.image. I do get an error about the source files, but that’s all I needed to get Scratch to run on top of Squeak.
  • I downloaded the files only PC version of Scratch (WinScratch.zip) from the Scratch website, opened it with the default application, and extracted all the files to /Scratch. (I should have extracted them to / as the Scratch folder was included in the archive). You can run Scratch by navigating to the /Scratch/Scratch folder and typing squeak Scratch.image.
  • Scratch works fine, if a little slow. This might be due to a lack of memory since Puppy is running totally out of RAM on the LiveCD. Things that don’t work include:
    • MIDI sounds (like drum) don’t work.
    • Presentation mode doesn’t work.
    • Want Help? button doesn’t do anything.
    • Can’t play Scratch projects on the Scratch website as I didn’t work real hard to get Java working.
    • I’m sure you can make a launcher to click on and start Scratch from the desktop; I just didn’t bother to figure that out.

Edubuntu

Edubuntu is a full fledged Linux. It’s LiveCD takes a full 700MBytes. It comes with the Mozilla Firefox web browser. The flash player is not pre-installed and is only a little tricky to get installed and working.

  • Edubuntu has a cool Add/Remove Programs application that makes adding applications easy.  And there are hundreds of applications in the list!  Unfortunately, it didn’t work with Squeak.  After some browsing, I found links to a rebuild of Squeak that would work with Edubuntu.  The virtual machine is available at http://quatur.net/~jens/impara/ubuntu/squeak-vm_3.9.8-6_i386.deb and the image is available at http://quatur.net/~jens/impara/ubuntu/squeakland_3.8-6u_all.deb.  Once downloaded, these are installed automatically and Squeak can be executed by selecting Squeakland from the Education tab under Applications.

  • Download the WinScratch.zip file from the scratch web site and extract it into /Scratch.  You can execute Scratch from the terminal by going to the /Scratch/Scratch folder and typing squeak Scratch.image.

  • Create a launcher on the desktop and set its command to /usr/bin/squeak /Scratch/Scratch/Scratch.image.  (Yep, I screwed up and got 2 levels of scratch folders on this try, too!)  Double-click on the launcher icon to start Scratch.

  • Scratch had exactly the same limitations as when it was running on the PuppyLinux platform.

Notes

  • Both PuppyLinux and Edubuntu worked with wireless internet connections available on the laptops I used to test.
  • PuppyLinux even worked with a Belkin USB-802.11b adaptor on one computer! 
  • Edubuntu requires more computer horsepower, but… the add / remove programs utility and automatic installations make it a much better platform for normal use (provided, of course, you have the horsepower).
  • Edubuntu didn’t properly handle the WideScreen (1280 x 800) on one of the laptops.  It displayed at 1024 x 768, yielding a somewhat distorted screen.  If I remember correctly, PuppyLinux did the same thing.

Conclusions

  • Scratch works sufficiently well on Linux to be a reasonable constructive platform.  Assuming it works as well on the OLPC XO laptop, the XO may be the best kids’ platform available.  If I understand correctly, the MIT people are planning on making a version of Scratch for the XO, so I suspect the limitations will be eliminated soon.
  • Other low cost Linux platforms may also provide good PuppyLinux platforms on which to learn Scratch.

Powered by WordPress