Several conversations lately have me thinking about combining computer science with other subjects in school. My thinking regularly comes back to that for a number of reasons. One is that it reflects the real world today. Computer science does not live in isolation but has become an important part of almost every area of work and study. Teaching it in isolation does students something of a disservice. A second major reason is that fitting computer science into an already packed curriculum is a challenge that many schools do not seem interested in taking on. And yet I believe that today’s students need to know something about computer science.
I think the most common reaction to this suggestion is similar to what my good friend Garth Flint said in a recent comment “in order to integrate programming into say a math course something in that math course has to go” This is a valid concern but the answer is that we need to use computer science to allow more learning in the other discipline in less time. Let me give an example. We teach graphs to young students by having them draw graphs by hand. That takes a lot of time. It’s also inaccurate. If we were to use a spreadsheet program to graph the data we could have them graph more data in more ways in less time. This way we could easily make up the time teaching them the spreadsheet based on reducing the time they spend drawing graphs by hand. We need to find more examples like that of course. Curriculum development and teacher training, an other issue wisely Garth pointed out, are other big issues.
My key thought here is not just teaching some CS with other subjects but changing the way we teach those other subjects in ways that make them more interactive, more interesting and (I hope) more educationally valuable. We can’t just add material but we have to improve the way we teach. This is not something computer science teachers can do alone. We need people with multi-domain expertise, probably in small teams, working together to design new ways of teaching. Computers and CS give us the chance to make learning more project based than they have been before. I believe that would make learning more interesting and effective. The key though is teaching in new ways and not old ways with new material cobbled on to the old.
This also requires a change in attitude. Far too many teachers are happy teaching the same thing the same way year after year. They learned that why so it must be the right way for everyone now and in the future. Things have to change in schools of education both for pre service teachers and professional development for in service teachers. Another hurtle to overcome. I think this is the only way we’ll really get CS into all schools though. I see it as win/win though. A win for CS education of course but perhaps even more importantly a win in using technology to improve the way we teach and to help students learn. At least that is my theory. What do you think?