School Mathematics Project


The School Mathematics Project arose in the United Kingdom as part of the new mathematics educational movement of the 1960s. It is a developer of mathematics textbooks for secondary schools, formerly based in Southampton in the UK.
Now generally known as SMP, it began as a research project inspired by a 1961 conference chaired by Bryan Thwaites at the University of Southampton, which itself was precipitated by calls to reform mathematics teaching in the wake of the Sputnik launch by the Soviet Union, the same circumstances which prompted the wider New Math movement. It maintained close ties with the former Collaborative Group for Research in Mathematics Education at the university.
Instead of dwelling on 'traditional' areas such as arithmetic and geometry, SMP dwelt on subjects such as set theory, graph theory and logic, non-cartesian co-ordinate systems, matrix mathematics, affine transforms, vectors and non-decimal number systems.
The SMP is now a registered charity, and continues to publish textbooks in association with Cambridge University Press for GCSE and both AQA and Edexcel A-level exams. It also published an educational comic called "Mathematical Mike and his Dog Dingle."
The computer paper tape motif on early educational material reads "THE SCHOOL MATHEMATICS PROJECT DIRECTED BY BRYAN THWAITES".
O O O O O O OO O O O O OO O O O O O
O O OOOO O O O O OO O O O O O O O
O O O O OO O O OO O O O O O O OOO O O O OO O
···································································
O OO OO OO OOO O O O O OO O O O O
O O OO OO OO OOO OOO O OO O OO O O OO OOO OO O
THE SCHOOL MATHEMATICS PROJECT DIRECTED BY BRYAN THWAITES
The code for this tape is introduced in Book 3 as part of the notional computer system now described.

Simpol programming language

__INDEX__
The Simpol language was devised by The School Mathematics Project in the 1960s so as to introduce secondary pupils to what was then the novel concept of computer programming. It runs on the fictitious Simon computer.
Simon is illustrated in a line drawing as consisting of three units. A control desk incorporates a punched paper tape reader for the input of programs and a teleprinter that renders a readable printed record from punched tape output. The arithmetic unit offers the four fundamental operators of addition, subtraction, multiplication and division, extended to include square root and absolute in. Finally, the numbers being worked on are held in a storage unit that would be equivalent to the core store of its day, now simply referred to as memory.
There are eight storage locations addressed as S1 through to S8 inclusive. There is no specification for the numbers that can be held, but examples are given of positive numbers in conventional denary with, optionally, a decimal point and some decimal
places. The size of the program memory is unclear but said to be large enough for practical purposes. Programs also reside in the storage unit, but in a separate "compartment" to the number stores.
The same chapter of Book 3 shows the punched tape code. Although a 5-unit code, it is different to ITA2 "Telex" code. It's a simple binary number substitution so A is coded as 1, B as 10 up to Z as 11010. Some of the odd parity codes double up as numerals with a letter shift character switching between alphabetic and numeric characters - which would fail in practice since it is not possible to define a start-up condition unless there is also an explicit number shift. No codes are given for decimal point or operators, space appears to be represented by a frame with no punching which is the same as the blank leader for physically feeding the tape into the reader. See above for a sample of this tape but the punch tape codes at the beginning of the chapter in Book 3 are meaningless.
Students learn about mistakes in programming early on in Book 3, though the term "bug" does not appear.
There are three basic instructions in Book 3. Language extensions are introduced in Book 4. In the description below,
is in denary and may be an integer and/or have a decimal fraction part
is the storage location single digit 1-8 inclusive
is one of + - × ÷
is one of < ≤ > ≥ =
is an integer
Input {number} to S{store}
Example:
Input 1.23 to S5
Replace S{store} by S{store}{operator}S{store}
The destination store can also be one of those operated upon because the operand stores are first transferred to the arithmetic unit, next the calculation is performed and only then is the result placed in the destination store.
Operands can only be a store, not literal constants.
There is only one operation at a time, so students are forced to think in terms of breaking problems down into a series of small steps.
Example:
Replace S1 by S1+S2
takes the numbers in S1 and S2, sums them and then replaces S1 by this result.
The extensions in Book 4 are:
Replace S by √S
which finds the square root by a single instruction and
Replace S by |S|
to obtain the absolute value, ie no change for positive numbers but negative numbers become positive.
Output the number in S{store}
Example:
Output the number in S1
In Book 3, SIMON only has the capability of a programmable calculator, rather than a full computer implementation, because there is no test/branch instruction. The concept of decisions leading to branching is introduced later in the same chapter in terms of the diamond box in flow diagrams, not as a computer language instruction.
Book 4 adds a new instruction:
if S{store} {condition} go to ({line label})
Lines may be labelled by numbers in brackets.
Example:
Output the number in S3
if S1 > S2 go to