Thursday, December 20, 2012

Why Teach Computer Science - Facebook Discussion

So last week on Facebook I posted this link: Teach US Kids to Code. It brought up a really interesting discussion between some of my former students about computer science classes.

Now back when I taught these kids (now very much grown up and in their careers) my focus was mostly code, code and more code. I am happy to say my teaching has grown since then. Our discussion centered on the fact that many kids just don't "get" coding. They pointed out that half the kids in our classes never really moved beyond variables. And honestly this was my fault.

Without the broader context the abstraction of computer science can be overwhelming. Especially for an age group that has not necessarily hit the abstract thinking phase of development. Abstract thinking starts in early adolescence and continues until they are in their early 20's. And as teachers we can't control where they are in that spectrum.

What I can control are the activities and topics we do in class. By building a scaffolding through engaging activities you create a framework and a context for all these abstract things. Though practice comes understanding.

This leap from teaching code to teaching computer science has been the biggest development in my career.

So here is what I wrote. It is the core of why I think every kids deserves computer science in school.

In a way it is asking the question from the wrong angle. For instance in Latin there is no expectation that every student become a master level linguist. There is an understood intrinsic benefit to studying something rigorous even if you do not hit mastery.

For too many cs classes we have a kind of Jedi master approach  You will either become expert, or get nothing out of the experience. I think there is a valuable middle. 

I assume all of my students will engage with some type of computing device in their professional lives. Having some experience with programming means they have a better understanding of what these devices can and cannot do.

We've hit the point where cs is the magic any old episode of NCIS to see that. For too many people you hit the button, magic occurs and answers appear. Any person with some cs experience knows how untrue that is, and how manipulative it can be.

We are at a point where you are either someone that understands this, or is getting tricked. It has become a basic literacy issue.

So no, many of my students will not master abstraction or recursion, but my classes also cover the culture of cs. They don't have to get every nuance of programming to understand some of the science behind what we do.

And that knowledge puts them on the stage with the magician, maybe holding the hat but still on stage, rather than in the audience. Cs should be more than a fun show. We depend on these devices so much that cs is a core part of being a literate person of influence.

No comments:

Post a Comment

So, what do YOU think?