Interdisciplinary
AI |
Curriculum
Descant
From ACM Intelligence Magazine Volume 11, Number 2, Spring 2000 ACM Press |
Artificial Intelligence, as a course offered within computer science programs, should be an interdisciplinary course. Stated more carefully, the correct design for an undergraduate artificial intelligence course for a computer science department is such that it should be able to be taken by any student possessing good analytic skills but lacking programming skills. The interdisciplinary nature of a well-designed artificial intelligence course is not itself a goal of the preferred course design, but is a consequence of it. Many computer science students are primarily and sometimes exclusively interested in programming and related technical matters. Their focus is on implementation. Most computer science instructors, myself included, talk, sometimes a good deal, about the idea that we aim primarily to teach students problem solving, but the fact is we mostly end up focusing on implementation, too. (Perhaps a "proper" computer science degree should after all, `{a} la Dijkstra, ban actual programming for the first two years or so.) We as instructors contribute to this unfortunate state of affairs by, sometimes unwittingly, over-designing our class projects. In our attempts to make sure that the students get the top-level design "right", we give it to them up front, often giving detailed descriptions of the suite of functions and so on that must be implemented. The task that falls to the student is often little more than to implement our design. It is harder to correct the situation than those who have not taught might imagine. Such is the case much of the time in typical computer science courses, mine included. When we come to the artificial intelligence course, problem solving fares even worse because the problems artificial intelligence tackles are so much more difficult. The problems artificial intelligence tackles are not only complex, they also require a good deal of background theory in order to be properly grasped. The amount of background varies, but is always considerable. Computer science programs are not the ideal training grounds for artificial intelligence. There are of course exceptions, but in general, computer science students lack an understanding of philosophical issues, which bear on KR; a detailed understanding of natural languages, which bears on NLP; and so on. But most of all, they are not strong mathematically: many struggle through calculus, statistics, logic, and discrete math. The upshot is that the theoretical content and mathematical sophistication of what get discussed in artificial intelligence courses is all too often quite weak, or at any rate, weaker than it might otherwise be. Computer science students do not bring much background knowledge from other disciplines to provide a springboard from which artificial intelligence issues may be investigated. This weakness can be masked if class projects involve machine implementations. The more time and effort the student puts into implementation, the less time and effort remain for understanding theory and developing solutions. So artificial intelligence courses should focus more on problem solving and theory and less on coding or implementation; hardly a novel view. What I want to suggest, however, is that coding or implementation be eliminated altogether, the time saved being much better spent on learning how to tackle complex artificial intelligence problems and on exposure to theory. As a "side effect", it allows students outside of computer science, who often bring with them a detailed knowledge of matters relevant to one or more subareas artificial intelligence, to be full participants in the course and not merely "sit-ins" compelled to write ethereal essays while the real students program. Students -- good students -- in mathematics, physics, linguistics, philosophy, psychology and so on would enhance the theoretical tone of our courses. We should make an effort to attract such students. (And once so attracted, we might even encourage them to minor, or major, in computer science. We might assuage any guilt we might feel from such academic poaching by reflecting on the social good of enhancing the career opportunities of those so poached.) In short, artificial intelligence should be an interdisciplinary course and we, as instructors, should consciously conceive of it as such. We should adopt as a criterion for class projects: can the project be completed successfully without a knowledge of any programming language and by students outside of computer science? Machine projects should be restricted to the use of software that facilitates understanding or tests problem solutions. Instead of having students add a morphological module to an ATN and write a grammar to parse a simple suite of sentences containing morphological variants, give them the morphological module and have them develop a grammar for a much more complex suite of sentences. Instead of having students implement search algorithms, have them compare the behavior and performance of such algorithms already implemented. Some otherwise worthwhile projects have to be omitted. Students cannot, for example, be asked to develop and test the efficacy of search heuristics unless someone implements the algorithms. A certain amount of creativity is needed. But in giving up implementation projects, we need not give up an examination of implementation matters. We can still cover in detail algorithms concerning matching and unification, parsing, resolution, and so on. There's plenty of time for actual implementation in graduate courses. If we ourselves view our undergraduate artificial intelligence courses as interdisciplinary, it will mold our course design to benefit not only our own computer science students, but also students in our colleges in general. Artificial Intelligence needs as many smart people as we can get, from computer science and elsewhere. |
Fall
1997 Summer
1998 Fall
1998 Winter
1998 Spring
1999 Summer
1999 Fall
1999 January
2000 Spring
2000 Summer
2000 Fall
2000 January
2001 Spring
2001 Spring
2001 |
About Curriculum Descant
Curriculum Descant has been a regular column in ACM's Intelligence magazine
(formerly published as ACM SIGART's Bulletin). The column is edited by
Deepak Kumar. The column features short essays on any topic relating to the
teaching of AI from any one willing to contribute. If you would like to contribute
an essay, please contact Deepak Kumar.