Archive for June 15, 2010

Studying Engineering before they can spell it

I noticed that this article starts one paragraph with the phrase “Supporters say that engineering reinforces math and science skills,” but offers no phrase starting with “critics say.”  Still, I like the idea of starting kids out early in building and designing things, and reflecting on how they do it.  I do agree with Janine Remillard’s concern about teaching.  We know how challenging it is to teach high school teachers to become computing educators.  How hard is it to get kindergarten teachers to become engineering educators?

All 300 students at Clara E. Coleman Elementary School are learning the A B C’s of engineering this year, even those who cannot yet spell e-n-g-i-n-e-e-r-i-n-g. The high-performing Glen Rock school district, about 22 miles northwest of Manhattan, now teaches 10 to 15 hours of engineering each year to every student in kindergarten through fifth grade, as part of a $100,000 redesign of the science curriculum.

via Many Schools Teach Engineering in Early Grades –

June 15, 2010 at 8:27 pm Leave a comment

Explaining why we reinvent software

Why do we teach students to build the same software that many other people have built before?  Why do we have students build yet another payroll program, or “Hello World!,” or ray-tracing implementation, or fractal tree?  Mostly, these are questions that students have for us about authenticity, but we ask these kinds of questions about ourselves and our own practice too.  There is an on-going debate among data structures teachers about whether it really makes sense to teach students how to build yet another linked list or tree implementation, when almost no one implements their own data structures anymore, and the existing libraries are so good.  I have heard Systems Researchers complain that it doesn’t make sense for academic researchers to build their own operating systems and even compilers anymore, because nobody is going to use anything except Windows, MacOS, and *nix anymore and it’s too hard to compete with the existing offerings.

I heard two answers to these kinds of questions this last weekend.

The first was at the final meeting of our second cohort of Disciplinary Commons for Computing Educators (DCCE) teachers.  I was invited to the meeting last Saturday to hear the teachers (high school and undergraduate) talk about their course portfolios — their reflections on their own practice, assessment, philosophies, successes, weaknesses, and plans for the future.

I hope to post more about the DCCE later, because it was fascinating, but one quote from one teacher particularly struck me.  It was from Bruce Joyce, a teacher educator.

We need to reinvent the wheel every once in a while, not because we need a lot of wheels, but because we need a lot of inventors.

Thus, the point isn’t to build another linked list or tree implementation.  The point is to create people who know how to do those things.  The point of the exercise is to change the student, not create the product.

The second answer came from listening to Bob Edwards Weekend radio show while I cleaned and packed on Sunday. (Got back from Hawaii Thursday, and I’m teaching in Amherst, MA yesterday and today.  Still working on getting to sleep before midnight.)  His guest was Mark Frauenfelder who has just written a book Made by hand: Searching for meaning in a throwaway world. Frauenfelder talks about the complexity of today’s technology discourages people from exploring how to build things themselves, though programming reminds people that “the physical world is also hackable.”  Frauenfelder’s examples of people “making” range from chicken coops to gardens.

He emphasizes the importance of making as a way of changing our relationship with the things in our lives.  Bob Edwards pushed him, and Frauenfelder agreed that making things yourself was more expensive, slower, and resulted in a lower quality product than having an expert make something for you or buying it yourself.

Then why do it?  He had several reasons.  He argued, for example, that something made for yourself can be customized to your needs, and can work exactly the way you want it to.  I didn’t buy that argument.  Not only is it harder to build something ourselves, but I’m less likely to get the specialized parts to work just the way I want.  And how many of us have special needs for our chicken coops or gardens, anyway?  His stronger argument was that we make things in order to change how we think about them.  You don’t appreciate something that you buy to throw away.  You appreciate something differently that you have to work for, that you studied and built by hand.

That argument works for software and students, too.  I can see it with the teachers that I’m working with this week here in Amherst.  Yesterday, I had a teacher who repeatedly found paths to image files on her disk, by invoking the pickAFile() function in Python.  pickAFile() returns a string which is a path to a file.  She kept asking me, “Why isn’t the picture opening?”  I explained that she needed to create the picture from the filename (using makePicture()).  She had a hard time getting the idea of invoking a different function on the file path string, of creating an object, and mostly, of having to do something for herself that her software had always done for her.  By creating the process herself, she was making explicit a process that she had never even noticed before.

For any student in any discipline, most of what one is doing is learning what others have already learned.  Some of the process is re-doing what others have done — not to create something that we don’t already have, or to do something better.  It’s about creating the student, changing the way that the student sees the world.  No, it’s not “authentic” (in the Shaffer and Resnick sense), but it is sometimes necessary to create the kinds of inventors we need in the world, who can build on the shoulders of giants to make the truly new things we need.

June 15, 2010 at 7:08 am 7 comments

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

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,049,106 hits
June 2010

CS Teaching Tips