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 “LANGUAGES” page has information relating to programming languages. The PRACNIQUES page contains solutions, and case studies  to various programming problems. I have also expanded the blog to talk about issues related to technology and image processing.

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 digital photography as it relates to computer vision/image processing. My areas of interest include recursion, Fibonacci numbers, 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., and certainly no theoretical research. 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 scholarly work 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. I prefer to take on 4th year undergraduate projects, and fully funded masters students (and you have to be a really *good* programmer, and have experience in Python, C, Fortran or Ada).

mwirth [at] uoguelph [dot] ca

If you’re interested in travel, food, or photo related stuff, I also write a blog called despitethesnow.wordpress.com

If you’re interested in woodworking, vintage tool-related info, and stuff related to working by hand, then try workingbyhand.wordpress.com


2 thoughts on “About

  1. Madhubabu K says:

    I have read one of your article regarding memory layout of C, in that you mentioned maximum stack size is 8MB, is that 8MB is contiguous?

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 )

Google+ photo

You are commenting using your Google+ 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 )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.