The final QAA benchmarking document for Computer Science (published in 2000) is available at http://www.qaa.ac.uk/academicinfrastructure/benchmark/honours/computing.pdf
Note added 3 Mar 2007:
I and some others had some reservations about the document because we felt it did not adequately distinguish degrees that were mainly concerned with training for particular vocations involving use of computers and development of software systems from those that were more concerned with teaching the foundations of the subject and preparing future researchers to extend both the foundations and the techniques. This meant, in particular, that some of us felt that there was insufficient emphasis on the mathematical content of computer science and the possibility of doing theoretical (e.g. mathematical) project work in place of a practical project in the final year. I personally felt then, and still feel that that expressed a narrowness of vision in the majority of members of the computer science community.
The more detailed overview is given in section C, as an indication of the scope of the field. This might be used by reviewers considering degrees in AI, not in order to define what should or should not be in such a degree, but in order to provide some background that might be useful when assessing an AI degree course, or possibly when designing one. There is no implication that everything mentioned here must be included in a degree with "Artificial Intelligence" in its title, or that topics not included here are excluded. The subject is changing too fast for any rigid definition to be acceptable.
No attempt is made here to define standards required for various degree classes though it should be stressed that in AI, as in any other science, the highest standards of achievement require considerable mathematical sophistication. This is sometimes not so important in applications of AI.
Section D gives some information about AI tools and languages, how they differ from some other programming languages and tools, and why they are needed. It is not intended to give a complete overview of AI tools or languages.
The final section E gives pointers to further information, including the ACM classification of areas of Computing, and information about some well known national and international AI Professional Organisations, some of which include information about the scope of AI in their own web pages. It is hoped that these pointers will help to compensate for any omissions or distortions found here.
The overview lists a number of sub-fields of AI which are sometimes regarded as parts of AI, and sometimes simply as ordinary applications of computer science, e.g. image interpretation. It has often happened that a technique originally developed for AI purposes has been accepted as part of "mainstream" computer science or software engineering, and it is likely that this will continue to happen.
It is clear that AI is still in its infancy: there have been many interesting theoretical developments and useful applications, but many hard problems remain unsolved, and the subject can be expected to evolve rapidly in coming years, especially as developments in the power and costs of computers both enable more effective research and also increase the need for AI.
AI has two main strands, a scientific strand and an engineering strand, which overlap considerably in their concepts, methods, and tools, though their objectives are very different.
There is another nascent engineering application of AI: using the results of the scientific strand to help design machines and environments, and educational strategies that can help human beings. This may, but need not, including the production of intelligent machines. It could include the design of therapies or teaching strategies which engage more effectively with the information processing capabilities of patients or learners. Engineers also often need to take into account theories of natural intelligence when designing systems to interact usefully with humans.
Besides the contrast between Science and Engineering, there are other ways of dividing approaches to AI, e.g. according to the types of mechanisms or forms of representations thought to be most useful, or according to whether AI systems are explicitly designed or bootstrapped by some learning or evolutionary mechanism. New approaches often become fashionable for while and then are simply absorbed into the larger pattern of research and teaching.
Because humans and other animals, and equally robots and other intelligent artefacts, have a wide variety of capabilities, all of them very complex and hard to explain or model, both the scientific and engineering work in AI has spawned several sub-fields, dealing with particular aspects of intelligence.
Because the applications of AI are many and diverse some of the sub-fields are clustered around techniques relevant to a class of problems.
o Natural language processing, including production and interpretation of spoken and written language, whether hand-written, printed, or electronic throughout (e.g. email).
o Learning and development, including symbolic learning processes (e.g. rule induction), the use of neural nets (sometimes described as sub-symbolic), the use of evolutionary algorithms, self-debugging systems, and various kinds of self-organisation.
o Planning, problem solving, automatic design: given a complex problem and a collection of resources, constraints and evaluation criteria create a solution which meets the constraints and does well or is optimal according to the criteria, or if that cannot be done propose some good alternatives.
o Varieties of reasoning: This includes studies both of informal common sense reasoning, and specialised expert reasoning. The former includes the study of analogical reasoning, defeasible inferences, case based reasoning. The latter includes logical and mathematical reasoning, including design of theorem proving and inference systems either with the intention of modelling various kinds of human mathematical and inferential capabilities, or for practical purposes, e.g. in symbolic algebra toolkits, or reasoning in robots or autonomous control systems.
o Study of representations: investigating the formal properties of various sorts of representations, the mechanisms required for them to operate, and the kinds of tasks for which they are good or bad. This can include the study of ontologies of various kinds. Some mechanisms are sometimes claimed not to use any representations (e.g. neural nets) while a counter-claim is that they are simply a particular type of representation, e.g. numerical and continuous as opposed to structural and discrete.
o Memory mechanisms and techniques: analysis of requirements for various kinds of memory, including very large knowledge stores containing diverse types of knowledge, either for modelling human knowledge or for use in various sorts of applications.
o Multi agent systems: the study of various kinds of communication (linguistic and non-linguistic, explicit and implicit, intentional and unintended), types of cooperation and conflict, recognition of plans and intentions in others, etc. Some studies of multi-agent systems are concerned with understanding human social interactions, whereas others are concerned with the design of applications involving multiple robots or multiple concurrent software systems. Some multi-agent systems are proposed as an architecture for a single complex intelligent agent.
o Affective mechanisms: during the late 1990s there has been a growing interest in the role of motivation and emotions in intelligence. This is sometimes studied as a topic in its own right, and sometimes as part of the study of complete architectures for autonomous intelligent systems. A general theory would need to account for a wide variety of affective states and processes, including desires, preferences, dislikes, pleasures, pains, long term goals, intentions, ideals, values, attitudes, moods, and more. One of the current debates concerns whether emotions are required for intelligence, or whether they are merely side-effects or emergent features of mechanisms that are required for other functions.
o Robotics: one of the oldest sub-fields of AI. This is sometimes studied for the purpose of producing new kinds of useful machines (which is why this heading is also in section D, below), and sometimes because designing complete working robots provides a test bed for integrating theories and techniques from various sub-areas of AI, e.g. perception, learning, memory, motor control, planning, etc. I.e. it is a context for exploring ideas about complete systems. Sometimes robot designers attempt to show that certain sorts of mechanisms are not required in systems with a certain type of intelligence, e.g. showing what robots using no planning or deliberative capabilities can do.
o Development of languages and tools listed below in D.
Additions August 2006
o Architectures for complete systems. This was mentioned above in connection with Affective mechanisms.
Up to the mid 1980s most of the work in AI was concerned with specific forms of representation and specific algorithms for performing some task. Since then there has been a growing realisation of the importance of an architecture in which many different mechanisms are combined to provide a system with many different sorts of functionality, often concurrently active mechanisms. (There were some earlier discussions of architectures in AI.)
o Search is another topic that should have been mentioned above since finding a solution to some problem in a space of possibilities is a recurring theme in AI. Many different forms of search have been studied, related to different forms of representation, different problem domains and different requirements (e.g. Must the solution be optimal, or is satisficing the target? If satisficing is not enough, and optimality is too hard could it suffice to find a solution that is guaranteed to be close to optimal, within some limit?)
o Ontologies have been receiving considerable attention as a result of a growing realisation that it is not enough to specify the forms of representation that an intelligent system uses. It is important also to investigate what sorts of things should be represented. An ontology specification is a specification of what kinds of things are taken to exist: two individuals that share an ontology may, however, disagree as to which particular things allowed in that ontology actually exist, or which laws govern their behaviour. (This topic is closely related to old philosophical theories about what exists or what can exist.) Development of an ontology as a result of interacting with some environment is an important kind of learning.
NOTE: (Added 25 Feb 2007)The word 'ontology' is often used to refer to what is here described as the specification of an ontology. That specification could be a particular document in a particular formal language. However, the same ontology (the same set of entities, properties, relations, states, processes, etc.) could be specified using different notations, in many different documents. So it is less confusing to use the word 'ontology' to refer to the content not the vehicle, i.e. to what is specified rather than the means of specifying it.
The above is not intended to be a complete list. There are many other sub-fields which could be listed. For a more comprehensive survey follow the pointers given in the final section, below.
o AI in medicine, including interpretation of medical images, diagnosis, expert systems to aid GPs, monitoring and control in intensive care units, design of prosthetics, design of drugs, intelligent tutoring systems for various aspects of medicine.
o AI in robotics: including vision, motor control, learning, planning, linguistic communication, cooperative behaviour
o AI in many aspects of engineering: fault diagnosis, intelligent control systems, intelligent manufacturing systems, intelligent design aids, integrated systems for sales, design, production, maintenance, expert configuration tools (e.g. ensuring sales staff don't sell system that won't work). AI in software engineering includes work on program synthesis, verification, debugging, testing and monitoring of software.
o AI in interfaces and "help" systems: as computers are used for more and more applications that involve interaction with human beings, there are ever growing pressures to make the machines easier for non-experts to use. One approach to this is to give machines more intelligence so that they can guide, or advise users. This type of application can include many of the sub-fields listed above in section C.4.(a)
o AI in education: including various kinds of intelligent tutoring systems and student management systems. Particular applications might include diagnosis of a student's knowledge gaps, various kinds of drill and practice tutors, automatic marking of programming assignments and essays, etc.
o AI in information management: this includes the use of AI in data mining, web crawling, email filtering, etc.
o AI in mathematics: design of tools to help with various kinds of mathematical tasks, now used so widely that they are not recognised as AI products.
o AI in entertainment: increasingly AI is being used in computer games and in systems for generating and controlling synthetic characters either for textual interaction or generating films with cartoon characters or interactive avatars in virtual worlds.
o AI in biology: there are many hard problems in biology where more or less intelligent computer-based systems are being developed, e.g. analysis of DNA, prediction of folded structure of complex molecules, prediction, modelling many biological processes, evolution, development of embryos, behaviours of various organisms.
o AI in Law: e.g. expert systems to help lawyers, or systems to give legal advice and help to non-lawyers.
o AI in architecture, urban design, traffic management: tools to help solve design problems involving multiple constraints, helping to predict the behaviours of people in new environments, tools to analyse patterns in observed phenomena.
o AI in literature, art and music: identification of authors, modelling of processes of generation and appreciation, teaching applications.
o AI in crime prevention and detection: e.g. detection of forgeries, learning to detect evidence of crooked police officers, software to monitor internet transactions, helping to plan police operations, searching police databases for evidence that crimes are committed by the same person, etc.
o AI in commerce: a fast growing application area of AI enabled by the internet involves commerce, especially electronic commerce and the use of software agents of various sorts to provide, search for, analyse or interpret information, take decisions, negotiate with other agents, etc.
o AI in space: control of space vehicles and autonomous robots too far from earth to be directly manipulated by humans on earth, because of transmission delays.
o AI in military activities. This may be the area in which most funds have been spent. It is also not easy to learn about the details.
Again this is not intended to be a complete list. It is also not claimed that there are no other useful ways of dividing AI into possible course topics or research areas. Many of the above sub-headings were chosen simply because there are groups of researchers, conferences, journals, or books that focus on the topics given.
Some of the reasons for the special requirements are
These requirements have led to the development of languages which
Some of the specialised languages developed to support AI research and applications include Prolog, Scheme, Smalltalk, OPS-5 and other production system interpreters, several varieties of Lisp including Common Lisp, Pop2 and its derivatives, e.g. Pop-11, hybrid systems supporting more than one language, e.g. Loglisp, Poplog.
Using these and other languages, various tools have been developed to support knowledge acquisition and testing, theorem provers, planners, problem solvers, parsers and other forms of software for manipulating natural language, neural net toolkits, image processing tools, robot development tools, tools for designing and testing cognitively rich agents, tools for developing multi-agent systems, rule induction and learning systems, automatic program generating and testing tools, tools for doing experiments in artificial life, and tools for supporting evolutionary computation.
Some of the tools are closely related to particular theories, or intended to support particular types of techniques, e.g. constraint-manipulation toolkits, tools for building cognitive models based on SOAR, or ACT-R.
There have been some experiments in designing new forms of hardware to support AI, e.g. hardware tailored to playing chess, hardware for vision, hardware for implementing AI languages like Lisp or Prolog, hardware for neural computation, in addition to robots and robot components. In future there may be AI models or applications using entirely new forms of computers, e.g. quantum computers or DNA computers.
Many of the tools required for AI as engineering overlap with those required for AI as science, since the task of producing intelligent applied systems has much in common with the task of producing models of natural intelligent systems. Of course there are some AI researchers who would dispute that.
A particularly important one pointed out to me by Phil Husbands is a failure to emphasise the importance of search and how to control it as a common problem in many sub-areas of AI (vision, language, planning, theorem proving, problem-solving, etc.) and also in many application areas of AI. I have a draft incomplete document on the nature of search and some of the means that have been used to control it: http://www.cs.bham.ac.uk/~axs/misc/combinatorics.text
It is possible that this might best have been remedied by having an additional section in the document on AI techniques and representations.
The 1998 version is available as a single document at
The overview of AI is in section I2, listed (strangely) under "Computing Methodologies", and can be accessed here: http://www.acm.org/class/1998/I.2.html
It has the following main headings:
The British Computer Society Specialist Group on Artificial Intelligence (BCS-SGAI) has a more applied focus, though its seminars and annual conferences are very wide ranging. See http://www.bcs-sgai.org/
The main European AI organisation is ECCAI (European Coordinating Committee on AI), to which national AI organisations are affiliated. See http://www.eccai.org
The largest AI organisation is the American Association for Artificial Intelligence, which, despite its name, has many members from outside the USA. Information about it is at http://www.aaai.org . It includes a collection of Web pages (under continual development) that attempt to characterise the scope of AI, and provide a stead stream of news about AI and its applications.
The major regular international conference on AI is The International Joint Conference on AI (IJCAI) held every two years since 1969. See http://www.ijcai.org
There is a growing collection of web sites providing information about AI, some compiled by individuals and some by firms or organisations, for example the New Scientist AI web site http://www.newscientist.com/nsplus/insight/ai/ai.html
This includes pointers to several other sources of information about AI, including summaries by some of the founders of the field (e.g. Minsky, McCarthy), some textbooks, and UK universities known to be offering undergraduate degrees with AI in the title in May 1998.
This file maintained by
Last updated: 3 Mar 2007
16 Dec 2010: Minor reformatting and production of PDF version, using html2ps and ps2pdf.