person_outline
search
Martin Kilkie

Martin Kilkie

email This email address is being protected from spambots. You need JavaScript enabled to view it.

Why Turing?

Turing is named after Alan Turing, the famous English computer scientist who formed part of the successful Bletchley Park team who decoded the Nazi Enigma machine using the world's first operational electronic computer. The following is an extract from Alan's Wikipedia entry:

Alan Mathison Turing OBE FRS (23 June 1912 – 7 June 1954) was an English computer scientist, mathematician, logician, cryptanalyst and theoretical biologist. He was highly influential in the development of theoretical computer science, providing a formalisation of the concepts of algorithm and computation with the Turing machine, which can be considered a model of a general purpose computer. Turing is widely considered to be the father of theoretical computer science and artificial intelligence.

During the Second World War, Turing worked for the Government Code and Cypher School (GC&CS) at Bletchley Park, Britain's codebreaking centre. For a time he led Hut 8, the section responsible for German naval cryptanalysis. He devised a number of techniques for speeding the breaking of German ciphers, including improvements to the pre-war Polish bombe method, an electromechanical machine that could find settings for the Enigma machine. Turing played a pivotal role in cracking intercepted coded messages that enabled the Allies to defeat the Nazis in many crucial engagements, including the Battle of the Atlantic; it has been estimated that this work shortened the war in Europe by more than two years and saved over fourteen million lives.

Kilkiesoft is proud to name most of its apps after famous Computer scientists.

Turing Quests

Turing quest allows the teacher/student to test their abilities in understanding the operation of a simple CPU and then use its particular machine code to write algorithms to solve a range of increasingly hard problems.

In the current version there are 10 graded quests and each user's progress is recorded as they proceed.

Quests become more complex in general and in higher challenges certain features are disabled to ensure simple solutions arent possible.

Turing instruction set

Turing has been designed to be a reasonably complex CPU with instructions that reflect most of the operations that real CPUs can carry out:

  • Simple arithmetic (but limited to add and subtract)
  • Logical operations (and,or and bit shifts)
  • Register loading to and from each other and memory
  • Input and Output instructions
  • Instructions that change the flow of the program (decisions)
  • Stack operations (push and pop)

The processor is capable of a range of different addressing modes to allow this feature of CPUs to be explored.

Memory locations can contain data of three different types:

  • program instructions/data
  • numbers (assumed to be integers)
  • character data

This narrow range of numeric represention still allows users to explore wider algorithms including floating point and other numeric representations by software emulation (ie writing algorithms).

 

Saving and loading Turing programs

As with real computers Turing programs can be saved once completed and then reloaded to be run at a later time.

The exact details of saving and loading are slightly different on different devices, depending on whether there is a real or virtual keyboard, but in general:

  • For saving - a form is completed giving the program a name and description.
  • For loading - a list of Turing programs is shown, one is selected and then loaded on request.

An important note is that turing programs are stored in different locations on different devices. Please check the documentation for details for your device. In particular IOS (ipad and iphone) memory is sandboxed and you need to use Itunes to get programs off your device if you need to store somewhere else.

Writing a program in Turing

Turing is a programming machine, so how easy is it to write a program?

  • First, you need to know the language. Turing's machine language includes a range of instructions (as shown on the separate menu entry on the right).
  • Next you need to design and write the program.
  • Next you need to enter the program into the computer
  • Finally you need to run the program.

Programs in Turing (as with real computers) are stored in memory locations. A memory location might store a whole instruction (0 = stop program) or the instruction might need two successive locations (38 followed by another number = add the number to the number already in the accumulator).

Programs:

  • are usually stored from memory 0 onwards and the run button assumes programs start here.
  • can be run from start to finish or one instruction at a time. Usually when a program is first written it is tested one step at a time (fetch then execute then fetch...) and then run completely once it has proved correct.
  • End when a stop program instruction (0) is reached.

 

 

 

 

 

 

Turing Controls

Turing is designed to be operated from laptops, desktops,tablets and phones. A design decision was that use of the app would be essentially the same on all these different devices to make moving from use of one (say a desktop Apple) in school to another (say an Android tablet) at home as easy as possible. As a result all operations with the exception of naming programs is done by using mouse clicks.

All registers that can be altered are altered using stepper controls, up or down. When a value reaches FF (255) and is stepped up it revolves to 00. If a value is stepped down from 00 it revolves to FF.

Running the CPU

Turing's remote control is used to turn the processor's operations on and off, as shown below:

remote

In the top row:

  • The first button Fetch starts the CPU on its fetch/execute cycle.
  • The next button is Execute which only shows when an instruction has been fetched.
  • The next button Run tells Turing to carry out a complete program until a stop instruction is reached.
  • The next button is Stop, which only shows when a program is running.

The bottom row shows

  • rewind which resets the program counter to 0 and 
  • Speed control sets program running to a variety of speeds.

Program options

All of Turing's program options are controlled from its menu bar, as shown below

menubar

 

From left to right:

  • H - indicates whether the CPU shows values in hexadecimal (H) or in binary (B).
  • Q - This icon selects the Turing Quest mode, where users are set increasingly different challenges.
  • The remote icon turns off the remote while programs are running (usually to make it easier to concentrate on what is happening).
  • The bell shows or removes audio and visual distractions.
  • Recycle - clears the CPU back to its default state and wipes the memory.
  • The filing cabinet allows programs to be loaded
  • This is the save icon which saves the current program.
  • The information icon shows all of the Turing Help pages.

 

 

Fetch

Fetch allows users to explore the fetch/decode/execute cycle of a modern CPU.

Gates

Gates is our electronic logic gate simulator, designed for KS4 Physics and Computing teachers and learners.

Babbage

Babbage is our entry level CPU simulator. It allows teachers and learners to look at how a CPU works but crucially it omits some of the complexity required for higher grades/levels and all of the arithmetic is done in decimal and not binary/hex.

Turing Overview

Turing is a model computer. It contains all the parts that of a real computer but simplified a bit so that you can understand what the parts do when it is working.

There may be some debate about whether Turing is a computer or a CPU – we leave this decision to you, but it contains all CPU components plus a virtualised memory and I/O unit. This is MUCH simpler than even the simplest real CPU/computer but it contains all the parts that are needed.  It also has some parts that are not in a real computer and we will explain these later in this section.

You can see from the diagram above that there are 4 main parts (called units) and a route that connects the units together (this is called a bus). The 4 units are: Control Unit, Arithmetic Unit (inside the Central Processing Unit), Memory Unit and the Input and Output Unit (and the buses connecting them).

Some Key points about Turing:

  1. All registers and locations are 8 bit and are shown in hexadecimal (H) or binary (B)
  2. Turing contains an accumulator and two other general purpose registers (B and C).
  3. Only the accumulator can carry out arithmetic.
  4. Turing shows flags depending on the result of an operation in the flag register
  5. There are 255 memory locations, each of which hold a 8 bit value.
  6. The memory address register shows which location in the memory block can be accessed
  7. The program counter contains the address in memory where the next program instruction will be taken from
  8. Turing has a simulated I/O unit to allow users to write programs which affect the "outside" of the CPU. 
  9. Turing Clock records the time taken for any operation and can be reset manually.

 

Subscribe to this RSS feed
close

Sign up to keep in touch!

Be the first to hear about special offers and exclusive deals from Kilkiesoft and our partners.

Check out our Privacy Policy & Terms of use
You can unsubscribe from email list at any time