Problem Solving: Analyzes problems; determine, select, and use a variety of strategies and procedures to find solutions; applies previous strategies to new situations; uses technology, including calculators, to develop mathematical concepts
Reasoning & Proof: Draws logical conclusions; review sand refines assumptions and steps used in drawing conclusions; follows a logical argument and judges its validity; justifies and explains solutions to problems using manipulatives/models.
Communication & Representation: Uses inquiry to solve problems; uses oral, verbal and written formats to represent and communicate mathematical ideas; uses mathematical language in explanations of strategies or procedures used
Unfortunately this seems to be arbitrarily placed in the math section of the report card (and there's that weird section about using a calculator as a problem solving skill), and it's not fully defined how we should assess these process strands. I think when these strands were created the assumption was that math word problems would be the primary method of assessment. I've been focused on alternative ways to assess these skills. One of these ways has been through programming.
Outside of my school in the Kathmandu Valley, there's been a big push the past couple of years to teach everyone- you, me, this guy....
... to code. And although I'm not a New Yorkianer and could care less about big barrels of soda, I'll just throw this into the mix:
There are lots of voices saying we should learn to code, but they differ on the "why." Take Codedemy's convoluted mission statement:
We're committed to building the best learning experience inside and out, making Codecademy the best place for our team to learn, teach, and create the online learning experience of the future... We do not want to open up universities. We want to open up knowledge... Education is broken. Come help us build the education the world deserves.
That's mission makes my eyes bleed. I have a better idea of what's going on from the name "Codecademy" than from the five paragraph cacophony on their about page. But probably what they meant to say is that learning to code helps you become a better problem solver. Here are some other reasons thrown hitherto forthwith: It lets you be creative, it focuses the brain, it's fun, it lets you be interactive with the tools you use as opposed to being a passive sponge. All great reasons, and a similar list can be found when wanting to know why it's important to learn how to juggle.
But where's the push to juggle in the classroom?
And there is a personal connection between programming and rice binging/purging. Let's begin:
A Brief History of (My) Time
As a freshman at the University of Kansas, I had no idea what to major in. I know that I thought of myself as some sort of liberal arts student. I was an advanced reader throughout my education, I loved to think about big ideas and ancient mythologies, and I loved to write. In fact, from third grade to eight grade, I was a writer. That was my identity. Writer, and a distant second, swimmer. I wrote several stories and series, but my schools didn't have a writing program and my teachers didn't know how to foster my interest.*
By the time I graduated though I was competent in my academics, but I wasn't confident in any of my subjects. And that led me to my second semester of my freshman year in college, where I took a Pascal programming class. It was fascinating. But I didn't fall in love with it until the final project. I have no idea what it was, but I do remember the time I spent pouring over the code of the assignment, trying to debug it into a workable end result. After pulling an all-nighter where I was basically just staring at lines of code that I'd written over a couple of weeks, trying to figure out the fault in my logic, my eureka moment hit about an hour before the deadline.
But instead of a bathtub I was at a computer. And I was wearing clothes.
I fixed my project, it worked beautifully, and the euphoria and pride I felt was strong enough for me to declare Computer Science as my major that week.
I loved learning programming. On hindsight I understand that I didn't love programming. But I absolutely loved learning it. Every semester I learned something new- a new challenge to think logically about and problem solve, either through an eloquent solution or a complete hack. Both were rewarding because both solved a multi-step, complicated problem. During the latter half of my college education I started teaching math and computer programming, and working internships at tech companies. The teaching stuck. The programming didn't.
In fact my experience with programming for a living was so revolting, I did the opposite: I joined Peace Corps Africa with the stipulation that I would gladly go anywhere as long as the government did not place me in any place that had a computer. The north Namibia town Olifa in 1998 had no computer.
Better Than The High Life
But to the west is the town of Ruacana. A secondary school there had a Resource Center with an old Mac SE/30. I ended up using some of my free time hitch hiking or walking the 10 kilometers to Ruacana where I designed some "Intro To Computer" classes. Then some Angolan rebels mowed down some French tourists and raided some border towns and I was pulled out of Olifa about 6 months before my contract was up.
Not Just The Name Of A Tailor In This Region, circa 2000
So I signed up to Peace Corps again with the stipulation that I needed to go to a place that didn't have electricity or spoke English. That placed me in Guinea, West Africa.
The Bridge that linked many of my students to school in Kegneko, Guinea
I entered Peace Corps in 1998 largely because I was deliberately turning my back on the tech bubble and the long gray line of American adulthood that I predicted my future would be assimilated into. I left in 2002, kind of ready to get my feet wet again... except for mobile phones. It'd be another five years before I allowed myself to try one out.
My point is that I know the power of programming as part of an education while simultaneously understanding that programming in the real world can drive a person to a rejection of everything he's known. I could sit in a university computer lab for hours and days staring at a line of assembly code because I was fascinated in the creation of something that didn't quite work. I'd rejoice in the debugging and problem solving of getting something from "almost right" to "beautifully functional." Yet after working on yet another division's database in another sea of cubicles, I decided that if I was experiencing the corporate American version of the Heart of Darkness, why not move to Africa and try to experience the real thing.
My life as an up-and-comer programmer
But it's because of this dual understanding that I've been teaching my kids how to program for the last several years. Not because I want anyone to be a computer scientist. But because when it is integrated in the curriculum it makes math not math. Because it provides another powerful way to experiment with creativity. Because it helps develop and showcase problem solving for those that don't have the language or comprehension to dissect traditional word problems. Because it opens up avenues of construction for learners whose primary interests are as divergent as writing poetry, playing Minecraft, folding ninja origami, crafting songs, or playing soccer.
And that's a long introduction. But there's more. There's always more. There's a whole debate that has nothing to do with me, and there is my actual experiences teaching programming which has a little more to do with me.
To be continued.
*In seventh grade all I was reading was Stephen King. I knew his craft inside and out. I tried to write like him but I wasn't very good, and there was a general perception that writing needed to be unique. Katie Wood Ray wasn't around to save me.