Typically Intelligent Systems (IS) or Artificial Intelligence (AI) subjects are offered in the final year of a Computer Science degree, since students need some programming and software development experience to contend with the scope of the subject. The content is broad and ever-changing: spanning a diverse and disparate range of topics from expert systems and robotics, through machine intelligences and neural networks; hinging on the cutting edge of computer science research; and, prominently represented in real-world applications. Such subject offerings should introduce students to different problem solving strategies and heuristics of IS and AI, as well as aim to help students gain an understanding of the development of an IS and the process of knowledge engineering.
Within the tight delivery frameworks and time limits of a typical teaching semester, it is difficult to cover all the different fields of study in an IS subject well. Some lecturers faced with such diverse subject matter, opt to do a minimal subset of topics, choosing one problem-solving strategy and focusing on some of its aspects. As a consequence, the supporting student laboratory sessions center on using artificial practice instances of the chosen strategy. Using this approach, it is difficult for students to develop the necessary knowledge engineering skills since they are not given the opportunity to work on a problem of any breath or depth.
As an elective study in a Computer Science degree, the subject of Intelligent Systems mostly attracts students majoring in computer science, however it also appeals to engineering students. All enrolling students must have completed two programming subjects and some will have studied software engineering and/or software development subjects. As a consequence of the liberal prerequisite requirements and broad subject appeal, the subject includes a heterogeneous student group representing a broad range of background skills and differing ways of learning. The varying programming backgrounds of IS students (Hill & Alford, 2004), and availability of suitably equipped laboratories and software, are other limiting factors in the delivery of such subject material. Hence, at no stage do students have an opportunity to experience commercial knowledge engineering software, or develop and create an intelligent system?
Rationale for & Design of the Project
Given the above difficulties of presenting IS subject content, it was decided that one way of addressing those complexities would be through the introduction of a software development project. Even though the task itself is not considered a capstone project for the degree, it would take students through the complete process of knowledge engineering, where there would be as much emphasis on the process of creation as on the end product itself. As noted by Ye and Gray (1996) who were also frustrated by similar teaching challenges in their accounting information course, "teaching expert system development is particularly difficult" in that it requires an understanding of the decision making processes in creating such projects. In our case, the major pedagogical goal was primarily to expose students to the development process and, particularly the various roles of domain expert, knowledge engineer, programmer, end user and project manager that they would need to play throughout, as students could be expected to play any of these roles in their future professional careers.
Such role-playing strategies and exercises as a vehicle for student instruction are reported throughout the computer science education literature, particularly in courses that require students to plan, estimate, organize and communicate (Dean & Hinchey, 1995; Jones, 1987; Sullivan, 1993; Zowghi & Paryani; 2003). This approach emphasizes integration of theory with practice and is associated with the experiential way of learning, described by Kolb (1984). …