School of Computer Science -- The University of Birmingham

In collaboration with The University of Sussex:
Informatics Department and Centre for Research in Cognitive Science


Teaching Documentation and Libraries in Pop-11
Pop-11 packages
And Other Poplog Languages (Prolog, Lisp, ML)

This is part of the Free Poplog Portal

Warning The www.poplog.org web site seems to be defunct (June 2009)

Teaching materials for Poplog/Pop-11/AI/General programming

The Pop-11 teaching materials provided in Poplog allow students at all levels to learn about many aspects of both general programming and Artificial Intelligence and Cognitive Science, by designing, implementing, testing, documenting their own programs and using, testing, extending, and analysing working programs provided.

The core language, Pop-11, in some ways like Python, in other ways like Lisp, can also be used to introduce a variety of common programming paradigms, including use of loops, recursion, co-routines, rule-based programming, event-driven programming, list processing, pattern matching for structure manipulation, numerical programming, array programming, use of object oriented programming with multiple inheritance, and uses of higher order functions and closures (as in Scheme). A linear algebra package based on Lapack and BLAS is described here, here, and here.

A subset of Pop-11 with graphical facilities provides the functionality of the LOGO Turtle, but with many additional features available, illustrated here and in this tutorial introduction to making pictures of faces, and combining graphical commands with loops, and list processing.

There are many 'teach' files developed at Sussex University, Birmingham University and elsewhere, introducing concepts and techniques, with exercises ranging from simple program completion to development of whole systems, some of them making use of packages provided by tutors to hide details for beginners: e.g. some basic programming and AI teach files here and here, including a tutorial on building a simple chatbot based on pattern matching an introduction to grammars, parsing. sentence generation, generation of stories and haikus ; some general programming including recursion and list-processing here and here (with answers available); some rule-based programming examples here, the use of the SimAgent Toolkit here and The Sussex University Popvision tutorials here, and a book, originally published by MIT Press, though now out of print, providing an introduction to Cognitive Science/AI using Pop-11 is here. It uses an older version of the Pop-11 syntax, which is still supported in Poplog. A Pop-11 programming primer for people with previous programming experience, using the current syntax is here.
See also: Beginners need powerful systems

Editor, documentation and libraries
The environment has many of the interactive features of interpreted languages, though the Poplog languages are all incrementally compiled to machine code for efficiency. The 'TEACH' files, and other documentation files, are accessible through an integrated visual editor (Ved, also usable as XVed, in multi-window mode), which 'knows about' the compilers, the program libraries and the documentation libraries, and is extendable since it is implemented in Pop-11. E.g. a tutorial file can have a hypertext link to other documentation or to program libraries. Programming examples can be run from inside the editor, then modified and run again, without restarting the editor or Poplog.

For Emacs users there is a conversion package that extends Emacs to support integration with the Pop-11 compiler. Another option, for people who do not wish to use a new editor is to type commands into the Pop-11 (or Prolog, or Lisp, or ML) prompt in a shell command line, while editing and reading documentation quite separate editor. This will add some inconvenience and slow down development a little. (To a 'normal' edit/compile/test loop.)

There are many libraries extending the core system to support various kinds of programming tasks. For example the SimAgent toolkit supports exploration of architectures for more or less intelligent agents. The library and documentation system make use of search lists, allowing packages and teaching materials developed by different teachers, students and researchers to be combined flexibly, strongly encouraging team teaching. (Used for many years at Sussex University.)

There is also a collection of libraries and tutorials related to computer vision, i.e. image analysis and interpretation, in David Young's "Popvision" Library including neural net, array manipulation, and linear algebra utilities.

Some of the Poplog/Pop11 graphical facilities are illustrated here, and there are movies showing some student AI projects, based on the the SimAgent toolkit.

For more information on Poplog and its history see
http://www.cs.bham.ac.uk/research/projects/poplog/poplog.info.html
A history of developments in e-learning using Pop-11 and Poplog, starting at Sussex University in 1976 can be found here.

For many years Poplog was an expensive commercial product, first sold commercially by Sussex University for use on VAX+VMS (for UK£3,000, and much less for academics) in 1982, and then continually developed, ported to other platforms, and commercially supported up to 1998, first by Systems Designers (from 1983) and later by a spin-off, Integral Solutions Ltd (founded in 1989).

At one stage the commercial price was UK£7,500 (+VAT) for workstations, though the educational price was always much lower. Poplog was a solid, reliable, commercial product, used mainly, though not entirely, for AI and Software Engineering research, development and teaching. By about 1992 sales had exceeded $5,000,000.

The most famous product implemented in Poplog (mainly Pop-11) was the Clementine Data Mining system, developed by ISL, as a result of which they were bought by SPSS, so that Clementine (now called "PASW modeller"), could be integrated with their other data-mining tools (after re-writing in Java and C++, with some loss of functionality). Another product based on Poplog was a software validation toolkit produced by Praxis.

Further information is available on Wikipedia and other sites:


Suggestions for improvement are welcome.

This file maintained by:
Aaron Sloman
http://www.cs.bham.ac.uk/~axs/
Last Updated: 26 Jun 2009