degree) in the Computer Science major, this course was also placed into the BE. (Bachelor of Engineering, a four-year ... of three engineering programs in 2007.
Educational Forum
Mengjie Zhang Victoria University of Wellington, NEW ZEALAND
Experience of Teaching Computational Intelligence in an Undergraduate Level Course
Course Overview
After being offered for over ten years as an elective third year course for the BSc (Bachelor of Science, a three-year degree) in the Computer Science major, this course was also placed into the BE (Bachelor of Engineering, a four-year degree) schedule with the introduction of three engineering programs in 2007. Hence, the course was redeveloped to shift the content from mainly symbolic intelligence to a more balanced structure also covering the essential machine learning and computational intelligence techniques. As an elective course in the third year (300 level), this course (COMP307) Digital Object Identifier 10.1109/MCI.2011.941591 Date of publication: 14 July 2011
1556-603X/11/$26.00©2011IEEE
©STOCKBYTE
A
s more and more scientific and engineering applications use computational intelligence techniques, the need to train people with good knowledge and experience of these techniques is increasing. This article presents experience from teaching machine learning and computational intelligence techniques in an Artificial Intelligence (AI) course at an undergraduate level at Victoria University of Wellington. Due to program and resource constraints, there is no room for teaching an entire course on computational intelligence. Instead, machine learning and computational intelligence techniques are taught as part of the Introduction to Artificial Intelligence course.
aims to introduce students to the fundamental principles and various techniques of artificial intelligence as well as their applications. By the end of this course, students are expected to understand the fundamental concepts and techniques of artificial intelligence, and be able to apply these concepts to specific problem areas. As the only undergraduate AI course at our university, this course needs to cover topics of both symbolic (classical AI) and computational intelligence. The topics on the symbolic side include the essential background of Prolog, search, agents, knowledge/rule based systems, planning and natural language processing. The topics in the machine learning and computational intelligence side include an overview of machine learning, simple learning methods, neural learning and evolutionary computation, which will be detailed in the next sections. The application domains used for machine learning and computational intelligence
cover regression, optimization, and classification problems in different aspects of science and engineering. Students not only learn the common machine learning and computational intelligence techniques, but also gain hands-on experience in applying these techniques to real-world applications through assignments and project work. Typical enrolment ranges between 50–100 students, with the majority from computer science, software engineering, network engineering, and electronic and computer system engineering from the School of Engineering and Computer Science. Some others are typically from mathematics, statistics, operations research, information management, physics, psychology, logic and computation, and architecture and design. While most of the students are full-time undergraduate students, this course also frequently attracts a number of working professionals who wish to update their knowledge in artificial intelligence and to use some of these techniques to solve their industrial application problems. Course Structure, Teaching and Evaluation Methods
The main prerequisites of this course are a programming language with an essential background of data structures and algorithms. The course has a number of different modules: lectures, tutorials, help desks, forums, readings, assignments/projects, and final examination. The lectures are designed to introduce the main principles, theories,
AUGUST 2011 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE
57
The methods and tools provided in this course will serve as a platform for students to use computational intelligence methods to solve engineering and industrial applications. methods and concepts of the AI techniques. The tutorials provide history of corresponding techniques, examples of how to use those techniques, and future trends of the techniques. In the tutorials, additional interactions can be done with students so that deep questions can be discussed. Lectures and tutorials are typically handled by the lecturers (staff members). The help desks are designed to provide a one-toone interaction with students in 2–4 one-hour scheduled sessions and are typically conducted by postgraduate research PhD and Master’s students. At the scheduled help desk times, students can ask any questions related to the course. In addition, an internet-based forum system is also provided to the students, who can raise questions at any time, such that lecturers, tutors and any other students can answer those questions. The lecturers are also expected to provide two office hours per week to handle students’ questions and problems. The weekly readings given to the students allow students to get more familiar with the techniques discussed in the lectures and tutorials. The assignments/projects are typically 2–4 weeks’ work, and are designed to write programs to implement some of those techniques and to solve specific problems using those techniques discussed in the course. Students attend 2 one-hour lectures and a tutorial per week over a 12 week period, about half for symbolic intelligence and half for machine learning and computational intelligence. Students are expected to work at least 150 hours for the course, typically 10-12 hours per week for 15 weeks (12 teaching weeks, two weeks during the teaching break between week 6 and week 7 for doing their assignments/projects, and an additional week for review of the course).
58
The course has four assignments/ projects, two for symbolic intelligence and two for machine learning and computational intelligence. All the four assignments/projects are required to be done and submitted individually, and contribute 25% of the final grade. Lecturers provide feedback to students two weeks after the submission deadline of each assignment/project. The final exam is 3-hours long, and contributes 75% of the final grade. To pass the course, students must obtain an overall C grade (50%), with a mandatory requirement of achieving at least a D grade (40%) on the final exam and submission of at least three out of the four assignments/projects. Course Contents
Details of the symbolic intelligence part will not be discussed here as it is not the focus of this article. The machine learning and computational intelligence part has six components of the syllabus to be elaborated as follows. 1. Overview of Machine Learning and Computational Intelligence
We use two lectures to oversee important concepts of machine learning and computational intelligence, including the main types, paradigms and concepts, supervised learning and classification, unsupervised learning and clustering, training set, validation set and test set, generalization, and some typical applications. The k-means clustering and support vector machine techniques and the k-fold cross validation testing method are also overviewed. 2. Simple Learning Methods
Some simple but commonly used learning techniques are discussed, covering the nearest neighbor method and its variations (the k-neighbor method and
IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE | AUGUST 2011
the nearest centroid method), the naïve Bayes method with important assumptions and decision tree learning method with different purity measures. Perceptrons with its structure, learning algorithm and convergence are discussed in order to introduce neural networks. 3. Neural Networks and Neural Engineering
On the basis of perceptrons (linear threshold units) and perceptron networks, multi-layer feed forward neural networks are introduced. This includes gradient descent search, the sigmoid transfer function, and the delta rules (back propagation algorithm). Other types of neural networks are also mentioned and references are provided. After that, neural engineering issues are discussed with a focus on how to use existing neural network packages to solve real-world application problems. This includes how to determine the network architecture for a given problem, how to choose and adjust learning parameters, how to avoid over-fitting, how to represent and normalize the input and output variables, and how to make variations of the learning algorithm to improve the system performance. 4. Evolutionary Computation
This part of the course oversees the field of evolutionary computation, including the common evolutionary process, initialization, evaluation, selection, mating and evolution. Genetic algorithms and genetic programming are discussed and other paradigms are outlined with some references. These paradigms are compared and contrasted within evolutionary computation and with other machine learning methods. A focus of this part is to discuss how to use genetic algorithms and genetic programming to solve scientific and engineering applications. 5. Individual Assignments/Projects
The machine learning and computational intelligence part in this course features two individual assignments/ projects. Both assignments involve programming and applications. Many students find these concepts and techniques
hard to understand compared with many other computer science courses. These assignments serve to both increase students’ understanding of the relevant concepts and techniques, and provide confidence to students in being able to apply the techniques as a tool to solve real-world problems. The first assignment aims to help students understand the basic concepts and algorithms of machine learning and computational intelligence. It requires them to write computer programs to implement several simple learning algorithms, and use these algorithms to perform classification tasks. They are asked to implement the (k-) nearest neighbour method, the naïve Bayes method, the decision tree learning algorithm and the perceptron learning algorithm. The testing tasks are chosen from the UCI machine learning repository, which are often used as a benchmark in machine learning and computational intelligence research. The tasks vary from intrusion detection, through medical diagnosis, to image object classification. Although no specific programming languages are specified and students can choose any programming language, most students use Java, C++, C, C# and Python rather than Prolog or Lisp. Students are also required to demonstrate their programs to tutors (or provide a script that can demonstrate the programming running) and submit a report summarizing their results, comparisons and analyses. The second assignment aims to help students understand the concepts and techniques of neural networks and evolutionary computation and use these techniques to perform regression and classification tasks. This assignment mainly considers multi-layer feed for-
In Memoriam
Students are expected to work at least 150 hours for the course, typically 10–12 hours per week for 15 weeks. ward neural networks with the back propagation algorithm (and its variations), genetic algorithms, and genetic programming. In this assignment, some optional sections (as bonus marks) are introduced to provide opportunities for good students to practise their research skills, for example, analyzing the evolved genetic programs to reveal why they can successfully solve the given problems, and comparing the complexity of the evolved programs with the set of rules learned by decision trees. Students must submit their programs with a subset of students selected for demonstration and a written report presenting and analyzing their results and making conclusions. 6. Prospectus Session
In the final session, this course provides an outline of advanced topics in three aspects of artificial intelligence methods and points the students to the three courses at the postgraduate level. These include a course on intelligent agents and web intelligence, data mining and computational intelligence particularly neural networks and evolutionary computation, and probability and statistical machine learning. It also provides a list of research topics and possible projects that students can take during the following summer and for their Honors research projects in the following year. Conclusions
In summary, the course covers some common topics and methods in machine
learning and computational intelligence. As an undergraduate course, it is impossible to discuss in-depth the current state-of-the-art research. Instead, this course provides essential background and training for computer science and engineering students to start research in computational intelligence, particularly in evolutionary computation and neural networks. A large number of students start their research projects after this course. The methods and tools provided in this course will also serve as a platform for students to use computational intelligence methods to solve engineering and industrial applications. Since 2009, this course has become the largest course among all the 20+ computer science and engineering courses at the 300-level (third year) at our university. The feedback from the students has been very positive and encouraging. While some students think this part is challenging and the workload is heavy, many students come to me to comment on how much they have learned and how they enjoy the topics discussed in the part. In particular, many engineering students comment to me that the machine learning and computational intelligence methods are very useful to their disciplines. Students have frequently commented that through this course, they have not only learned machine learning and computational intelligence techniques, but also been trained how to use these techniques to solve practical problems.
(continued from page 9)
seminars that spurred him to write a series of short stories that delighted his family and friends. He also enjoyed time with his beloved wife and his children, their families, and his five grandchildren. Born and raised in Saint Louis, Missouri, Herb moved to Albuquerque, New
Mexico at age 13 with his parents, Herbert and Vera, and sister, Joanne. His electrical engineering interest was piqued by an early morning noncredit radio course taken his senior year in high school. He leaves behind his wife Margie; his children Marta, Erik, and Loren, and
their families, including five grandchildren; his sister Joanne Nelson; and his cousin John Forster and family. He was predeceased by his son Evan, in whose honor he had endowed the U.C. Berkeley “Evan Rauch Chair of Neuroscience.”
AUGUST 2011 | IEEE COMPUTATIONAL INTELLIGENCE MAGAZINE
59