CS Club Resources

For SJAM CS Club, from 2014 to 2015, Ian Fox and I created a series of lessons to teach introductory computer science to high school students. These resources for CS enthusiasts are now available to the public.

I hope this is useful to other CS clubs around the world that target high school students. I also welcome any suggestions for improvements to the material.

Why teach STEM?

One thing that I hear way too often is how high school is useless. The complaint is that the vast majority of people will never use fancy topics like al-gee-bra or will never care what the difference between a neutron and a proton is.

Furthermore, high school apparently does not teach important topics such as how to vote, how to find a job, how to give first aid, and other such topics.

I am not denying that there are valid complaints about the public schooling curriculum. However, this complaint is entirely bunk.

Firstly, at least here in Ontario, the so-called important practical topics are indeed taught. The Ontario high school curriculum requires three courses that are intended to address these practical topics of everyday life: Civics, Careers, and Healthy Active Living. I distinctly remember voting, jobseeking, and first aid covered in these three courses respectively.

Secondly, that science education should be made optional is entirely misguided. The subject of whether compulsory courses should exist at all is a touchy one, but if one accepts that there should be compulsory courses, science should certainly be one of them. The proportion of Canadian graduates in STEM is extraordinarily low among developed countries. Canada is falling behind a vast array of European countries. Just about everyone will accept that innovation comes foremost from STEM graduates. So if we’re falling behind in STEM graduates, we are falling behind in innovation. It is therefore absolutely critical that even if we just make a single course compulsory, it should be science.

The idea that science education is displacing important first aid and survival education that will save thousands of lives is comical, because it ignores the field that has saved millions of lives in Canada alone: medicine. When was the last time you saw someone saved by first aid? When was the last time you saw someone saved by modern medicine?

Thirdly, if we are to keep our modern standard of living, we have to teach ourselves to understand abstractions. Even if someone literally does not use algebra ever in his or her life (which, by the way, is exceedingly rare), the process of learning algebra develops the valuable ability to think with abstractions. James Flynn discusses how so many of the reasons that our society is so much better today than ever before is our ability to understand abstractions, rather than the rote memorization of the past.

While important, voting is far easier to learn through experience than something like abstract mathematics, and as Flynn stresses, the latter is equally important. So if time is really a concern, doesn’t it make more sense to teach someone the quadratic equation than to teach them how to use a ballot box?

Luckily, of course, it’s not a one-or-the-other, and we can teach both in Ontario high schools, which is of course the optimal solution. So once again, this argument is ridiculous.

If there is a topic today that is more productive to teach than mathematics or science, it’s computer science. But shockingly, the people complaining about compulsory STEM are not complaining that CS is optional.