Wednesday, August 10, 2011

Teaching computational intelligence

Mengjie Zhang at Victoria University of Wellington discusses his experiences teaching computational intelligence in this article in the IEEE Computational Intelligence Magazine (access depends on your institution). What he describes seems like a fairly logical course structure. I thought I'd add my own experiences teaching computational intelligence at the University of Otago several years ago, to provide an alternative course structure.

The course I taught was a required course for third year honours students in the Department of Information Science. It was taught over one semester per year, and I taught it 2000-2003. I usually had between 15 to 30 students in it, with the number being a bit less near the end of my time teaching as the collapse in enrollments in Information Science started to bite. In addition, I usually had one or two students from other departments, usually biochemistry, as they found what I taught particularly useful.

The course was divided into five sections: data processing; rule-based and fuzzy rule-based systems; artificial neural networks; evolutionary computation; applications of computational intelligence. There were two one-hour lectures and one two-hour lab session per week.

The overall focus of the course was answering the question "What is computational intelligence and how do I use it to solve problems?".To this end, a large part of the course was focused on a small group project (two or three students per group) worth 30% of the final course grade. Students had to select a problem and data set, analyse the data, build an intelligent model to solve the problem the data was related do, and finally build a small prototype piece of software that solved the problem. The structure of the project was inspired by a survey of employers, commissioned by the Information Science department, which found that employers wanted graduates who could:

  1. work in a group
  2. write coherent reports
  3. give effective presentations
Point 1 was addressed by making the project a small group project. Point 2 was addressed by requiring three reports during the course of the project, each worth 8% of the final grade. Finally, point 3 was addressed by requiring an in-class presentation to accompany each report, which were each worth 2% of the final grade.
The material presented in the lectures covered the relevant algorithms and techniques from both a theoretical and practical aspect, covering how the algorithms work and how they can be applied to solving problems. The theoretical aspects were reinforced by ten weekly problem sets, which were worth 2% of the final grade each. The practical aspects were reinforced by the weekly practical / laboratory sessions. These used MATLAB with the relevant toolboxes and were largely aimed at providing the students with the skills and knowledge they needed to do the project work.

The final assessment component was a 50% exam. I would have liked to have set an exam worth a bit less than that, but the University regulations at the time prevented me from doing that.

Overall, the students were very happy with the course. Apart from being well-organised, they found it interesting and useful. At least one project group even managed to publish their project in an international conference.

The lectures that I presented for this course are available here. At some point, I will make the laboratory and assessment material available as well.

While I enjoy my current research job a great deal, I do find myself missing teaching, and would like to return to it one day.