It's not your limits that define you

“Peter Rabbit is this stupid book about this stupid rabbit who steals vegetables from other peoples’ gardens. 75, 76, 77, 78, 79, 80, 81, 82…” — Lucy, You’re a Good Man Charlie Brown

It’s not your limits that define you but your attitudes towards them. While I could be writing about physical or mental limitations, my blog post this week is about one that almost everyone growing up in North America has faced: word limits.
Continue reading “It's not your limits that define you”

Who wants to buy tonight's test?

“Who wants to buy tonight’s test?” And what would you do if you heard someone say this? Oh, and if your answer is, “Raise my hand and say ‘I'”, please stop reading and go lick a lamppost. I was faced with precisely this dilemma three to four weeks ago. When I heard that uttered, I was at one of the University of Toronto’s suburban campuses that I shall not name, but only state that my high school, the University of Toronto Schools, is often mistaken for said campus.
Continue reading “Who wants to buy tonight's test?”

Newest CS assignment for CSC120

Yesterday, Michelle Craig and I were discussing ideas for the last assignment for her CSC120 class, Computer Science for Scientists. The assignment had to include some components of databases, Python dictionaries, file reading, and string parsing. What we settled on was automatically generating a class composite; the idea was based off of what I had for the Food-In conference. Instead of including the group that each person belonged to as I had for the Food-In attendees, we’ll put something in like college, instruments played, favourite transition metal, or programme of study. Food-in composite, generated entirely in Python from individual headshots, after the jump.
Continue reading “Newest CS assignment for CSC120”

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”

The Big Toolkit

When the only tool you have is a hammer, it is tempting to treat everything as if it were a nail. — Abraham Maslow

I used to think versatility and choice were always good things.  In fact, I wrote something to that effect just over a week ago.  Knowing what is out there means not having to reinvent the wheel.  It means being able to select the right tool for the right job.  When all you’ve got is a hammer, you end up writing messy 50-line snakes and ladders programs in assembly language when you could instead write the same thing in 7 elegant lines of Python.  But?

Continue reading “The Big Toolkit”

Renaissance Man Renaissance

The Department of Computer Science at the University of Toronto is considering changes to its requirements regarding the number of courses students must complete in various sub-disciplines of computer science in order to obtain an M.Sc. or Ph.D.  While I am in moderate opposition to these breadth requirements, I present here an argument partially in favour of breadth; this argument is entirely an academic exercise for the sake of challenging my existing views (okay, it’s also fun) and is presented as a single-sided argument.

Continue reading “Renaissance Man Renaissance”