Poplog as a Learning Environment
Aaron Sloman
Last updated: 8 Aug 2006
Added section containing notes and comments at end

In the light of the recent allocation of a patent for e-learning by the 'moronic US Patent Office' as described here, I was asked to summarise the e-learning facilities in Pop-11 and Poplog since some of them go back to the 1970s and some the early 1980s. What follows is a hasty response to that request. (Also referenced under 1976 in this wikipedia history of e-learning environments.)

Early Course Management System in Pop11

We developed an early course management system in the 1970s, in the form of 'teach' files, which were my invention, inspired by Max Clowes' use of printed 'crib sheets' containing tutorial text and code examples and fragments, printed out and given to students.

The Pop11 TEACH mechanism allowed the computer to print out bits of a file suggesting examples for the student to try, and then, when the student was ready it could print more bits, i.e. interleaving reading and programming. The computer gave feedback in the form of the results of running the student's instructions.

At first we used the system on teletypes printing on rolls of paper at 10 characters per second (a short time later we had one CRT-based VDU terminal, used only by staff).

Hitting the 'RETURN' key twice made the 'teach' program print more text from the teach file. Otherwise it just incrementally compiled whatever the student typed in. This could include an invocation of the text editor, procedure definitions, invocation of procedures defined by the student, invocation of library programs provided by the tutor (as in the 'teach grammar' example), or simple pop11 commands, used to learn the syntax.

All of this depended crucially on the freely (for academics) available Bell Labs Unix system (the precursor of linux) which provided excellent facilities for multi-processing and communication between processes. I think we had about 16 students at a time using this system on a PDP11/40 computer with about 256KBytes core memory, and two 2.5Mbyte RK05 hard drives about 18 inches in diameter. The whole machine used about 4KW electricity and occupied two cabinets taking up most of one wall of our computer room.

The DEC maintenance engineer said it was impossible for such a 'small' machine to handle that many users at once: he did not know about shared incremental compilers, or Unix.

Enhanced versions of two of the earliest teach files produced in the late 1970s are here:

http://www.cs.bham.ac.uk/research/projects/poplog/teach/river
http://www.cs.bham.ac.uk/research/projects/poplog/teach/grammar

The program file for the latter has '2 Dec 1979' at the top
http://www.cs.bham.ac.uk/research/projects/poplog/lib/grammar.p

Those program library files could be used either with TEACH files or on their own as loadable code libraries.

(We were never good at ensuring that documents included their history. Much later on, tools for doing this were added to the tools for managing program files.)

We had 'teach' files for pop11 (pop-11 -- I am lazy) and AI running on the PDP11/40 computer in the late 1970s. The system was developed for use at Sussex University in the Cognitive Studies Programme (which later grew into the School of Cognitive and Computing Sciences COGS, which continues to exist as a research centre).

Soon after we started using Pop11 at Sussex it began to be used in other places, including the Psychology department at Nottingham, where Nigel Shadbolt introduced it (and later wrote a text book (Burton and Shadbolt?) on Pop11.

Computing systems: the importance of Unix

In 1975, when Steve Hardy arrived, we obtained a PDP11/40 computer running the DEC RSX11 operating system, and Steve (now somewhere in California) produced a version of pop2, which he called pop-11 as pop-10 was the name of the version that ran on a PDP10. Pop-11 was running in early 1976, written in assembler. The DEC operating system did not meet our needs, so we switched to unix, and pop11 was rewritten in unix assembler. There's more detail in this text file which is a chapter from a book on Pop11 edited by James Anderson:
http://www.cs.bham.ac.uk/research/projects/cogaff/sussex-pop11.html
Running pop11 on unix made it very easy for us to set up commands that allowed a student to suspend a process, run the editor to produce or modify a program file, and then resume the process and compile (or recompile) the file, using the fact that pop11 had an incremental compiler and everything was dynamic.

In the above chapter in the section headed

The move to Unix on the PDP11
I wrote,
One use of Unix facilities was a built in Pop-11 "help" macro that invoked the Unix formatter nroff to format and print out a help file. I later introduced a "teach" program written in Pop-11 that allowed users to print out a portion of a text file, try out some Pop-11 commands, print more of the text file, try more commands, etc. These later evolved into the Poplog TEACH files.

'Teach' files were designed to allow the computer to manage the student's teaching by presenting chunks of teaching material, while leaving the student ultimately in control (which we always thought was very important).

The spread of Pop11 and Poplog

This system was used in various UK universities, including Nottingham (in the Psychology department -- Nigel Shadbolt may remember when they started) and I think Aberdeen, and a boy's 'public' (=private in the UK) school, Marlborough College, which happened to have a PDP11 running unix. The above file on pop11 evolution gives more information.

The Pop11 propositional logic tutor

By 1978 I had implemented a Pop11 logic tutor which did not use Pop11 TEACH files as described in my previous message, but instead ran a program which presented progressively more complex examples of propositional logic problems of various types chosen by a student (who always remained in control, in accordance with our general educational philosophy).

E.g. after wrong answers, students had the option of trying again or asking for an explanation, which was generated on the fly, or doing something different.

Code and documentation for the logic tutor are here

http://www.cs.bham.ac.uk/research/projects/poplog/lib/logic.p
http://www.cs.bham.ac.uk/research/projects/poplog/help/logic

Originally it even worked on old teletypes (using up masses of paper).

It has always been part of Poplog, though I don't know if anyone apart from me ever used it for teaching.

Other teaching systems in pop11

There were several other subsystems in Pop11/Poplog concerned with teaching programming or various areas of AI (e.g. expert systems, vision, planning), or the use of the editor.

Steve Hardy's introduction to STRIPS-based planning is dated 1983. The teach file is

http://www.cs.bham.ac.uk/research/projects/poplog/doc/popteach/solver

From Pop11 to Poplog

Around 1980/81 Pop11 (still implemented in unix/PDP11 assembler) was ported to a Vax running VMS, and rewritten in Pop11 itself by Steve Hardy and John Gibson via a tortuous bootstrapping process, and soon after that incremental compilers were added first for Prolog (after which the system was called Poplog) then later for Lisp and ML.

The Prolog extension was mainly driven by Chris Mellish (he and Steve Hardy published a paper on this in 1983). One of Chris' libraries provided a superb interactive teaching system for Prolog students -- still one of the best ways to explain to a beginner student what goes on when a prolog program runs (including cut !!), summarised here:

http://www.cs.bham.ac.uk/research/projects/poplog/doc/prologteach/tracer
http://www.cs.bham.ac.uk/research/projects/poplog/doc/prologhelp/tracer

(The first file is dated 1983)

By then we had VDUs and a screen editor, VED, written in pop11 and integrated with the compilers and supporting hypertext (cross-references to program or documentation files triggered by 'ESC h').

So it was no longer necessary to use the rigidly sequential approach to managing teaching forced by paper terminals. We introduced different categories of files (teach, help, ref, data, lib) all accessible by the learner (or anyone else) via a simple hypertext mechanism.

These tools encouraged teachers to develop a wide range of teaching packages, each comprising a mixture of code and documentation presented via the editor Ved, which was able interactively to invoke system or user programs.

For example, by the early 80s there was a bundle of Pop11 teaching packages showing cumulatively how to assemble a simplified version of Winograd's shrdlu program including parsing, semantic interpretation, reasoning (to resolve ambiguities and answer questions), planning (to make a simulated robot achieve goals) and toy text-based graphical display of the system in action. This was based on code and documentation produced by Steve Hardy, John Gibson, David Hogg, Roger Evans, Chris Mellish, Gerald Gazdar, David Hogg and myself. I think it was David Hogg (now professor at Leeds) who first put it all together. A version of this with better graphics still runs on poplog -- with a demo movie (item 12) here.

A particularly powerful collection of teaching and utility libraries for computer vision is the popvision system, developed later by David Young, using the same general mechanisms, described in this file (which unfortunately uses special characters that don't display well in internet browsers).

Using the integrated editor, VED: adding flexibility.

At some time in the 1980s Josie Taylor, now a Professor at the Open University, who was then a Sussex PhD student earning a bit of extra money by helping us teach undergraduates (and MSc students?) AI programming, had the idea of extending teach files with an index based on section headings with a simple editor command to jump from anywhere to the index and from the index to any section of the file. The Pop11 editor, VED, was extended to support this and also to support automatic creating and updating of the indexes.

That was in addition to hypertext facilities in the editor which we had previously added for accessing related documentation and library source files. Josie's idea meant that it was much easier for students to skip or redo bits of a teach file, or just refer back or forward for information. (All this was managed by the Poplog editor Ved.)

A help file explaining the system and acknowledging her contribution is here

http://www.cs.bham.ac.uk/research/projects/poplog/doc/pophelp/enter_g

The corresponding code file has Apr 6 1986 at the top.

It also later became easy to use the hypertext to jump from one TEACH file to a specific section of another. All the code is still in Poplog, and fully documented.

Although all these facilities preceded the internet we made heavy use of networked access, so that files produced by tutors were instantly available to students, students could share files where appropriate, and tutors could examine and comment on student files where appropriate. Later versions of the system were used on networked Unix or VMS workstations, e.g. Suns, HP workstations, then later PCs running linux, as well as being accessed remotely on powerful shared compute servers.

Influence of Poplog

It is possible that use of Poplog influenced many more people than we shall ever know. One example that I do know of was the integration between Quintus Prolog and the editor Emacs. Richard O'Keefe, well known author of The Craft Of Prolog encountered Poplog when he was a student at Edinburgh University. He fully appreciated the power of the strong connection between the incremental compiler and the Editor for both teaching and development work. He later went to work for Quintus in the USA at one time the leading Prolog developer, now part of sicstus. Richard told me that the integration between Quintus prolog and Emacs was directly inspired by the use of Ved in Poplog.

Poplog as a commercial product

The combination of teaching facilities and powerful development environment was so effective that a number of companies bought Poplog in the early 80s in order to learn about AI, and in some cases to develop applications, including GEC, British Aerospace, Lockheed, Boeing and others, including HP Research Lab in Bristol later on.

From about 1983, after I had got fed up being a salesman, the marketing was taken over by Systems Designers, then later ISL (formed by a subset of SD, who bought out the Poplog business), while development work continued at Sussex. Poplog enabled many people in industry in the UK (and probably some elsewhere) to teach themselves programming in pop11 and prolog and in some cases lisp.

So this was not just an academic toy. Its success led to funding for further development by the UK Government Alvey programme for several years. I have a government 'SMART award' plaque originally awarded to ISL, then handed to me by its Director Alan Montgomery, commemorating sales worth USD$5M.

The Free Poplog System

All of this stuff is now part of the Free Open Source Poplog system, available for anyone to download, inspect and use, here.

It became freely available, just as it was ported to Linux, in 1999, because ISL, who had been selling Poplog for Sussex University since about 1989, were bought by SPSS for their data mining product Clementine originally implemented in Poplog, mostly in Pop11.

Max Clowes

Alas, Max Clowes, one of the original drivers of the system died in 1981. I have a tribute to him here here. In Part 3 of this document I summarise our vision for the use of computers in education in the 1970s and explain why it failed: a tragedy of our time.


NOTES AND COMMENTS

Comments relating to the patent, added 8 Aug 2006

From an early stage (i.e. late 70s) because email was available on unix systems we started using it for communication between staff and students.

At a later stage we set up different email lists and/or (bulletin boards) for use by different groups of students or for teaching staff, or for PhD students acting as instructors. Some student email lists/bulletin boards were used for communication between teachers and students, and some only for student communication.

The unix file access mechanisms and group facility made it possible to give different groups of users access to different sets of files.

From the beginning, as mentioned above, our philosophy was to provide great flexibility to teachers and students, so instead of packaging all material in terms of specific courses, a vast amount of code, documentation and teaching material was provided in a form that allowed different teachers to select portions to form virtual packages, using hyperlinks.

A lot of the learning supported was project based: i.e. instead of providing only pre-packaged collections of information to feed to students, we provided an environment in which students could learn by exploring, trying things out, finding out what was available, etc. There were given some guidance in the form of advice on how to plan a project, and how to write a report.


Maintained by Aaron Sloman
School of Computer Science
The University of Birmingham