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:
The program file for the latter has '2 Dec 1979' at the top
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.
http://www.cs.bham.ac.uk/research/projects/cogaff/sussex-pop11.htmlRunning 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 PDP11I 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).
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
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.
Steve Hardy's introduction to STRIPS-based planning is dated 1983. The teach file is
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:
(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).
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
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.
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.
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.
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.
School of Computer Science
The University of Birmingham