In memory of CESIL

18 01 2010

A couple of weeks ago, for some now-forgotten reason, I found myself thinking about the first programming language I ever learnt.

In particular, I was thinking about the pros and cons of it being a minimal, assembler-like language that was designed specifically to teach the fundamentals of computers and programming.

The language was CESIL (“Computer Education in Schools Instructional Language”), the year was 1974, I was 15, and the class was CSE “Computer Studies”. The hardware was hand-punched cards that were sent off by post to some other place, with results returned a week later, just in time for the next lesson.

For the second year we moved on to BASIC using a Teletype crammed into a corner of a little room up in the school’s attic (theoretically that should have been a lot better, but in practice it was so inconvenient and unreliable as to be almost useless).

That sounds unbearably tedious and uninspiring now, but way back then it was amazing that we were able to use an actual real-life computer and were learning about computers as part of our schooling.

Anyway, as clunky as the arrangements were, and as much as others will no doubt disagree, I still think CESIL itself was a great introduction to programming.

Conceptually, it was an assembler-like language that operated on integer values in a single register. It supported:

  • Named variables
  • A handful of simple operations on the register and one variable or constant
  • Conditional branching based on testing of the register value and labels on statements
  • Some minimal input facilities (reading one value at a time from a list supplied at the end of the source file)
  • Some minimal output facilities (a simple “print” statement) facilities
  • Pretty much nothing else… at least as far as I remember.

The syntax was just about the simplest one could imagine for that particular set of features. You can probably already picture the entire language.

The beauty of this was that, with no prior knowledge of computers of any kind (which in those days usually meant not even having a realistic concept of what a “computer” is), you could be taken straight into tackling simple algorithmic problems (like finding the largest of a given set of numbers, sorting numbers etc), without any undue distraction or complications. At the same time the class lessons could use this as a context for explaining computer hardware, what was actually happening when your program ran, and more general computer-science topics.

You were immediately seeing a reasonable model of the fundamental concepts of computers and algorithms, getting a feel for what programming is like, how to test and debug code etc, but without getting bogged-down in syntax rules or complex abstractions. The once-per-week cycle taught you to be careful and precise, and to desk-check and dry-run your code. More generally it forced you to figure out what you were doing, rather than just flapping around and guessing with a trial-and-error approach (like so many people seem to do today).

In practice the limited resources also meant that some things had to be done in pairs or small teams. So whether by design or accident, you also got a taste of what it’s like to develop code with other people.

Against it, there was clearly a limit to how far you could go with CESIL, the practical difficulties made for very slow progress, and the language itself was never going to be of any direct use to you afterwards (as opposed to, say, being taught a real assembler language). So even in a two-year course you really did need to move on to something else fairly quickly and then forget about CESIL.

But on the whole I still think it was a great way to lay the foundations for a lifetime of programming. I’m grateful to whoever instigated getting this set up and introduced into schools – I suspect my career may have been very different without it!

Anyway, once this had crept back into my head for no particular reason, it seemed worth a quick look to see if CESIL has entirely vanished or whether there’s any information on it still knocking around. Whilst I’ve not found any official documentation or history, somebody has blogged about stumbling across the CESIL course book.

More astonishingly, someone has resurrected it – by writing an open-source interpreter for it. I’m rather tickled to see that someone has done this, just for the sake of it!

Advertisements

Actions

Information

40 responses

12 05 2010
Chris Harlow

Oh how I wish I still had the Computer Education In Schools book. I remember CESIL well but I also remember that it often took several weeks for the results to come back… (it was 1969!) oh how we pined for those results.

Actually, we moved on to the next language in the book, SIR, quite quickly. This was a genuine machine code assembler language with numeric opcodes (1=add, 2=negate and add, etc up to 15) with ran on an Elliot 905 if memory serves correctly. I recall trying to write a program that would plot character based graphs but I don’t think we ever got the listings back for that one before the end of the course.

I totally agree, these were a stunningly good introduction into how the machines of the day actually worked and it stood me in good stead for over 40 years of programming in dozens of languages.

13 05 2010
closingbraces

@Chris,

1969… that’s well before my time… we never got SIR, just on to BASIC as the second language. So it sounds like you got an even better grounding than we did (albeit with an even longer delay in getting results back).

I wonder what year it all started in? I’d never have guessed this was already going on in 1969.

13 05 2010
Chris Harlow

I believe 1969 was the first year… we did it as a kind of “extra studies” module in lower 6th so there was no qualification/exams.

27 09 2010
Andrew Jacobs

Thanks for linking to my CESIL pages.

I’d like to see CESIL take its place in a revival of real computer science in the UK. From what I can see from my kids school text books IT lessons now centre around turning children into good little Microsoft Office users. Modern computers and operating systems are too difficult to start kids programming on today, theres a need for a simple language like CESIL to instill the basics of computer operation which they can then build on.

Since you wrote your article I’ve published a new version of the IDE in C# for windows and written some more examples to show what this simple language can be made to do.

27 09 2010
closingbraces

Andrew, thanks for the update, and it’s nice to hear your IDE is still a going concern.

I absolutely agree with you that IT in schools should be more than just how to use “office” tools – especially just one particular set of office tools. If that’s really all your kids get in school it’s pretty appalling. We ought to at least introduce kids to some idea of what programming is about, and give them options for learning how to create software rather than just how to use some.

I suspect that a shortage of teachers with the right mix of skills is at least as big a problem as coming up with a suitably simple-but-engaging platform (e.g. CESIL for phones?).

23 10 2010
Nick

Brilliant! I also fondly remember learning CESIL at grammar school but I forget exactly when it was in my school career – sometime between 1974 and ’79. Oh the joys of writing out code, having it typed in and sent to an ICL machine at some college miles ways (a 2904 or 2960 machine I think) and getting the results back with a little coil of paper tape! Probably helped with my interest in Z80 assembler in my later college years, though in my career I’ve worked mainly on IBM midrange and now moved on to java.

My lad’s just started at the same grammar school (makes me a proud Dad!), and I was talking to him about how we learned the basics of programming algorithms and how a CPU actually works rather than simply how to use word processors and spreadsheets etc.

I’ve shown him Andrew’s example pages this evening and plan to get him having a go at Visual CESIL.

23 10 2010
closingbraces

So, that’s “CESIL The Next Generation” sorted out then!

And I’d forgotten about the paper tape! I seem to remember keeping one as a souvenir… must still have that buried away somewhere.

7 03 2011
Alf Cooper

This is fantastic!! – CESIL (or at least the memory of it) lives on!

Like several respondees I started Compuer Studies in 1973 – it was a CSE course – as ‘O’ Level Computer studies wasn’t invented then.

I’ve seen disparaging reviews about CESIL elsewhere on the web – but personally think it had to be the perfect introduction into logical thinking – and flowcharts! You got a real feel how this new magic box was put together and how to make it work for you.

CESIL, for me, was written on special coding sheets, sent of to Oxford university and received back 1 or 2 weeks later – so that you could fix the bugs.

Once CESIL had been mastered?? we moved on to BASIC again written on coding sheets which inevitably came back 1 or 2 weeks later with “syntax error line 10” (forgot the REM before the programme title again)

A few of us finished the CSE Curriculum early and were given the opportunity to learn FORTRAN IV which was a pain – not because of the language but because we had to punch out our own punched cards to be sent off. The possibilities for mistakes in doing this were alsmost endless (trust me I found most of them)

But I still remember the excitement (as a 15yr old) of seeing envelopes on ‘sirs’ desk in the Computer Studies room (portacabin!!) which meant that maybe one of my programmes had come back.

Although I don’t exactly work in computing the love of it has always stayed with me. I went to college with BT and learned to work with an 8085 breadboard – never could quite get my “mastermind” (remember the game) programme to fit into the 256 bytes available – did get it down to 257 though!

From there it was a ZX80 (still hate RPN) and ZX81 (still have both) where I learned to use the Zilog Z80. Followed by a TI99/4A where I got into the TMS9800 instructional language.

Have definately started to regress these days as having looked a both the PIC and the PICAXE chips, I’m definately going back to BASIC(s) (sic) with the PICAXE.

However (for those of you still awake) it all started with CESIL and I still have on tape somwhere my CESIL interpreter for the Texas with extended instruction set for printer outputs.

Thank you for reviving some very fond memories.

Alf

8 03 2011
closingbraces

Alf, you’re very welcome. It’s nice to know there are a few people with fond memories of this!

7 06 2011
Janette Lloyd

I too have a couple of listings and little coils of punch tape from the CESIL days lurking in the token computing history box in my loft.
In 1972 ish, my school had a teletype and a link to Preston poly’s computer, I went to Computer Club at the age of 12 with no idea that it would start me on a path to 30 years in the IT industry.

13 11 2011
Yorick Phoenix

I think – and have always felt – that it is important for programmers to understand how computers work and what better way than to start at the machine level with an assembler or a simple simulator like CESIL. I cut my teeth with it in 1975 then went on to Basic, Fortran, PL/1, Z80, Lisp, etc. When I needed to learn 6502, 68000 and work in PowerPC assembly for some interrupt routines I wasn’t phased because I had started at this level. Start at C++ or Java and Assembly or Hardware Interrupts will scare you. You can go higher-level but it is harder to go lower-level if you haven’t already been there.

19 04 2012
Anonymous

I have enjoyed reading comments about CESIL and other school computer education items. I was one of the pioneers teaching about computers in a Rayleigh, Essex school as early as May 1966. I had made a switch operated binary adder and showed that in Maths lessons before doing some computer stuff. None of it official though. I’m 69 now and pleased to see programming and Computer Science returning to schools’ timetables. I did teach IT but was concerned about being a possible company rep. ie promoting on companies IT software.

To me programming is the ultimate computer game!!! Making “it” do as it is told even if the task is trivial.

19 04 2012
Anonymous

Just a thought… wouldn’t CESIL be a great thing to start with on one of the new Raspberry Pis …..

19 12 2012
Anonymous

I’m definately with you on that one – I have 3 of the little beasties – and I think you’ve just given me a new lease of life – thanks

20 04 2012
closingbraces

I’m delighted to see the current moves to re-introduce real programming into school, and quite tickled by the idea of CESIL on Raspberry Pi.

It’s quite possible that the “Java based command line CESIL for Windows & *NIX” version of Visual CESIL by Andrew John Jacobs at http://www.obelisk.demon.co.uk/cesil/ could run on Raspberry Pi, or might only need minor adjustments to get it running. At worst something similar probably wouldn’t be that hard to write from scratch.

However, I suspect that these days you’d need something far more whizz-bang for anyone to be interested in it – though perhaps CESIL or something like it might still be useful as one part of a wider curriculum.

20 04 2012
Andrew Jacobs

I’ll see if I can find the time to create a SWING version of the Visual CESIL GUI. There should be a Java runtime available for the Pi, its certainly an option on other ARM Linux distributions. My Pi is ordered but I have no idea when it will be delivered.

19 12 2012
Anonymous

Why Visual? why not start with the very basic understanding? – anybody my age (50 something) find that, no matter how good the graphics, you still can’t beat the feeling of mapping out the cave in “colossal adventure” – or finding out how to get the bridge across the Chasm?

Sometimes more is less!

19 12 2012
Andrew Jacobs

That’s ‘Visual’ as in an integrated development environment with an editor and debugger. So you don’t need to fight with text editors and command line tools.

18 12 2012
Anonymous

If anyone would like an updated CESIL maybe ‘CECIL’ from University of Southampton would be worth a look. A ‘real’ assembly language – in many ways based on CESIL and with tons of example programs a 130 page book, and very mature. Used to teach students hardware design prinicples (not assembly language) at Southampton University.
The DOS version is nice. A serious updated CESIL implementation would still be useful – would it not? Just like Donald Knuths instruction language in his text book series.

18 12 2012
Anonymous

Btw it really ‘is’ CESIL (on steroids). Here is the link to the authors page, at Uni of Southampton:
http://users.ecs.soton.ac.uk/da/research/cecil/

18 12 2012
closingbraces

Well, thank you, that’s just amazing. Would never have imagined anything based on CESIL still going in 2012 and being used to teach hardware design!

18 12 2012
Anonymous

Btw it really ‘is’ CESIL (on steroids). Rather hard to find so here is the link to the authors page at University of Southampton:
http://users.ecs.soton.ac.uk/da/research/cecil/

18 12 2012
Anonymous

Yes still going strong it seems and the DOS version works nicely in an emulator on Linux for me, or on an old pc with freedos ๐Ÿ™‚

The manual is worth a look it’s very extensive and well laid out, it is a small book, and a very good introduction to computer hardware.

20 12 2012
Anonymous

Now this is amazing!!! I just run CESIL last night on my PC and thier is a version (both written in BASIC of course) for the Raspberry Pi, which is the original:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=34&t=24277

Now this ‘really’ is CESIL. ๐Ÿ™‚

20 12 2012
Anonymous

Here is the link to CESIL for the Raspberry Pi and PC:
https://projects.drogon.net/cesil-controlled-xmas-tree-on-the-raspberry-pi/

First download his basic enterpreter, it helps if you run linux, or the Rasp Pi of course:
https://projects.drogon.net/return-to-basic/rtb-download-and-install/

21 12 2012
mikeao

Cesilmania!!!! ๐Ÿ™‚ On the Raspberry Pi forum post above thier is also a guy who posted the source to his version of cesil written in AWK.
Go anywhere command line cesil, works a treat! I love it!

12 08 2014
d4rk1ord

I have a limited number of tutorials available on my site regarding Cesil. http://learn4free.org.uk/forum146-25.html

Like you I learned it at schoo; and fully agree that it layed the foundations of learning how to program. I remember it with fondness,

2 10 2015
Stuart Logan

I can’t believe CESIL is still going. We used it in 1985 on a RM380Z. I actually wrote a version in BBC Basic for my O level project, added turtle graphics and called it Gospel. I was told the school used it for a while.

23 10 2015
Anonymous

One more to add to thew list: (if you havn’t already take a look at the previous comments here about Prof David Argles CECIL from Uni of Southampton, the docs/manual is amazing) A version of the Southampton University CESIL based language to run on a simulated ( but complete/real ) processor(s) and instruction set(s). CECIL based framework for the Raspberry Pi, under an MIT/Apache license:
https://github.com/GDP9/CecilRPi
A screenshot from the docs:

And one of the video tutorials:
[video src="https://raw.githubusercontent.com/GDP9/CecilRPi/master/documentation/Tutorial%20videos/creating_a_program.mp4" /]

28 10 2015
Andrew Jacobs

Demon home pages have closed. My CESIL pages are now here http://www.obelisk.me.uk/cesil and the code is here https://sourceforge.net/projects/cesil/

29 10 2015
Yorick Phoenix

Just tried the command line java version which runs well (and blindingly fast compared to the IBM 370 I used to run CESIL on) under Mac OS 10.11. I always throught about writing a CESIL interpreter as a side project, it is the first language I learnt and therefore I have a fond affection for it.

28 11 2015
Ms Ork

Here is another CESIL interpreter, this time written in python. ๐Ÿ™‚

https://bitbucket.org/zondo/cesil/src

Works well.

27 05 2016
Anonymous

I taught pupils in at least 2 schools to program in CESIL. I loved teaching programming. In every group of 25 or so CSE, GCE groups there were always 2 at least who were brilliant programmers and it wasn’t always the cleverest, the boys or the non-blonds.
I could already program in other low-level languages and considered CESIL better for my pupils than other languages. Very pleased to see that CESIL is available on the net and even more pleased that I can still program in CESIL having not taught it for 24 years. Had to teach IT instead ie became a sales rep for Microsoft products. Glad to see that BIll G was listened to and coding now being taught but games in Python? Perhaps not.

8 04 2017
mike

An update: the author of the CESIL interpeter written in awk, kindly allowed me to share the download link for this program, which he has put under a gpl3 license. Hereโ€™s the link:
http://stevenicklin.com/downloads/cesil.awk

To use run:
awk -f cesil.awk “yourprogram”

remember to use tab to align insructions into columns:

Col1 Col2 Col3 Col4

Label Operation Operand Comment/Print

data in operation (instruction) column โ€œ%โ€ percent sign
with each value in same column each on itโ€™s own line, e.g:

%
1
2
3

19 04 2017
mike

This is a nice tribute to CESIL, and the ICL/CES project here:
http://iclces.uk/index.html#recovery-of-old-programs

20 04 2017
Anonymous

Nice site, I took that exact ’76 ‘O’-Level Paper. Nice that it is available online somewhere.

20 04 2017
Yorick

Nice site. I took that exact ’76 ‘O’-Level paper. Nice that it is online with all the CES related stuff.

20 04 2017
mike

I probably should have, i must have bunked off Computer Studies at school; i still have the textbooks. It was browseing through these 30 years later that got me interested in all this (they are very well written text books, in my opinion, like alot of stuff written for schoolchildren back then).

4 12 2017
El Coder

I also started in ’74, but it was only a CSE class – As far as I know there was no O Level – clearly not the case. We did mark sensing on cards and sent them to the University of London for running.

Now 43 years later I’m still writing code, but at least im in sunny California ๐Ÿ™‚

5 12 2017
mike

Do you have fond memories of CESIl or BASIC or the material from the CES textbooks?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s




%d bloggers like this: