Wednesday, May 25, 2016

You’re Having Fun Wrong #CSforAll

In several episodes of the comedy TV show “The Big Bang Theory”, Sheldon, the main character, complains that people are “having fun wrong.” What he means of course is that they are not doing what he thinks of as fun. We see that sort of thing a lot these days. “You’re not using Twitter right” or “You’re not using Facebook right” or today I read “American schools are teaching our kids how to code all wrong” The author of that article suggests strongly that the courses and curriculum their company sell are doing it right of course. It’s everyone else who is doing it wrong.

The article above takes particular aim at drag and drop programming in general and code.org materials in specific. I don’t think either criticism is really fair. Drag and drop programming languages are being very effectively used to teach real computer science concepts as well as programming. Even Harvard’s famous CS50 course starts with Scratch! The author of that article makes it seem as though short exercises like those for Hour of Code are all that code.org is producing. That is far from the case. They are producing a wide range of curriculum for a wide range of age groups. Much of this is very extensive and goes into a lot of detail and complexity.

I think that what bothers me the most about that article is the implication that it is addressing US computer science education in total or at least in large part. That is also not the case. Just the two Advanced Placement courses have multiple popular curricula many of which don’t use any drag and drop tools at all. Certainly the APCS A course is Java all the way. We teach three text based programming languages at my school and last I checked we were an American school.

This is typical of the naysaying I have been reading about the CS for All movement that is getting so much attention. People keep saying “but they’ll do it wrong!” as if that is a reason to keep computer science for some small subset of people where it can be done “right” for their specific definition of “right.”

There seems to be a fear that CS for All means we will wind up with a lot of people just doing some simple stuff like a short experience with block or tile programming and call it computer science. I don’t think anyone pushing CS for All wants that. I’ve talked to enough people at code.org to know they don’t want that. No one I know involved with CSTA wants that. In fact I don’t know anyone at all who wants that.

People don’t really trust government to do the right thing with regards to CS education. I get that. But that doesn’t mean we don’t try to develop programs of CS education for everyone. There are lots of ways to teach CS. No one way is best for every student, every school, or every teacher.

We are fortunate that there are a lot of different ways to teach CS these days. From CS Unplugged (no computers necessary) to block and tile languages to fun little devices like the BBC Micro:Bit and Ozobots to easy to use Integrated development environments to old fashioned text editors and command line compilers. We can teach CS to everyone. We may not bring everyone up to a professional level but we don’t do that in any other subject we teach in school either. Differences in depth, breath, and mastery are fine. But everyone should have a chance to learn computer science. Even if they don’t have fun with it the way you have fun with it.

6 comments:

Garth said...

I would be interested to know what the "heart of computer science" is. I have been looking diligently for about 30 years and still cannot find it. I have some ideas but nothing I would be willing to declare to the world is the true "heart of computer science". Pundits like this seem to think we need more computer scientists. I am just happy making people more computer literate, which includes a dabbling of computer science. I notice the author does not seem to have taught in K-12. I think she needs to do that for a few years to get a reality check. Put her in a nice rural Montana school for a couple of years and then discuss how coding should be taught. No, wait! Most rural Montana schools do not offer coding! So build a programming curriculum from scratch (or Scratch). Now we can discuss coding in American schools.

Mike Zamansky said...

Ok, Alfred, let me just say - you're blogging all wrong :-)

More seriously - I hope that there aren't too many people that think there's one true way but enough of the power players out there (at least in NY) have repeatedly decided it was not worth their while to look at what my team built to see what they could learn from it (good or bad) to know that many of the anointed players think they know better than the rest.

It's also not healthy if no one examines what's rolling out with a critical eye.

It's also true that while there are many right ways, there are also certainly wrong ways - just ask public school math and English teachers about curricular and teaching changes over the past 20 or so years.

My personal belief is that many municipalities will indeed say "we've got great CS" after they have anything that looks like results even if it's just an illusion.

It's money and politics that truly rule the day, not education. It's sad but it's true.

Garth said...

But aren't all kids, teachers and schools the same? Shouldn't one way fit all? My illusions are shattered.

Leigh Ann DeLyser said...

Alfred, I agree we are fortunate to have so many options for CS!

One of the things that goes unsaid in many of these conversations is student trajectories. In many cases, we are no longer dealing with a single 'exposure' or 'experience' with computer science. We can now look at learning pathways that take students through multiple experiences. (In fact the K12CS framework we are both working on sets up concept trajectories to help states and curriculum writers see how students will progress through topics).

But! that being said, students and teachers are far from having a 'standard' amount of experience at any level (as Garth pointed out). You cold get a 5th grader who has already spent hours 'coding' on games or apps, and a high school senior who has never written a line of code. For the time being we are going to need diverse pathways for students, that assume diverse entry points and offer enrichments.

In NYC, this is why we have put out open calls for folks with programs or curricula to train teachers at various levels. Idit Harel (who authored the article) is the CEO of Globaloria - one of 14 'vendors' who participated in the STEM Institute and is currently training teachers for the next school year.

I also think Mike is accurate - there are many ways that are more (and less) effective. This is partially why NYC has put out an RFP for evaluation of the CS4All initiative. The evaluator will be announced in the next couple of months, but we know that part of the work will be to help find out what works, and what doesn't (at least in NYC). When we identify what works, and who is struggling, we will provide feedback to all our programs (and the community through publications) so we all can get better at this. Data from a large implementation such as this one is unprecedented.

After all, just as our students and teachers are learning - so too is our discipline. All we can do is be honest with ourselves about it, measure what we are doing in the best way possible, and engage with the best researchers around to help us understand the data of what really works.

xota said...

I've read something else in Idit Harels article. Namely that a real problem, how to teach about this world that increasingly is shaped by computing, is solved by people with no educational drive. And too little subject knowledge to makes something that will last for a while. Companies selling CS education as not hard and no need for the teacher to understand it are not improving educational landscape. On the contrary, the very fact that teacher only has to point to an _adaptive_ online course is killing for the profession.

Idit Harel worked ten years with the man who coined "hard fun", I don't think she has any objections to block based programming environments, unless you use such environment to give all kids the wow movement by letting them all build the same stack of blocks.

You could also read her article as a summary of some work of Audrey hackeducation Watters or Shuchi Grovers 2013 Learning to code is not enough.

I'm commenting from The Netherlands, way behing the US and UK when it comes to CS education. And as my local politicians don't have a clue where to start there is a huge market for short CS candy experience marketed as "preparing children for the 21st century". That's a true waste of resources.

Alfred Thompson said...

Shuchi Grovers and Audrey Watters are "must reads" for me.