Monday, March 09, 2020

What is The Best Way to Provide #CSforAll?

Getting more computer science education to more people is something I think about a lot. Mark Guzdial, I want to be him if I ever grow up, has me thinking in new directions lately. Take his recent blog post for example - Defining CS Ed out of existence: Have we made CS too hard to learn and teach? You really should read it and the comments as well. I started to write a comment but WordPress “ate” it so I’m writing some more thoughts here.

The primary way we have been trying to get CS for everyone in the US is through stand alone computer science courses. It seems great in theory but we have a couple of thorny problems. One is fitting it into the curriculum. Another is finding enough teachers. Mark lays out some other problems or potential problems in his blog post. the tl;dr of it is that doing it this way is really hard and may not be the best way anyway.

One thing Mark has been talking about lately (I try not to miss his posts on Twitter or Facebook) is how Norway is moving in CS education. Basically, Norway is moving to teach CS in context with a bunch of other subjects rather than as a stand alone course. I really want to learn more about his but in general I like the idea.

For many years I have been talking about the value of using CS to help students learn other subjects. In y early teaching days, 20+ years ago, when I thought programming might be out of reach I was suggesting using spreadsheets in math and social studies. How better to process and analyze data than a spreadsheet? And graphs? A computer spreadsheet can let a student look at the same data with different graph types in a short period of time.

These days with have block languages like Scratch, Alice, Snap!, and more that can be used to program by young students. Telling stories to build up language skills. Analyzing data and showing it in interesting ways. Well, you get the idea.

Maybe if we did this in the early (primary grades and middle school grades) students would see computer science as something they can handle in secondary school. Maybe we could even go deeper into CS concepts if we didn’t have to teach secondary school students what a loop is all about. And much more.

We know that students make decisions in middle school that greatly impact their trajectory in later education steps. If CS is part of their environment, and is a learning tool they are comfortable we’ll get more students in deep pure CS courses. Even better, they’ll have CS as a powerful tool in secondary school as well.

This can’t happen over night of course. There is a lot of work. Teachers have to be taught. Curriculum has to be written. And that curriculum has to be interesting, relevant, and shown to promote learning of more than just CS tools., Maybe teaching CS as incremental steps and in context will help teachers and students alike to be less intimidated by it.

1 comment:

Garth said...

After 20+ years of teaching CS I have learned a few things. One is that most non-CS teachers are extremely resistant to teaching programming or data analysis or anything else for that matter that does not fit perfectly into their already crammed syllabus. It absolutely amazes me how most teachers to not want to learn something new or modernize their syllabus. Sounds a bit pessimistic but it is consistently proved itself.