Posts tagged ‘Alice’

Back and Board

I’m back from an amazing vacation in Hawaii.  Highlights included running on a lava lake, exploring an undeveloped section of a lava tube, watching eruptions at night and from a helicopter, snorkeling in Kealakekua Bay with a dozen or more (hard to count fins on other sides of the bay) dolphins leaping and spinning around us, and watching fireworks while sitting in the warm sand at Waikiki.  I discovered again that I find surfing frustrating, and I newly discovered how much I enjoy Hawaiian Poke.

My inbox has an enormous unread count on it, of course.  My iPad arrived while I was gone, so I’m having fun using that to wade through the massive pile of missives.  Not all of my attention is on the email, though, since I am teaching five days of workshops in Massachusetts starting Monday.  This will be my first time to teach Scratch and only my second to teach Alice with Media Computation, and I have materials to prepare today.  I’m attending the last DCCE meeting of the year tomorrow.  If your note to me is in my inbox unread, my apologies and I’ll get to it as soon as I can, but probably not until next week.

One piece of relevant news.  You may recall that I posted my SIGCSE Board statement here last January. The election results were announced this last week, I’m honored to have been elected.  I am now a member of the ACM SIGCSE Board for the next three years, as one of the “members at large.”  It’s a great group of people on the Board, and I look forward to serving with them.

June 11, 2010 at 8:40 am 1 comment

Media Computation and BPC-Related Workshops this Summer

Workshops on Media Computation and related topics on creating engaging introductions to computing are being offered this summer. The goal of these workshops is to encourage teacher innovation in broadening participation in computing by exploring new ways to introduce computing. The workshops are mainly aimed at undergraduate faculty, but are open to high school teachers as well. Details are available at

  • June 14-15 in Amherst, MA: Workshop on “From Visual Programing to Media: Approaches to Starting Computing” including Scratch, Alice, and Media Computation. Hosted by Rick Adrion, Deborah Boisvert, and Renee Fall of CAITE, and co-sponsored by the CAITE and “Georgia Computes!” NSF BPC Alliances.
  • June 16-18 in Cambridge, MA: Workshop on “Media Computation,” hosted by John Sanders of Suffolk University. Funding from NSF CCLI.
  • July 5-6 at The College of New Jersey (Ewing, NJ): Workshop on “Media Computation,” hosted by Peter DePasquale. Funding from NSF CCLI.
  • July 7-9 at Virginia Tech (Blacksburg, VA): Workshop on “Media Computation,” hosted by Manuel A. Perez-Quinones, Fudning from NSF CCLI and the NSF BPC Alliance “Georgia Computes!”

All of the “Media Computation” workshops this summer are including some content based on the “Exploring Wonderland” (Dann, Cooper, & Ericson, 2009) work combining Alice and Media Computation.

The workshops are free with generous travel stipends. Meals at the workshop are covered by the sponsors. Lodging and airfare funding is available for participants from outside the region.

Details on the workshop, including how to register, are available at Thanks to all the hosts for making arrangements for these workshops!

May 20, 2010 at 2:51 pm Leave a comment

Pilot testing the new AP CS definition

Here at the AP CS Advisory Group meeting this weekend, the first five curriculum developers, teachers, and pilot testers of the “Computer Science: Principles” course definition were named.

  • Beth Simon of University of California at San Diego will be teaching 900 students (!) in Fall 2010 using the new AP CS  definition.  She’ll use Alice with the book by Wanda Dann, Steve Cooper, and Randy Pausch. She’s also planning to use Excel. She’s planning to use a peer instruction model.
  • Jody Paul will be teaching this class at Metropolitan State College of Denver. His is an open-enrollment school, so he has no control on pre-requisites of students.  He’s planning to focus on connecting students’ life experiences with the learning objectives about computing.  He is going to use Scratch and visualization tools.
  • Larry Snyder of University of Washington, Seattle, is going to create a new course to parallel his successful fluency with information technology course. His new course will be in Python and will have a heavy emphasis on the Web, to relate computing concepts to a computational phenomenon that students care about.
  • Dan Garcia is going to continue develop his course on “Beauty, Joy, and Awe of Computer Science.” His course uses a new version of Scratch called “BYOB” for “Build Your Own Blocks.”  BYOB-Scratch uses a Lisp-like computational metaphor, e.g., where lists can contain blocks, and a “Run” block can execute a piece of block/data in a list.  Dan’s course already hits most of the items in the new AP CS requirements.
  • The fifth pilot tester is Tiffany Barnes of University of North Carolina at Charlotte who wasn’t able to attend the meeting, so I can’t report on her plans.  (She’s on leave this semester.)

It’s exciting that the five pilot-testers are going in such different directions, which in itself emphasizes the flexibility in the new requirements.  The overall curricular definition is up around 70 pages now — there’s a lot of definition to live up to.  What happens next with the AP CS depends a lot on these five.  God and the devil are both in the details.

February 27, 2010 at 9:41 pm 11 comments

A National UK Animation Contest

I thought that this was really interesting — the United Kingdom has a national animation contest for K-12 children.  Notice that the options emphasize programming animations.  Maybe an interesting model for getting kids to consider computing as an activity, maybe a major, or career?

Youngsters aged between seven and 19 are being challenged to create an animated film, of one minute or less, using any of the Alice, Scratch Adobe Flash, Greenfoot or Serif software packages.

Over 800 schools across the country registered to take part in the 2009 competition, and even bigger numbers are expected this year.

via Computer contest hopes to inspire young animators (The University of Manchester).

January 21, 2010 at 8:38 pm Leave a comment

Accessibility concerns for computing education

If you haven’t read Susan Gerhart’s challenging comment on my post about Scratch, I encourage you to do so.  Follow her link (there or below) to see her blog with her wonderful, thought-provoking post about the challenges for disabled students to participate in computing education.

When we talk about making computing education more inviting and engaging at younger ages, where we lose students the most, we most often talk about tools like Alice, Scratch, and Microsoft Kodu which are all visual programming languages! Her concerns are well-placed.  What do we offer the visually disabled?

I’ve been learning from people here at Georgia Tech about universal design. Now I’m trying to take those issues into consideration for the new instructional materials we’re designing for high school teachers — but I’m late to the game.  I don’t think I’m alone.  As a computing education community, we’re not doing enough to build tools that help disabled students learn computing, too.  There are some great resources, like Richard Ladner and the AccessComputing BPC Alliance.  I’m just starting to explore what’s out there.  Thanks to Susan for raising the issue here!

Action: On the home front, pedagogical advances claimed for visual programming languages like Alice are not equally available to visually impaired students and teachers. first, is this a true assertion? How does this situation fit the definition of equal or equivalent access to educational opportunities? should the platform and implementation be redone for accessibility? Note: I’ve personally seen a student rapidly learn OO concepts and sat in on Cs1 courses with Alice, but I am totally helpless with only a bright, silent blob on the screen after download. Yes, I’ve spoken to SIGCSE and Alice personnel, suggested accessibility options, but never received a response on what happens to the blind student who signs up for an Alice-based CS course. Please comment if you have relevant experience with accommodations and Alice or other direct manipulation techniques.

via As Your World Changes.

December 17, 2009 at 11:41 am 3 comments

Can direct manipulation lower the barriers to computer programming and promote transfer of training?

Chris Hundhausen has a really important paper in the latest issue of ACM TOCHI: Can direct manipulation lower the barriers to computer programming and promote transfer of training?.

We’ve known for a couple decades now that programmers read and understand visual programs no better than textual programs — Thomas Green, Marian Petre, and Tom Moher settled that question a long time ago.  However, everybody experiences that starting with a visual programming language is easier than a textual language.  But does it transfer?  If you want students to eventually program in text, does starting out with Alice or Squeak or Etoys hurt? Given Chris found: “We found that the direct manipulation interface promoted significantly better initial programming outcomes, positive transfer to the textual interface, and significant differences in programming processes. Our results show that direct manipulation interfaces can provide novices with a ‘way in’ to traditional textual programming.”  I think that this is big news for computing educators.

November 16, 2009 at 5:28 pm 4 comments

“Exploring Wonderland” is out: Encouraging transfer between Alice and Java

I just got my copy of the new book by Wanda Dann, Steve Cooper, and Barbara Ericson “Exploring Wonderland.”


I’m really interested to see how this book works in classrooms.  As the title suggests, the book integrates Alice and Java programming with Media Computation.  It’s not 1/2 Alice and 1/2 Java.  Rather, both are integrated around the context of storytelling.  You might use Media Computation to create grayscale images or sounds at different frequencies or echoes in your Alice stories.  Or you might use Alice to create perfect greenscreens for doing chromakey in Media Computation.  Students can put themselves into an Alice movie, or take Alice characters and have them interact with live action video. This isn’t Java to learn Java.  This is Java as the special effects studio for Alice storytelling.

The order of the book goes back-and-forth.  First, students use Alice to learn about variables and objects, then they do the same thing with turtles in Java.  Back to Alice for iteration and conditionals, then see the same things in Java.  There’s a real effort to encourage transfer between the two languages.

That explicit effort to transfer within a context is what makes this effort so interesting.  Efforts that I’ve seen at Georgia Tech to teach two languages in a first course have failed.  It’s just too hard to learn any one thing well to get it to transfer.  The advantage of a contextualized computing education approach is that it encourages higher time-on-task — we know from studies at multiple schools with multiple contexts that students will do more with the context if they buy into it, if they’re engaged.  Will storytelling work to get students to engage so that the first language is learned well enough to transfer to the second?  And if so, do the students end up learning more because they have this deeper, transferrable knowledge?

August 21, 2009 at 8:23 am 3 comments

How high school students start thinking about code

My colleague Amy Bruckman and her student Betsy diSalvo have a really great project going on this summer, called Glitch.  Betsy is interested in how African-American males engage with technology and why so few pursue computing as a career.  She notes that African-American males play video games more than any other gender-ethnicity demographic groups, and yet are one of the most under-represented groups in computing majors and careers.  To address this discrepancy, Betsy and Amy are training a group of African-American teen age boys to be game testers, and in so doing, getting them to engage with how the games they love are built.

Amy and Betsy are teamed up with Dr. Charles Meadows of Morehouse College, who is teaching the teenagers how to program in Alice.  Betsy wanted them to see some textual code, too, to get them to see how programs like their games are created.  I agreed to teach a few sessions of Alice + Media Computation (like at the Tea Party site) being developed by Barb Ericson, Wanda Dann, and Steve Cooper.  That way, they’d be learning a bit of textual code to work with their Alice worlds.  I decided to do it with Python, so that there’d be less overhead than Java.  (My slides are available, if you’re interested.)

I’ve found it fascinating to work with the Glitch guys.  It’s been many years since I’ve taught high school students, and rarely in a situation with a small number of students.  I get the chance to see what they’re struggling with, and how they tackle problems.  I’m learning a lot about how these students think about code.

They got the idea early on that they can change constants in programs, and things generally keep working, though sometimes in new ways.  One of the students took our function to generate a negative of an image and started changing constants, like this:

def negative(picture):
  for p in getPixels(picture):
    r = getRed(p)
    b = getBlue(p)
    g = getGreen(p)
    #Original: color = makeColor(255-r, 255-g, 255-b)
    color = makeColor(20-r, 5-g, 100-b)

The result was really interesting. Because the values for red, green, and blue were clamped at 0, the effect was to posterize the image.  Bright colors emerged, and the number of colors were reduced.  I don’t think the student who invented this really understood what he was doing.  It was a positive outcome that rewarded tinkering, poking-around.

Another one of the students wanted to write a function to make an image completely black.  What he wrote was absolutely amazing to me.

def makeBlack(picture):
  for p in getPixels(picture):
    r = getRed(p)
    b = getBlue(p)
    g = getGreen(p)
    #Original: color = makeColor(255-r, 255-g, 255-b)
    color = makeColor(0=r, 0=g, 0=b)

I asked him to explain what he was doing.  Here’s how I think he understood his program.  He saw the variables r, g, and b as defining a relationship — that r would represent the red channel for the pixel, so changing r would change the pixel’s red value.  He saw 0=r as setting the red value to zero.  Why didn’t he write “r=0“?  He hadn’t quite internalized left-hand side vs. right-hand side.  He completely understood that he needed to make a color with red, green, and blue all zero, and he could explain clearly what he wanted his program to do. He just didn’t understand why his program didn’t work.  I find it amazing that he had such a clear view of what he wanted and how his program should work.

As a group, I asked them to try to figure out what the right “brightness” value should be, in order to make a grayscale function.  Here’s what we started with:

def grayscale(picture):
  for p in getPixels(picture):
    r = getRed(p)
    b = getBlue(p)
    g = getGreen(p)
    brightness = ???
    color = makeColor(brightness,brightness,brightness)

The question is, what goes in the place of “???”  Somebody guessed “50” and the others shot him down.  That would fill the whole image with the same gray value.  They guessed “r” (the red channel value) and we tried that — you get a good grayscale, but too light.  Then we tried “b” (the blue channel), and it generates a good-but-dark grayscale.  One of the students correctly said, “We want the average of the color parts!”  So I replaced the right hand side with (r + g + b)/3, and the students started groaning.  “You can do that?!?”  Now, I had told them that the right hand side of the equals sign could be any expression, and I had shown them various expressions.  What was clear that they hadn’t made the connection that the right hand side of the “brightness” computation could be an expression involving red, green, and blue.

I had lunch once with Randy Pausch, the year that SIGCSE was in St. Louis.  He told me, “Variables are easy! You should never have to spend more than 10 minutes on them!”  I think he was telling the truth as he saw it — for Carnegie-Mellon University students.  Most students that I see as non-CS major freshmen at Georgia Tech, and these high school students, find variables and expressions to have a lot more facets and complexities than I might have guessed.  These examples are just pieces of the interesting ways in which they think of variables.  If we want to help students to learn to code, we have to spend time to make sure that they get these basic ideas like variables, which to us are “easy,” but aren’t when one is first getting started.

July 5, 2009 at 10:45 pm 16 comments

Newer Posts

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,030 other followers


Recent Posts

Blog Stats

  • 1,994,754 hits
January 2022

CS Teaching Tips