The Craft of Coding discusses aspects of programming – coding, testing, style, algorithms, problem solving. It focuses predominantly on coding in C, Python, Ada, and the legacy languages Fortran and Cobol. The “LEGACY PROGRAMMING” page has information relating to Ada, Fortran and Cobol programming. The PRACNIQUES page contains solutions to various programming problems.

My name is Michael Wirth and I teach in the School of Computer Science at the University of Guelph. I teach introductory programming, legacy programming, some HCI, and computer vision/image processing. My areas of interest include recursion, Fibonacci numbers, digital photography, and the design and usability of everyday items.


While living in a world dominated by information, I am somewhat of a technological Luddite. My thoughts are summed up by a quote by E.F. Schumacher (Small is Beautiful) “The system of nature, of which man is a part, tends to be self-balancing, self-adjusting, self-cleansing. Not so with technology.” In my spare time I cook and collect cookbooks, build things, collect and restored woodworking tools, read books, and dabble in photography.

School Outreach:
During the school year I often give talks in schools in the Greater Toronto Area. They can be anywhere from 30-60 minutes in length, and can either be one of the topics below, or more generally on careers in computer science. If you are a middle school or high school computer science teacher, and are interested, just send me an email. Topics include:

  • Debunking TV Technology – a fun look at computer vision technology as it relates to TV shows and movies.
  • The Art of Recursion – exploring the art of recursive problem solving, and it’s shadier side.
  • The Use of Things – explores the interface between humans and things (machines, tools etc).
  • Testing, Testing, 1, 2, 3 – a look at the importance of testing in software design
  • Software Time Travelling – a look at the legacy software and programming languages that run our modern systems, and the process of re-engineering it.

I don’t do much in the way of pure research anymore. My research interests include programming languages, computer science pedagogy, recursion, digital photography, and historical aspects of usable objects. I don’t like doing esoteric research anymore – far too few people are interested in this stuff, and technology moves far too quickly to warrant most of the work. I also prefer applied research that produces tangible results, and funding bodies prefer “theoretical” type research. I’m not interested at all in this.

Please note that I am not taking on any PhD students.

mwirth [at] uoguelph [dot] ca


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s