Teaching students to code

The most common mistake I observe in policy discussions around CS education is the assumption that programming classes are vocational training. That can be the case, but the merits of any proposal depend very much on the nature of the learning that can be expected to take place.

I’d suggest that it’s better to think of CS more like math, which provides an extremely useful set of conceptual tools for interpreting the world and solving problems. Programming is about building well-structured, efficient systems, and many of those lessons carry over into other types of systems as well (e.g., bureaucracies, supply chains, etc.). I see CS’s importance as comparable to math in this respect. Perhaps even more so, potentially, since it can readily be made to feel vivid and real to students.

Perhaps an important question to ask is whether a student’s time will have been wasted if they don’t end up directly using the skills they acquire. If you think of CS as tedious job preparation, you would presumably answer affirmatively. But it’s worth doubting this conclusion.

8 Likes