Success and Not Success

First, success. My Physical Computing students are making progress on the Rube Goldberg machine.  Today I tweeted:

That was the list my students gave me so that we could continue working tomorrow.  Two students ran off to the wood shop with a plan.  How glad am I that we even have a wood shop!  The rest of us stayed and worked on the other pieces.  We programmed a robot, printed a scoop for the conveyer belt and planned out what the pulley mechanism will do.  Here are some photos from today:

Robot goes down ramp and completes the circuit to start the motor.
Robot goes down ramp and completes the circuit to start the motor.
Marble runway
Marble runway built by students in wood shop.

We’ve basically looked around the room and said, “Hmm, wonder what we could do with this?” or “Hmm, what do we have that we can build x out of?”  And then we’ve got something put together.  So it’s been fun, and I think we’ll have something cute by Friday.  Did I mention we have to be done by Friday?

One thing I’ve been thinking about is what this has to do with Computer Science.  We do have some programming parts, but mostly, this is not obviously about CS.  But it is about logic and engineering–more logic than anything.  The students planned from the end backwards.  They’ve broken the problem into parts and worked on each part separately before connecting the parts together.  Sounds like functions to me!  It’s a little more linear than most programs, but the concepts are surprisingly similar when you think about it.

And now, not success. 8th grade.  I’m struggling to tweak/overhaul my curriculum (class starts Wednesday) to make the class more interesting to a typical 8th grade girl.  And this is harder than I thought.  I have the time constraint of once per week for 40 minutes for a total of about 6.5 hours. I also have my own imposed constraint of teaching coding and not having them play with Photoshop or MovieMaker.  Last trimester, we did Python, which, as I documented here, didn’t go so well.  So I thought, okay, maybe a different language, maybe JavaScript.  I found a good online resource.  I set up a class, pulled some lessons using their prepared curriculum and a few lessons in, I thought, “Boy, this is boring.” All we’ve done is add some numbers and make some strings and use some if statements.  I’m wondering if an 8th grade girl will stick through the boring bits to get to the fun stuff.  I’m not so sure.

And this has been my struggle more generally.  By 8th grade, the cute, block-based languages no longer appeal.  They’re too cutesy for most 8th grade girls.  But, most 8th grade girls have had little to no programming prior to being in my class.  Without the underpinnings of some programming and without the maturity of high schoolers, syntax really gets in the way.  The colons, parentheses and curly braces get frustrating pretty quickly.  I was writing some if statements in JavaScript and I realized that the && and == were going to freak out a lot of people.  At least with Python, you get some “real” English (and’s and or’s, for example, instead of && and ||).   But there’s nothing really in between something like Scratch and Python or Java, languages that allow you to do pretty much anything.  There are some drag and drop languages out there that are used for app development (like App Inventor or Game Salad) but you can’t get far enough in those in 6.5 hours to really accomplish anything.

But, I think I’m going to forge ahead and see how it goes.  I know some other tools out there that might be interesting to tackle but I don’t have time to experiment.  I’m reasonably familiar with JavaScript and the built in lessons are good given that I don’t have time to develop my own.  I’m still going to have my own Python-based curriculum, but I’m going to let them choose.  We’ll see where people go.  That will tell me something, I guess.

 

7 Replies to “Success and Not Success”

  1. For an in between language try Small Basic. It will do little kid stuff (turtle graphics) and big kid stuff (full blown Space Invaders game). It has Intellisense so the kids can see the syntax that needs to be typed. I personally use SB whenever I need to code something up quick, like when I go mildly insane and need to do some Project Euler problems. SB is by far my favorite teaching language. I have the kids do several graphics projects, a button project and an animation project. You could easily do SB in the time you have. The turtle graphics can make it a lot of fun for the kids and there is a lot of programming in drawing a simple (or not so simple) house with the turtle.

  2. I should mention SB (http://smallbasic.com/) has a great tutorial at the middle school level on the site. Look at the Tutorial (PDF) in the right margin. This language will take an experienced programming teacher at least 15 minutes to pick up on. At the 16th minute you will be able to show kids how to use it. Then you just stay 16 minutes ahead of the kids for the next 6.5 hours. No problem unless you have some overachiever who works on it at home and wants to know how to write Doom. Oh, it is free which is a biggie for me. The only thing i do not like about SB is all variable are global, there is no passing of parameters.

  3. I really like that you art being more physical when it comes to logic. Many people are concerned that because of technology humans are going to lose basic skills that have been around for centuries. We are able to type in a question into our phones or computer and receive an answer almost instantaneously. We don’t get to see the method or process that goes into solving the problem, we just get the answer. This may be the easiest, most convenient way to get information but it also makes us very dependable on the technology around us. The fact that you have your kids working and finding out the answers to logical problems by actually breaking down the problem helps eliminate dependance. Is it a good thing that technology is helping us find the answer more quickly without the process of actually learning the problem? It is faster but takes less knowledge and skill to type a question into a computer.

  4. Is there something the girls need to do in another class (science or math, potentially), that could be used to teach the “numbers and strings” of programming?

    When I learned back in the dark ages, I did the following projects, all related to something else we were doing in school 1) pascal’s triangle 2) bowling scoring 3) seating assignment (complicated algorithm of assigning students to tables, shifting them every two weeks, and having every kid sit with every other kid) 4) database of flowers for the annual flower sale 5) indexing for the school yearbook.

    Some of those are clearly programs that would be better done in XL these days, but if there is some equivalent, where they can do a simple project that lets them crunch numbers, maybe you could stay in easy programming but still have relevance?

  5. bj–those are all good ideas! I’m hoping to partner with math and science more closely next year so that we might create connections to their curriculum and maybe they’ll understand the usefulness better.

Comments are closed.