Thanks for surfing with a better browser. Please consider changing your web browser.
March 05, 2009

Community and Volunteering

In recent months I have become deeply involved in the formulation of a new instructional program at Columbine. What I see with new eyes tonight is that a community is a different sort of organization. Businesses and governments depend on money like most living things depend on fresh water. A community depends on time and commitment. Volunteers are the engines of community.

Wednesday night four representatives of the programmatic visioning team met with other non-Spanish-speaking parents who either have kids at Columbine or might have kids there in the next few years. Our goal was to collect three lists from our constituents: a list of core values and a list of things we want in an elementary school and a list of things we hope our kids will remember at graduation. The meeting was quite successful and I'm pleased by those lists. But I'm especially happy that it was composed entirely of volunteers. It wasn't Government, or Business. It was a bunch of neighbors getting organized around our interest in education.

The most surprising part for me was witnessing community taking root. I felt like there was some striking sense of connection developing between us, though most of us were strangers and the connections are still tentative. That wasn't what I expected, and it may be the most valuable outcome of the evening. The experience has brought back some memories of other experience with community and tied those experiences together in this new insight.

While I was a student at the College of Architecture and Planning, the school was hiring a new instructor of computer design technology. During his interview, the man who was eventually hired, Mark Gross, asked me about the computer community at the school. To my knowledge at the time, I was it. After he was hired, he set about developing community. For my part of that effort I helped to organize a group of students to provide volunteer support for our new computer labs. There were many other ingredients, but a community grew and only a few years later we began to see some compelling application of computers in student projects and various student research projects grew in the Sundance Lab. Many students began to develop programming skills among other things.

When I graduated I asked Mark for suggestions about teaching myself LISP. He replied that, like human languages, it is very hard to learn a programming language without a community. If I were not in a LISP community, why bother learning LISP?

Another language that interested me at the time was perl. I knew it was a common tool for sysadmins. I occasionally found uses for MacPerl at my first job and became active in the online community of MacPerl users. That was my first exposure to online community and what would come to be known as open source software. I now make my living programming in perl with a strong LISP accent.

In a later job I learned to program in Java as part of a small team, but also became a Turbine committer. What is especially interesting about the Apache Software Foundation is their expressed focus on the community of software developers. Their mission and purpose is more about the community of developers than it is about their specific code. Although their code is important, what is most important is the community that supports the code base.

Through my volunteer work, I have earned a right to participate directly in the creation of a new vision for this school. Through my demonstrated commitment, I have earned the respect of my peers, and neighbors, staff and teachers at the school, and administrators at the school district. I'm not sharing this to brag, but to highlight these unexpected benefits of volunteering. When I set out on this path I wasn't expecting to find myself in a position of influence. I just wanted to help solve some problems, to create something of lasting value. Yet in the process, I find myself playing a leadership role in my neighborhood.

Anyone who has participated in an open source project will immediately recognize what I described in that last paragraph. At the Apache Software Foundation they call it meritocracy: those who actually do the work get promoted by their peers to have a direct influence over the code base. The Sundance Lab, MacPerl, and Turbine were my first sustained volunteer efforts and all three cases followed a similar pattern. I'm happy to report the same can also be true outside of code.

Open source, although something relatively new, has radically transformed the landscape of software development. In fact, the core software systems that make the Internet work are all open source: domain name servers, email servers, web servers, TCP/IP stacks and even complete operating systems. I hope that in a few years we will look back and see that a local community, like the one taking root around Columbine, can transform the landscape of public education and local government. I also hope to help my community learn to use some of the power tools enjoyed by open source developers for organizing even very complex community projects.

Posted 11:20 PM | Comments (0)
February 03, 2009

Thanks for the walk, Elliott

Dear Elliott,

I think you're too young right now to understand. I'm writing it here where you can hopefully read it when you're older -- maybe after you have kids of your own -- and where I can remember it later.

I was stressed about time this morning while getting ready for work. Mama and I are overwhelmed making room for your sister. I've been working more hours anticipating the sleep deprivation that comes with a newborn. I'm also investing a lot of time in Columbine's rebirth. I try to remind myself time is not a limitation, only a tool for organizing, but that wisdom is an extremely difficult practice.

While I was reminding myself to breathe and hastily folding yet another load of laundry, you suggested to Mama that we all go for a walk. You had to suggest it several times before Mama and I snapped out of our routines. Mama ran her first errand alone while you walked me to work. Thank you so much for suggesting it.

All urgencies evaporated. As you said "boys sometimes walk, and sometimes pick up trashcans," I followed your cue and righted a neighbor's trashcan that had blown over in yesterday's wind. You talked about "being careful of the pokey branches" as you stepped carefully around a bush overgrowing the sidewalk, protecting your "baby sister" -- today's name for your neon blue and green monkey.

Thank you for the way you kept holding my hand even after we'd crossed an intersection. Thanks for the few minutes we took to watch the mighty front loader moving a pile of rocks for the flood mitigation happening at Elmer Two-Mile Park. Mostly, thank you for drawing my attention back to The Here and Now and helping me let go of The Urgent.

Love, Daddy

Posted 12:07 PM | Comments (0)
January 08, 2009

Outside the box: Mike and Ann Eisenberg and Craft Technology

Early last month, Mike Eisenberg presented a colloquium entitled Rethinking Educational Technology: Some Early Steps. His talk could hardly have come at a better time, considering my recent excitement about possibilites for Columbine's new building. Here are a few of the important ideas I took away from his talk.

He described the conventional wisdom around educational technology as "applied cognative science." How can we find the right way to present computer science so that it takes hold in kids minds? These ideas are all good, he says, but secondary. Many kids are simply not motivated by this stuff and they secretly know that their friends will like them less for knowing it. He proposes we look anthropologically at children and search for places where computation could enhance their culture. He offered suggestions in six different areas: hangouts, economies, rooms, rituals, displays, and buddies. I'll cover only a few of these.

Economies

Kids collect coins, or baseball cards, or these days Pokemon and Magic cards. I collected a lot of Lego bricks, and polyhedral dice, and DnD books, and spatial puzzles (rubic's cubes, interlocking blocks, get-the-ring-off-the-frame). My friends collected clothes with their favorite team's mascots or comic books. These things seem to have longevity (e.g. most of my friends and I either still have our collections or are still adding to them), and a sense of rarity (Magic and Pokemon totally get the importance of rarity).

How can we enhance these kinds of collectibles with computation? Back in the 1980's there were collections of Transformers where if you had a complete set, they would interconnect into a super Transformer. Integrated circuits have gotten small enough that they are already being embeded in toys. But what if they do something more when connected together? What if there are intentionally rare elements that make the collection more compelling? He mentioned specifically examples of quilts or murals or perhaps the rarity could come from personally fabricated items.

Rooms

The whole room should be an object of design. Rooms reflect the self. We collect souvenirs, trophies, mementos, and symbols of progress. Curtains, carpets, mobiles, and wallpaper could all be computationally enhanced. Among other scientists, he quoted the recollections of an astronomer who fondly remembered watching the stars and moon move across the window of her bedroom at night. Could we encourage kids to create custom Stonehenges in their rooms tracking the passage of time and the movement of stars?

Here he presented a few videos of work done by students in his Craft Technology Lab

In this first example, the program for a small robot car is written with barcode squares placed on the floor: code road

This second example, LaserBall, takes a little more explaining. The students place magnetic shapes on a whiteboard and project a digital image onto the whiteboard. They use a laser pointer to create digital balls that become part of the projected simulation. The digital balls projected on the screen fall down the screen and bounce of the physical magnetic tiles on the board. The students are able to move the physical tiles and the simulation responds accordingly. This text description doesn't really stand on its own either. But it should make more clear what's happening when you watch the video.

Rooms could also use magnetic and conductive paints with snapon computer components to do similar kinds of computation. This might be hard to visualize until you've explored some of the work at the Craft Computing Lab (see some of the links below).

Not the computer you grew up with

I especially like that both of these examples (and many others happening at the Craft Computing Lab) take computation well beyond keyboards, mice and displays. They're not even mobile phones. Particularly compelling examples abound in the work of Leah Buechley

The folks at the Craft Technology Lab are making computationally enhanced cultural artifacts. There are many examples that might draw computational thinking into children's culture. Clothing, toys, games, cases for ipods. Possibility.

Posted 10:45 PM | Comments (0)
December 29, 2008

Logo, Fractals, and Recursion; Programming, and Removing Repetition

Last summer while volunteering for OWL I spent several weeks working with a fifth grader we'll call Sam who'd already blown through all of OWL's exercises. Logo is a dialect of lisp and I was particularly interested in teaching Sam some different ways to use lists and functions. I searched the net a bit hoping to find something short and interesting, but with some repetition in its implementation that would help me teach how to remove repetition.

When learning literacy, one begins with reading before writing. Then the two skills grow together, one complementing the other. Working with someone else's code was an important dimension of this lesson.

I found an example logo program in the Dictionary of Programming Languages which turned out to be even better than I expected. I've copied the code from that example below making minor changes to run it in MicroWorlds Logo. In addition to all of my own criteria, this example introduces recursion and fractals.

; Recursive procedure to line, fractalized
to DrawFractalLine :level :length
  ifelse :level < 1 [
    forward :length] [
    DrawFractalLine (sum -1 :level) (quotient :length 3.00)
    left 60
    DrawFractalLine (sum -1 :level) (quotient :length 3.00)
    right 120 
    DrawFractalLine (sum -1 :level) (quotient :length 3.00)
    left 60
    DrawFractalLine (sum -1 :level) (quotient :length 3.00)
  ]
end

; procedure to clear screen and position turtle
to SetupTurtle
  cg setpensize 1 setpos [-160 -10] right 60 clean pd
end

; setup turtle then draw Koch's snowflake(5)
SetupTurtle
repeat 3 [DrawFractalLine 5 330 right 120]

Having seen the above, we typed in the following:

cg pu setpos [-160 250] right 90 pd
DrawFractalLine 0 330
pu setpos [-160 150] pd
DrawFractalLine 1 330
pu setpos [-160 50] pd
DrawFractalLine 2 330

Sam pretty quickly understood that we can compare level=0 with level=1 to understand the basic transformation that happens at each additional level of recursion. At each level we divide the previous level's line segments into three pieces and replace the middle one with two sides of an equilateral triangle.

pu setpos [-160 -50] pd
DrawFractalLine 3 330
pu setpos [-160 -150] pd
DrawFractalLine 4 330
pu setpos [-160 -250] pd
DrawFractalLine 5 330

My first surprise was how quickly Sam began developing an intuitive grasp of recursion. Watching the turtle draw each shape in real-time helped make clear what was happening. A simple set of rules created a fairly complex shape. What a concrete and compelling introduction to recursion compared to computer science tradition in the Fibonacci series!

Although I didn't go there while working with Sam, I realize while writing this there's an opportunity to plant seeds of understanding for "significant digits." We can only barely see a difference between a curves drawn with level=6 and level=7. The differences are smaller than the pixels on our screen -- visually they are insignificant. In other words, there's no extra value to be gained by setting the level any more than 6, and it's obviously not worth the significant extra time.

Having worked with Rob "Once and only once" Nagler for five years now, I cannot look at a routine like DrawFractalLine without seeing the repetition. DrawFractalLine DrawFractalLine DrawFractalLine. Let's clean that up a bit. (By the way, Logo really shines here. It would be considerably more difficult and verbose to do this in Java or C#.)

to DrawFractalLine :level :length
  ifelse :level < 1 [
    forward :length
  ] [
    dolist [command [
      [left 60]
      [right 120]
      [left 60]
      []
    ]] [
      DrawFractalLine (sum -1 :level) (quotient :length 3.00)
      if not empty? :command [run :command]
    ]
  ]
end

This is a small enough bit of code that one might reasonably ask "why bother?" However one additional change lets us reuse DrawFractalLine for another classic fractal: the Peano curve.

to DrawFractalLine :commands :level :length
  ifelse :level < 1 [
    forward :length
  ] [
    dolist [command :commands] [
      DrawFractalLine :commands (sum -1 :level) (quotient :length 3.00)
      if not empty? :command [run :command]
    ]
  ]
end

to VonKoch :level :length
  DrawFractalLine [
    [left 60]
    [right 120]
    [left 60]
    []
  ] :level :length
end

to Peano :level :length
  DrawFractalLine [
    [left 90]
    [right 90]
    [right 90]
    [right 90]
    [left 90]
    [left 90]
    [left 90]
    [right 90]
    []
  ] :level :length
end

In shape, the Von Koch snowflake and the Peano curve are markedly different. But with the code in front of us the similarity of construction is quite concrete. Both involve replacing the middle of one segment with the same basic shape. That's exactly what DrawFractalLine now does. As another point of comparison between these two fractals, the Peano curve is space-filling: the more deeply we recurse, the more completely the space is colored in (for example, this was level=4):

By the time we'd made these changes to the code and talked about a these two classic fractals, Sam started suggesting different base shapes to try. Here was one where he suggested doing things a little differently with the peano curve.

to sam-curve :level :length
 DrawFractalLine [
  [left 90]
  [right 90]
  [right 90]
  []
  [right 90]
  [right 90]
  [right 90]
  [forward (2 * :length / 3)]
 ] :level :length
end

And next is a variation on the Von Koch curve. Why does this one grow in size with the depth of recursion?

to vkzig :level :length
  DrawFractalLine [
    [left 30]
    [right 120]
    [left 120]
    [right 30]
    []
  ] :level :length
end

Sam's attention was really captured thinking of new base shapes and trying to understand why they behave the way they do.

There's also a really important lesson about programming and automation in general. With a couple fairly simple refinements to the original program, we have created our own power tool for exploring this class of fractal. We created our own power tool. As programs go, this one is incredibly simple and small, yet has some amazing reach instructionally. What if we started kids in elementary school building up their own collection of computational tools? What if they shared tools? Computers are more than just fancy typewriters, or televisions. They're more than excellent gaming systems. Used thoughtfully, software offers leverage unlike anything that's come before. The problem we solved today can become a tool that lets us solve more complex problems tomorrow.

Posted 11:42 PM | Comments (0)
December 26, 2008

Reenacting Galileo's experiments with Gravity

Alan Kay and computational thinking part 4.

Alan Kay suggests we have kids reenact Galileo's experiments with Gravity. [The Real Computer Revolution Hasn't Happened Yet p.15]

A nice "real science" example for 11 year olds is to investigate what happens when we drop objects of different weights.

The children think that the heavier weight will fall faster. And they think that a stopwatch will tell them what is going on. But it is hard to tell when the weight is released, and just when it hits.

In every class, you'll usually find one "Galileo child". In this class it was a little girl who realized: well, you don't really need the stop watches, just drop the heavy one and the light one and listen to see if they hit at the same time.

These are powerful experiences: the frustration of measuring with a stopwatch, the excitement of solving that problem with essentially a race to the ground, and the unexpected result that the heavy and light balls always tie. But the real excitement for me is in his examples of how to use computers to enhance the experiment.

It starts with the use of a digital video camera to record the fall of a ball. In the software we pull out several frames from the video and have the students use computer graphics to measure the difference in position from one frame to the next. We can remind the students of their experience in measuring the tire -- this technique gives us a measurement tolerance of one pixel, so we won't get exact results.

Through these measurements the students discover constant acceleration. Remember, they have seen velocity and acceleration when they programmed their digital car earlier. Now they can connect those lessons to their own direct measurements of gravity. In other words, we've begun teaching elementary aged children physics and Newtonian mechanics.

Even better, they can repurpose the earlier exercises with car to create a model of gravity that matches their experimental data. This is an example of the kind of work real scientists are doing all over Boulder -- creating elaborate software models and verifying and adjusting the models against experimental data.

Kay goes on to suggest the kids use their new knowledge about modeling gravity to create a Lunar Lander video game.

Posted 12:36 AM | Comments (0)
December 25, 2008

Measure a tire: math vs. measurement

Alan Kay and computational thinking part 3.

Here I'll summarize another excellent and accessible activity from Allan Kay. [The Real Computer Revolution Hasn't Happened Yet pp. 13-14] This also doesn't require a computer. On its own, it doesn't excite me as much as some of his other examples, but it does set up some important experience for other exercises.

Students are asked to measure the circumference of a bicycle tire and are surprised to get different answers from different materials. Most math activities set children up to expect exact answers (true for most teachers for that matter). This math exercise is really a science experiment in disguise. The students get real answers instead of ideal mathematical answers. In this case the teacher was also mislead to expect an exact answer by the measurements stamped on the tires by the manufacturer. Measuring the tire uninflated gave a different measurement than measuring when inflated. This stirred up questions about measuring under different pressures. The measurements will likely differ at different temperatures too. One of Kay's team contacted the manufacturer and eventually discovered that the engineers don't even know the exact circumference and diameter. "We extrude them and cut them to a length that is 159.6 cm ± 1 millimeter tolerance!"

Kay mentioned Mandelbrot and fractals almost in passing with this example, but that connection is worth describing in more detail, particularly for those who may be unfamiliar with Mandelbrot's work. Mandelbrot published a paper in Science in 1967 entitled "How long is the Coast of Britain?" Wikipedia's entry on Mandelbrot's article has a nice series of images which illustrate what's happening in this measurement exercise. If you measure the coast of Britain with a long ruler, you will get a shorter measurement than if you use a short ruler. Hopefully it's obvious that there's a connection between Mandelbrot's article and this exercise of measuring a bicycle tire. We'll come back to fractals in another post.

Posted 11:30 PM | Comments (0)
December 24, 2008

Despite CSAP, Columbine is succeeding

I attended meetings about Columbine every night last week except Friday. This is an archive of my guest opinion published in the Daily Camera on Saturday

On Tuesday night, I witnessed a profound civics lesson. Despite CSAP and other data, Columbine Elementary School is doing something right.

Recently BVSD announced Columbine will get a new building. Two weeks ago, the principal announced her retirement. Last week the superintendent appointed a new principal, promised a redesigned program, and told teachers and staff they must re-apply for their jobs.

CSAP data report a gloomy academic performance. For two years Columbine have not made Adequate Yearly Progress. The Colorado Department of Education (CDE) recently conducted a thorough audit of the school. Though the district have reviewed the results, they cannot present them until CDE releases them in early January. The school itself will review the report next week.

Several weeks ago, exhausted with years of Columbine rumors, a group of neighbors arranged to meet with Superintendent Chris King on Monday to look at data -- no hidden agendas, just the facts. Our conversation focused on CSAP growth data first made available this year. These data show student improvement, not absolute scores.

Most disappointing, the median growth rates for English language learners (ELL) at Columbine is below the median for ELL students both district- and state-wide. Most surprising, the median growth rates for Anglo children at the school is higher than district and state medians. Consistent with BVSD achievement gap but exactly opposite the rumor mill, ELL students are scoring better at schools other than Columbine and Anglo students at Columbine are outscoring those at other schools.

I believe the superintendent sincerely feels a moral obligation here, and also that his recent decisions were based not only on test scores, but other data as well, including the school climate data and the CDE audit. However, he made at least four mistakes.

1) Last week's announcements implied blame on the teachers and staff. The issues impacting Columbine are far too complex to affix blame on one group. Teachers at Columbine are committed to their students and would welcome any effort to improve the school. They deserved better.

2) Effectively firing the entire school stifled communication. Who would be willing to challenge the decisions of their future employer before the job interview? Moreover, educators throughout BVSD now fear similar treatment.

3) He should have discovered the restrictions on publishing the CDE audit before taking action. In haste to answer his moral obligation, he took actions that could not be defended convincingly.

4) The teachers and staff participated in the CDE audit with great candor about their strengths and weaknesses. The superintendent violated their trust and candor by firing the school in part for weaknesses disclosed in the audit. The teachers deserve to be involved in whatever changes are demanded by the audit.

On Tuesday night the community responded. What the data could not show was on wide display as hundreds of people, about eighty percent Hispanic, packed into Columbine's cafeteria. Clearly, Columbine have forged deep and strong bonds with the families they serve. The air was thick with indignation at the threat to the staff and teachers.

Although the superintendent had prepared a statement, his agenda was quickly overwhelmed by angry questions.

For three hours he endured our moral indignation in English and Spanish. About half-way through, a number of children joined the line for the microphone. Children, including one fifth grader who translated his own speech, asked eloquently, why the teachers who had taught them English wouldn't be at Columbine to teach their younger siblings.

It was a microcosm of our great nation: citizens, immigrants, and children assembled peacefully to petition the government for redress of their grievances. Late in the evening, to his great credit, Chris King agreed to reconsider his decision in the face of this unexpected opposition. He also agreed to first personally review the CDE audit with the teachers. He was visibly affected by each of the students.

He confessed "I get no points for style on how I handled this" and publicly and sincerely apologized for the pain he'd caused.

We now face an extraordinary opportunity. Dramatic changes are necessary and we all -- board of education, administration, staff and teachers, parents, and the community at large -- have a responsibility to be involved in that change. Let us strengthen the powerful social fabric on display Tuesday night. There's work to be done here and we are obviously up to the task.

I can think of no better lesson in civic duty than what happened Tuesday night: through peaceful if angry assembly, the government heard the will of the people and responded accordingly. In particular, the government bowed to the courageous children who, even in elementary school, have already begun to assume their responsibility as our future leaders. Whatever the CSAP and other data show, there can be no greater evidence that Columbine is succeeding.

I'm reminded of something my mother-law wrote after Wellstone died in 2002

We have the great privilege, we think, of living in a democracy, but we are training our students to act in ways that may undermine that democracy....I think that helping our students develop into effective citizens lies straight in our laps as teachers of reading, writing, speaking, and listening. We need to help them to be discerning as they take in information about the world and to speak their own conscience as they act upon the world.

Posted 10:25 PM | Comments (0)