Teaching Computer Science

This article won’t specifically be about teaching the theoretical parts of computer science, the focus is actually on teaching programming as a tool for the mind.

How does learning programming affect the learner?

When I first started learning programming proper, it really felt like I was learning to think in a new, very structured and logical, way. I still until this day feel this way. Learning programming teaches you so much: abstraction, procedure, functions, logic, etc. I feel like I can apply my programmer toolkit to almost every problem in one way or another. I’ve often heard similar sentiments expressed by others, giving some credence to its validity.

Computer Science in Core Curricula

This should, in my opinion, be approached very carefully. I myself were entirely self-taught up until I started university, and so were many of my friends. And while I’ve learned a lot at university, most CS/programming I’ve learned has still been independent of my studies. At university I’ve noticed a wide range of feelings towards programming and CS among students. Some lyrical beyond comprehension, others seem to only consider it a good career (high salary, good working conditions, low risk of automation).

What I fear is that programming and Computer Science will meet the same fate as mathematics. This concern arose when I first read Lockhart’s Lament (if you care about maths education, or education in general, you really should read it). I’m really not sure if this is a valid concern, but the worst case scenario - a society where the vast majority of the population think programming is hard, boring or devoid of creativity - looks pretty bad to me.

In Sweden, the government recently (May 2017)source (Swedish) decided that programming/CS (or as sometimes called in Sweden, datalogi) would become a part of the core curriculum all the way from first grade up until highschool. The plan is to integrate it into existing courses such as mathematics. How exactly this is to be done is still very unclear.

Me and a group of people at Lund University, including both professors and students, have started working on actual course material and hope to educate teachers on how to adapt their teaching to include programming in the best way possible with a strong focus on engaging the students. I have hopes we will open source the course material when the time for publication comes since we have two professors (Björn Regnell and Görel Hedin) with strong interests in open source. Both are on the board of LUFOSS, a scholarship fund for OSS contributors, and Björn lead the effort to create entirely open source course material for the 2016 remake of the introductory programming course for CS at Lund University.

To expand upon