As with my interview with John Hopcroft, I was most interested in what Sir Antony Hoare had to say about computer science education. He was, after all, knighted for his work in education in addition to research. I was also particularly fascinated with his effort to tie academia and industry together, for example by setting up an external Masters degree for software engineers.
My first question for Sir Hoare was about whether we should be concerned that undergraduate degrees try to address both theory and practice. Most graduates will go on to work in industry, but many academics seem to believe that they are training students primarily for academia. Sir Hoare’s belief (and I happen to agree) is that theory is valuable to learn for all students regardless of their future paths. Learning theory helps you better understand what you’re doing by noticing analogies to what you’ve done before, thus increasing your competence. Once you get into the workplace, theory can make your job less boring: it is fun to see real-life examples of the theory you learned in school! It can also help you understand when the code you write is ‘good.’
Next, I was curious what Sir Hoare thought of active learning techniques in the classroom. Though he wasn’t particularly familiar with recent approaches, he wouldn’t say no to the possibility that they can improve learning. As with anything, if it’s done well and in moderation, it can be a good thing. Then again, we can also talk about what makes a lecturer effective on their own: a good lecturer, he says, has charisma and motivates students with rhetoric. Further, the lecturer has many existing tools available, such as textbooks, tutorials, exercises, practical projects, and even discussions (sadly, we never had any of these in our undergrad CS classes). I would love to say that I believe all this is enough, but I have seen firsthand that, for far too many students, it isn’t. It will be interesting to see what a typical undergraduate lecture hall will look like in a decade or two.
Finally, I told Sir Hoare that I couldn’t not ask him a question about quicksort, but that I’d try to put a different spin on it. (This elicited a large smile.) I have used quicksort as a first introduction to recursion for my students in the past, including for my arts and social science students as they learn the basics of computational thinking. I wondered how he felt about its efficacy as a first example. It turns out that not only does he think it’s great for teaching recursion, but he even had some fun ideas for how to do it. One is a wonderful video that explains the algorithm via a Hungarian folk dance. I’ve used the same set of videos in my lectures, and highly recommend them. Another idea is based on the card game Patience (also known as Solitaire).
It’s interesting that Sir Hoare began our conversation with an admittance that he hasn’t been working on education the last 15 years, so he thought he wouldn’t have much to say about it. As you can see, I once again had a wonderful conversation on the topic, and am very glad to have gained some insight into Sir Hoare’s thoughts on theory and practice in computer science education.