Whatever happened to …

… the Hypo Programming Language?

Have you ever had to learn a programming language well enough to teach it in a few weeks?  Memories and inspiration for this post came from last week when I talked about optical marked cards.

I did!

It was for my first teaching job.  Teaching Grade 11 and Grade 12 Computer Science was going to be a piece of cake.  (or so I thought)  The language of instruction was to be Fortran and COBOL.  Both of these languages had been a part of my university program so I knew the language.

But, it was the Grade 10 course that had me concerned.  Actually, this concern extended to Grade 9.  In the Business Department, the Grade 9 course was a collection of units in Accounting, Marketing, and Data Processing.  In the Data Processing unit, and in the Grade 10 course, we were to use the Hypo programming language.


I’d never heard of that before but how difficult could it be?  It was a pre-cursor to Fortran after all.

Well, it turned out that Hypo stood for “Hypothetical Computer”.  It was a language that got you to dig into the things that higher level languages just assumed that you knew or plain didn’t care about.  Things like how a computer does arithmetic.  Things like data going into a storage location of your choice.  Then, you’d load the contents from memory and push them onto a stack.  Once in the stack, you could do simple operations like adding, subtracting, etc.  Once you had performed the operation, you’d send it to be printed.  Instructions were simple; the computer could only do things one step at a time and you had to provide each and every step.

Instructions were coded by the programmer.  Each instructions had a two digit opcode (operation code) and a three digit operand (usually making reference to a memory location).  Speaking of memory locations, there were 1000 of them in this hypothetical machine ranging from 000 – 999.  I could bore you with the details but, if you’re interested, check out this document.  My entire course summarized in eight pages!

We did have a textbook.  It was authored by John Walsh from Western University and others and called “Informatics:  Introduction to Data Processing”.  So, at the conclusion of my successful interview, I asked to take a copy of the textbook home with me.  And, I read it from cover to cover over that summer and was ready to go for the first of September.  I felt I knew the programming language in its entirety without ever writing or debugging a line of code!  For the most part, I was writing the programs and assignments along with the students that fall and we all learned the language together.  Co-learning before co-learning was a thing.

I quickly became conversant with instructions like:



Like all of the courses at the time, it was expensive.  It was done on cards and five characters per card sure wasn’t an efficient use!

I had lots of students take that course and then followed up with “real” programming languages in subsequent grades.  The Hypo language itself eventually became a memory —- and then it became a project.  I would have students write their own interpreter in the real language we were using at the time.  We’d use arrays and stacks and talk about simple operations and brought them altogether for the purpose of the project.  I could kick myself for not hanging on to one or two of these excellent submissions.  They’d be fun to play around with today.

Hypo did indeed become a memory after a while.  Courses evolved with newer technologies and the opportunities they provided.  Eventually, we licensed Turing and used it as an introductory language.  Today, many students will use Scratch or Alice or Hopscotch or the like for their first language.  Many others use Python as an introductory language and some actually build complete programs right through Grade 12 around it.  It’s a nice choice.  It’s an interesting change from the good ol’ days.  Unlike Hypo which really required you to think about the computer hardware (albeit a hypothetical one), there are things like variables and higher level instructions that make learning about the hardware itself pretty much unnecessary.  The newer languages open up more opportunities; Hypo pretty much left you dealing with mathematics problems.  But, you could come up with interesting problems all the same.  I’d look for current ideas like this one – Library book returned 75 years late, with no fine.  I’d turn that story into a problem and the great emergent programmers of the time would dig into that with great enthusiasm.  What would the fine actually be today if it was collected?

These were the tools available at the time.  The choice was made by the school and not the teacher.  Probably, as Alfred Thompson says in a recent post “You’re Teaching the Wrong Programming Language“.  It’s an interesting observation if you’re focusing on languages.  But, if you are focused instead on the concepts from learning to code, I don’t think there is a “wrong” programming languages.  Education isn’t or shouldn’t be a training institution; it’s a learning place and particularly in computer programming, students will go through a number of languages in their career.

Your turn.

  • Were you ever a Hypo programmer?
  • What was your first programming language?  How did it impact the way you use computers today?
  • Did you ever program in an assembler language?  Do you still feel the love?
  • If today’s students start to learn to code in a block language, do they miss something by not understanding the hardware of the computer they’re programming on?
  • At what stage do you wean students off block coding and move to programming?
  • For computer science teachers, how do you address the concepts of memory limitations and subsequent things like programs crashing because of out of memory messages?
  • For those of you who might be programmers or who studied programming, how many languages have you actually used?  Do you have a favourite?

Please share your thoughts via comment below.

Do you have an idea or thought that would be appropriate for my “Whatever happened to … ” series of blog posts.  They can all, by the way, be revisited here.

Please visit this Padlet and add your ideas.  I’d love for it to be an inspiration for a post!

Author: dougpete

The content of this blog is generated by whatever strikes my fancy at any given point. It might be computers, weather, political, or something else in nature. I experiment and comment a lot on things so don't take anything here too seriously; I might change my mind a day later but what you read is my thought and opinion at the time I wrote it! My personal website is at: http://www.dougpeterson.ca Follow me on Twitter: http://www.twitter.com/dougpete I'm bookmarking things at: http://www.diigo.com/user/dougpete

4 thoughts on “Whatever happened to …”

  1. Memories! I went to Althouse and John Walsh taught us HYPO. We used cards to run the programs through the IBM computer at Althouse.

    You and I both started teaching in September 1979. HYPO was not being taught at DCVI. We used optical cards and coded Hollerith to write BASIC programs to send to Stratford, where the Board’s one computer was located – that’s another story…

    I added HYPO to the course. Likely as a time filler since teaching programming in 1979 was not the same as it is now! We did it on paper – I think I made up a handout to use.

    The first computer arrived in June 1980 – a Commodore PET (4016) – for those who don’t know it had 16K of memory, 40 characters across the screen – 20 lines (I think) – used audio cassette tape to store / load programs. I ordered the one for DCVI with a video out line and had “acquired” a black and white TV that I used with the PET – how else could I use one computer with classes of 30+?

    I sat down and wrote HYPO for the PET. It was written in BASIC. My HYPO only had 20 memory locations and only used 4 digit numbers – first two were standard HYPO – 30 for input, 31 for output, etc. The next two digits referenced the memory location 01 through 20 (I know, should have started at zero but remember, I was really a Geography teacher!!)

    I made it totally visual. The top line was where you entered commands. When you entered an instruction, like 3020 – it “flashed” as it was stored in memory location 01. When you would run the program – it would flash the command, show you what the instruction meant, wait for input from the keyboard, then flash the 4 digit number you entered in location 20 (assuming execution of the 3020 command), There was an AC and MQ at the bottom for addition/subtraction and multiplication/division.

    The final program was spaghetti code at its finest! Remember I was a geography major and johnny-come-lately to programming. The code took up almost all of the 16K of memory. If it wasn’t spaghetti code it likely wouldn’t have fit in memory.

    I used the program with my students to demonstrate coding with the PET connected to the TV (once the tubes in the TV warmed up). They could also use the program, one person at a time, to test their programs. Interesting side note – I set the TV on top of a metal cabinet that was designed to hold key punch cards – yes, we improvised in those days!

    I gave away the program to anyone who wanted it – obviously schools that had Commodore PETs. If only I’d been like Bill Gates and licensed it…..

    Liked by 1 person

  2. Thanks for sharing your thoughts about Hypo, Peter. My students’ version of Hypo was very structured; if I recall correctly, each opcode called a subroutine to perform the task. A project of this magnitude really showed them the importance of organization and understanding.

    We did ultimately end up with some PETs. We had a combination of Radio Shack TRS-80 computers and 8032s. I did not know that there was a 4016. I knew of the 4032 and compatibility with the 8032 was always an issue.


  3. I remember Hypo really well. Actually, I just found this posting via a search for Hypo — this is a month after you wrote this!!

    The first language I learned was FORTRAN, then BASIC. Somewhere in there, I was introduced to Hypo by someone at the Board of Education in North York. This would have been in the late 1960s. I really enjoyed it, which might explain my writing IBM 1130 Assembler, CDC Compass Assembler and IBM 360/370 Assembler. They were my first choices for projects although I also developed projects based on COBOL (not many), PL/1 (SL/1 in school) and C. Not finished with assembler, I also wrote IBM 3705 Assembler code as well. Like everyone in those days, I also dabbled in APL\360 as well.

    Today, I seem to only write PHP code and it does the job.

    But, Hypo was the language that made me feel like i understood what a computer was; understand, that the instructions weren’t magic, the logic was! It might be an interesting side project to write a Hypo interpreter in JavaScript and have it run off a website. Might be fun!


  4. A late comment I know…

    I arrived here from a search about Hypo while trying to remember some of the details about it. I first learned Hypo in a grade 9 class in high school. That and a room of 10 Commodore PET computers (I own one now) got me started in programming. A few years later as a grade 11 student, I wrote a Hypo interpreter for the school that had to run in the measly 3.5K of ram of the VIC-20.

    The teachers used it in a room full of VIC-20’s to teach the Hypo classes, allowing them to get rid of their expensive mainframe setup. Similarly to your experience, They previously used stacks of paper optical cards, drove them to the school board main office semi-daily, ran them on some mainframe, drove the printout results back to the school a few days later.

    My “payment” was use of a VIC-20 for the summer to produce the program (and later, free-reign to muck about with QNX on the ICON systems they got somewhere around that time).

    Like Peter McAsh’s comment earlier…if only I’d realized it’s true value (for the time). I’m sure I saved the school board many thousands of dollars! lol. (Not that I feel cheated, the educational value was enormous).


Comments are closed.