Tuesday, May 24, 2016

Practices and Concepts in Computer Science Education

Work on a framework for computer science education in grades Kindergarten through grade 12 continues with many of the writers and advisors meeting over the past few days in New Orleans. It is somewhat humbling to be involved as some of the smartest most involved people I know of in CS education are working on this project. It’s also forced me to think a lot about my own teaching.

The framework includes concepts that every student should learn as well as practices they should develop. My role is focused on writing about practices so that has taken up a lot of my thinking time. One of the things I think about is how do or perhaps can what we teach in CS can contribute to learning and development more generally. We know that, much as we’d like to believe that teaching CS transfers automatically to problem solving generally that is not the case.

Can we do things that make some transfer happen though? I’d like to think so. As I look through the practices we have been describing in the framework I see a lot of what I think of as problem solving techniques and practices.

I think we can teach problem solving and that it can be a part of teaching computer science. Too often I think we get hung up on teaching how to program by which I mean things like syntax and basic concepts of programming languages. Of course we need to teach those things but that is really the easy part. The hard part is teaching students how to apply these concepts. We can give students step by step instructions and they can create working programs. Do they learn from this? Probably. A lot of textbooks take this approach. But at the same time too much and too detailed instructions also remove the need for creative thought or problem solving.

Done right computing is a creative endeavor. And of course we often want to use computing to solve real work problems. Are creating thinking and problem solving unique to computing? Obviously not. I don’t think we can expect transfer to occur automatically because we have research that shows that it doesn’t. But perhaps we can teach things in a way to help some transfer along. Helping students learn good practices along with good concepts should be a step in the right direction. Right?

BTW the next formal review period for the K12 CS Framework starts on June 8th and you can sign up for updates. We really need full community involvement to make sure this work is as good as it can be.


Elmer said...
This comment has been removed by the author.
Terry C. said...

If you have good practices in computer science education, then probably you will become a great opportunity to develop more on the concept of computer science education that will be very competitive. Thus, it will make you become more effective in all the aspects of learning in this kind of education.