I’m on my way to the next conference, CSTA, but I wanted to get some final thoughts down about CMK and learning. Everyone learned something at CMK. They learned what they needed to know to get their project done. And often they learned things they didn’t even know they needed to know. That was certainly true for me. Sure, I knew how to program, but I didn’t know how to use an API. And each API is different, so even if I’d used one before, that knowledge wouldn’t necessarily apply to the one I was currently using. And it turned out I had to learn about different formats for latitude and longitude. The API used decimal degrees while most maps show them in degrees, minutes, and seconds. I had to learn to mathematically map one range of numbers onto another range. I had to map, for example, humidity that ranges from 0-105ish to colors that range from 0-255. I did all the math for that, but ended up using a built-in function to make things a little simpler (since I had to map about 5 different sets).
And I built some existing skills. I used objects to keep track of all my different locations and their associated data. I had to build my own class for that and figure out the best structure. That’s something I don’t get much practice at. I also ended up storing the data in a flat file, which I’ve done a lot in the past, but it’s always a challenge getting it just right.
When you teach (or learn) in a project-based way, this is how learning goes. You can’t lay out everything you need ahead of time because you don’t know what you’re going to need. Even if you read a whole book on programming before you start programming, it’s going to miss lots of key stuff. As teachers, we can’t hope to lecture in a way that lays all that ground work before kids start getting their hands dirty. The way to do it is to let them get their hands dirty, and then figure out concepts as they go. The way I do this in class is to do short, small quick things. I explain a concept for maybe 5 minutes, then we spend the rest of the class building something to demonstrate that concept. Then we review. Larger projects we just dive into because the small, quick bits have hopefully laid enough groundwork. CMK modelled this approach, and let us experience it first hand. Now we need to model it for our students.
(posted at 10,000 feet)