On Computer Science and Education

Last night I got to hear Baker Franke of Code.org speak about the state of Computer Science education today, so I figured I would try to synthesize my thoughts here. Rather than try to critique Franke I’ll offer up my perspective based on my experience of going from student to software engineer.

1. Leave time for innovation

My earliest creative memories are of building Lego. I spent hours with my brother putting together models from directions then taking them apart to build my own versions. I was lucky. Being homeschooled I had tons of time to pursue innovative pursuits. My mom would hand me a stack of little math books at the beginning of the month and the earlier I finished them, the earlier I’d get to play with my Legos.

School is too structured and rigid. The only thing I remember about going to school for the first time in 5th grade was how boring it was. Most of my day was spent drawing as I usually picked up on what the teacher was teaching in the first few minutes of the lesson. We have to give our kids the freedom to innovate, create, and tinker.

2. Let kids tinker with technology

The other thing my parents did for me was give me access to technology from a young age. I don’t remember them actually using our computer until I was in high school, but I was on there trying to learn programming, hacking away at HTML, and getting familiar with the interface from the time I was around 7 or 8.

Structured computer time is fine, but it’s not the same as having a computer and having free time. We’re so worried about kids getting themselves in trouble online that we don’t just let them have “computer recess.”

The other part of this problem is that many kids don’t have access to a $800 computer at home — it’s not even a financial possibility. I’m with the UN in thinking that internet (and computer) access should be a basic human right.

3. Don’t conflate math with computers

One thing that stood out to me at Baker’s talk was that he failed calculus while studying Computer Science in college. I was a similarly bad mathematics student. While I didn’t fail Differential Equations or Calculus, I had to take my math-heavy Heat Transfer course three times to get a C.

Computer people aren’t necessarily math people. We’re not necessarily nerds. We’re not necessarily on the autism spectrum or weird or sci-fi fans. We’re diverse, and kids need to see that.

Being homeschooled I didn’t even know what a “nerd” was until I went to school in fifth grade. My favorite outfit was a purple sweatsuit; I played with Lego and HTML instead of video games and TV; I went outside but didn’t play sports; I didn’t keep up with pop music. I was a huge “nerd,” but didn’t know or care.

4. Schools must be able to hire and retain Computer Science teachers

Why would anyone teach Computer Science at a public school making $45,000 per year when they could go to any large company and make $95,000 writing software?

This is the fundamental disconnect between our hopes for teaching Computer Science and the reality of our education system. We can’t hire and retain good technology teachers until we compensate them competitively.