Thoughts on programming for all: Part IIb — Downsides

Last week, I discussed one of the downsides of students being taught to think algorithmically, even if they absorb it all.  Unfortunately, just because students can pass an introduction to programming course doesn’t mean they have any understanding of code that they or anyone else has written.  Whenever I teach a course, I make a point to mention cargo cult programming and warn students not to fall into that trap.

Continue reading “Thoughts on programming for all: Part IIb — Downsides”

Thoughts on programming for all: Part IIa — Downsides

In my last post, I wrote about some of the benefits of teaching programming as part of a general liberal arts education.  However, I did express some new reservations about doing so which I explore further in this blog post.  Having let quite a bit of time elapse since writing the first post, I’ve unfortunately forgotten a number of points I had intended to make.  And now, I’m going to break up the downsides into multiple posts.

Continue reading “Thoughts on programming for all: Part IIa — Downsides”

Thoughts on programming for all: Part I — The Merits

I was reading Ira Basen’s article The algorithm method in the Globe and Mail and was reminded of the talk given last week by Professor Mark Guzdial of Georgia Tech as part of the DCS’ Distinguished Lecture Series. Guzdial argued that an introduction to programming, if not computer science, should be an essential part of a liberal arts education due to the way it reshapes the way one views computers, an increasing part of our everyday lives. While I agree with his position that being able to understand the algorithms that dictate whether one is approved for a mortgage or make predictions about climate change search could be useful and important, Basen’s article caused me to question and temper my own beliefs on the importance of introducing programming to undergraduates.

Continue reading “Thoughts on programming for all: Part I — The Merits”