Undergraduate AI and its Non-imperative Prerequisite

Deepak Kumar
Department of Math & Computer Science
Bryn Mawr College
Bryn Mawr, PA 19010
(610) 526-7485

Richard Wyatt
Department of Math & Computer Science
West Chester University
West Chester, PA 19383
(610) 436-3230

From ACM SIGART Bulletin Special Issue on AI Education, Kumar & Hearst (editors), Volume 6, Number 2, April 1995


This position paper presents, we believe, a strong case for including in an undergraduate Computer Science (CS) program a required course in non-imperative programming. Such a course is motivated by the need to provide a uniform and adequate background for a course in Artificial Intelligence (AI). We make no claim about graduate AI courses. We survey the recommendations of the ACM-IEEE Joint Curriculum Task Force for an undergraduate course in AI and argue that some of the ``dilemmas'' of teaching introductory AI courses can be resolved by changes in the core CS curriculum. The argument for such a course is the focus of the paper; we also offer some ancillary remarks on other matters relating to teaching AI at the introductory level. West Chester University and Bryn Mawr College are in many respects rather different schools (see Appendix). Even so, the problems encountered in developing a successful AI program, and the resulting programs themselves, are remarkably similar. We think that our separate experiences have benefited each other. The aims of our AI courses are:

AI in the CS Curriculum

It has been argued that an undergraduate course in AI could play a fundamental role in the CS curriculum [Aiken, R. M. 1991]. The recent ACM-IEEE Joint Curriculum Task Force Report [Tucker, A., ed. 1991]. recommends that a core undergraduate curriculum include nine lecture hours on AI, consisting of history of AI, applications, state spaces and search strategies, and offers sample curricula which includes an advanced or supplemental AI course described thus:
  • Topic Summary:

    A selective survey of key concepts and applications of artificial intelligence, and an in-depth experience with a language commonly used for building AI systems (e.g., Lisp or Prolog).

    Subtopics include knowledge representation, state space searching, heuristic search, expert systems, expert system shells, natural language processing, propositional logic and cognitive models, and vision.

  • Suggested Laboratories:

    Students will implement, modify, or enhance several AI systems using an AI language and associated tools (e.g., expert system shells, knowledge acquisition tools).

  • Prerequisites:

    AL1--AL3, AI1, AI2, PL11, SE1, SE2, Discrete Mathematics [page 71, Tucker, A., ed. 1991]. The only Knowledge Unit (KU) in the prerequisites which bears on AI is PL11, a Programming Paradigms KU described thus:

    The suggested laboratory work for PL11 includes developing short programs in languages exemplifying the three paradigms. In the sample curricula, this component is usually included in the course on Programming Language Concepts and consists of approximately 10 hours of lectures; ten hours of lectures for functional, logic programming and object-oriented programming.

    The Language Barrier

    The following problems, in our view, seriously affect how an AI course is to be designed in relation to the background programming language.

    A Solution

    Though an undergraduate introduction to AI should concentrate mainly on the concepts relevant to AI, it should also provide a considerable exposure to implementation matters. The needed background for the implementation component is to be provided by a course in non-imperative programming. Such a course should be offered after the introductory imperative (or imperative augmented with OOP) course(s), should preferably be offered at the freshman or sophomore level, and should be required of all CS majors. Such a course would maintain a sharp distinction between non-imperative languages and AI, permit a conventional programming language course to focus on the run-time structure of imperative and non-imperative languages, and provide all students with an adequate, and by and large equal, background from which they may proceed, if desired, to AI. Such a course is also entirely justified on independent grounds. Exposure to different programming paradigms, functional and logical, broadens ones outlook in much the way that exposure to foreign languages broadens one's understanding of English. By seeing how different languages tackle and solve similar problems, a far grater understanding of the issues, both theoretical and practical, is developed. Such a course also provides intensive exposure to recursion, which is very often a weakness in beginning students.

    A First Course in AI

    The Language Prerequisite

    Elementary knowledge of the programming languages used for the laboratory component of the course should be a prerequisite. This requirement should be fulfilled by a course on non-imperative programming paradigms. The course should, preferably, be offered at the freshman or sophomore level (post CS1) and should be required of all majors.

    The Core Concepts

    In an early draft of a recently published introductory AI text, the author claimed that despite the apparent diversification in the field of AI there is only a small set of core ideas, which can be successfully presented in less than 300 pages. By the time the book was published, however, it was close to 450 pages; and much was still omitted. There is, of course, no clear core to AI. There is a considerable range of topics, most selections from which, would yield an interesting and worthwhile course. There is one caveat: most undergraduate students do not go on to complete a Ph.D. or even a Master's degree. Students have a legitimate interest in acquiring skills that make them employable. To this end, some exposure to Expert Systems, Neural Networks, NLU Systems, and so on, is usually in order as they become, and to the extent that they are, commercially viable.

    The Lab Component

    The laboratory and homework assignments should include:

    Ancillary Remarks

    Breadth vs. Depth: There are too many topics to hope to cover them all adequately in a single course. A mix of depth and breadth seems to work well, there being considerable flexibility as to which topics should be covered in depth. No topic, no doubt, must be covered in depth.

    AI Background: Because AI involves knowledge of such things as philosophy, cognitive science, linguistics, psychology, logic, etc, undergraduate students rarely have enough of a background to tackle AI problems without at least rehearsing such material. But if one is not careful, one can spend a great deal of time teaching the background knowledge to AI rather than AI itself. But some background is unavoidable. One must balance the additional time the background to a topic takes against the merits of the topic itself.

    Philosophical Matters: Is it really intelligence, or just a simulation? Is it still AI if we know how to do it? Is our approach motivated by cognition? We should not be concerned with these matters in introductory AI. Such matters are best dispatched in short order; there is little enough time for the meat of AI. We favour a view of AI which is neutral on such issues.

    Formalism: Formalism is an essential aspect of AI, and indeed, of many advanced learning domains. AI students should therefore be exposed to it and have its importance, at the advanced level, impressed upon them. But most undergraduate CS students are not gifted mathematicians nor formalists, and so the use of formalism should be limited.

    History: Students should be exposed to a brief history of AI, though this is no doubt best intermixed with the course, rather than treating it as a separate topic. Some coverage of classical AI programs should be included.


    Aiken, R.M. 1991: The New Hurrah: Creating a Fundamental Role for Artificial Intelligence in the Computing Curriculum. Education & Computing, 7:119--124.

    Tucker, A., ed. 1991: Computing Curricula 1991: Report of the ACM/IEEE-CS Joint Curriculum Task Force. ACM Inc., 1991.


    The following outlines the nature of our schools and CS programs, which, we believe, has influenced our views.

    Bryn Mawr College (BMC) is a small women's liberal arts college located 11 miles west of Philadelphia. The college has about 1200 undergraduates and 500 graduate students in sixteen degree programs. The Computer Science program at BMC is currently being developed in cooperation with Haverford College. The bi-college computer science program currently consists of three CS faculty and several affiliates from other departments. The current enrollment in computer science is about 25 students some of which are pursuing interdisciplinary degrees in cognitive science.

    Deepak Kumar
    Bryn Mawr College