Fun Books for Learning Programming

I learned Fortran from the TV course and book by Jeff Rohl. Some years later I came across A FORTRAN Coloring Book by Roger Emanuel Kaufman (MIT Press, 1978). The text is entirely handwritten (even the copyright page), is illustrated with numerous cartoons, and is full of witty wordplay. Yet it imparts the basics of Fortran very well and I could have happily learned Fortran from it. It even describes some simple numerical methods, such as the bisection method. The book is one continuous text, with no chapters or sections, but it has a good index. I’ve long been a fan of the book and Des Higham, and I include three quotes from it in MATLAB Guide.

kauf78_cover.jpg

kauf78_p75.jpg

Kaufman’s book has attracted attention in cultural studies. In the article Bend Sinister: Monstrosity and Normative Effect in Computational Practice, Simon Yuill describes it as “the first published computing text to use cartoon and comic strip drawings as a pedagogic medium” and goes on to say “and it could be argued, is the archetype to the entire For Dummies series and all its numerous imitators”. I would add that the use of cartoons within magazine articles on computing was prevalent in the 1970s, notably in Creative Computing magazine, though I don’t recall anything comparable with Kaufman’s book.

alco92_p139.jpg
A page from Illustrating C.

A book in a similar vein and from the same era, is the handwritten Illustrating Basic by Donald Alcock (Cambridge University Press, 1977). It’s a bit like Kaufman without the jokes, and is organized into sections. This was the first in a series of such books, culminating in Illustrating C (1992). Like Kaufman’s book, Alcock’s contain nontrivial examples and are a good way for anyone to learn a programming language.

Thinking Forth by Leo Brodie, about the Forth language, is typeset but contains lots of cartoons and hand-drawn figures. It was originally published in 1984 and is now freely available under a Creative Commons license.

A more recent book with a similarly fun treatment is Land of Lisp by Conrad Barski (No Starch Press, 2011). It teaches Common Lisp, coding various games along the way. It’s typeset but is heavily illustrated with cartoons and finishes with a comic strip.

Manchester 1970s Video Computer Science Lectures

lavi72-cover.jpg
Left side of cover is obscured by library binding.

At The University of Manchester nowadays, every lecturer is a podcaster. Sound from microphones and projected material is automatically recorded in lecture rooms, enabling registered students to revisit a lecture at any time after it has been given. These recording are not used for subsequent lecture delivery, as far as I know, though the recording quality is good. See here for details of the Manchester system.

More than forty years ago the Department of Computer Science in Manchester was pioneering something that is still not widespread here today: videoed lectures that are used to deliver a course. The motivation was the need to teach efficiently the 500 or more students a year from across the university who needed to take computer science as a subsidiary course.

rohl70.jpg

Simon Lavington and Jeff Rohl developed three video courses, in this order:

  • “Logical Design of Computers” (12 lectures, Simon Lavington),
  • “Programming in Algol” (12 lectures, Jeff Rohl), and
  • “Programming in Fortran” (10 lectures, Jeff Rohl).

I wrote about the latter course in an earlier blog post. All three courses had an accompanying book (Logical Design of Computers, 1969, second edition 1972; Programming in Algol, 1970; Programming in Fortran, 1973).

Each lecture was 20 to 30 minutes long and recorded in a TV studio in one continuous take, with no autocue and no possibility of editing the recording. Information was displayed interactively by the lecturer on a magnet board, using magnetic symbols. For each lecture, the lecturer spent around 20 hours in script preparation and production meetings, and a full day in rehearsal and recording.

The cost of making a 12-lecture course at 1968 prices was estimated at £4,000, excluding the lecturer’s time, which today equates to about £65,000! All three course were sold to other institutions (12 universities and one company in the case of “Logical Design of Computers”).

Television-studio-Manchester-1968.jpg
Simon Lavington in action in the University’s TV studio in 1968.

Much of the information in the previous two paragraphs comes from a 1971 paper Experience with Television Courses for Computer Science Teaching by Simon Lavington and Jeff Rohl. That paper also describes the mode of delivery of the course (a course tutor provided a tutorial following each lecture) and assesses its success. The authors conclude that “under satisfactory playback conditions and with an understanding course-tutor, the students are enthusiastic about television lectures and respond to the intellectual challenge they offer.”

The following photo shows the replay equipment designed and installed in the Kilburn Building when it first opened in 1972. Jeff Rohl can be seen on the left monitor at the control desk and a diagram for a parallel adder is displayed on the right-hand monitor.

TV-replay-equip-Kilburn-Bldg-Spring-1973.jpg

I can’t help thinking that Simon and Jeff were well ahead of their time in developing these courses. If the University’s Teaching Excellence Awards had been around at the time they would have been worthy winners.

I am grateful to Simon for providing me with information about these courses, along with the paper and the two photos.

Jeff Rohl’s Fortran TV Course

As a first year mathematics undergraduate at the University of Manchester in 1979, I had to choose one course from another department. Like the majority of students, I chose the Fortran Programming course CS151 provided for mathematics students by the Department of Computer Science.

The course tutor was Simon Lavington, who is now perhaps best known for his historical research into early British computers (and can be seen on this video about the Ferranti Atlas computer). It used a videotaped set of lectures by Jeff Rohl. Jeff was an Australian who had come to Manchester in 1960 to do a PhD on compilers with Tony Brooker. He became a Professor at UMIST in the early 1970s and returned to Australia in 1976 to found the Department of Computer Science at the University of Western Australia.

rohl73.jpg
rohl-jeff.jpg
Jeff Rohl

The ten black and white videos, Programming in Fortran (1973), were accompanied by a 124-page book of the same title, written by Jeff and published by the University of Manchester Press.

These were the early days of computing. The book talked about punched cards, which thankfully we students did not have to use, and employed flowcharts (which it called “flow diagrams”) to illustrate the logical flow of programs. The book included the complete Fortran 66 standard in an appendix—something that would be inconceivable with most languages of today!

rohl73-p2-9.jpg

rohl73-p5-5.jpg

Many years later I met Jeff while we were both visiting the Computer Science Department at Cornell University. He said that people regularly tell him that they learned Fortran from his book and lectures and that the videos were recorded in one continuous take. In this YouTube era it is easy to forget how innovative these early 1970s video lectures were.

Fortran is of course still around and has a large user community. Indeed it ranks 24th in the January 2016 version of the TIOBE Programming Community Index. For some context on its usage see my article Programming Languages: An Applied Mathematics View in The Princeton Companion to Applied Mathematics.

The most recent standard is Fortran 2008 and another revision is in preparation. An old joke goes “I don’t know what language we’ll be using in 50 years time, but it will be called Fortran.”

NAG-advert-920900-cartoon.jpg
From a 1990s advert for the NAG Fortran 90 compiler (http://www.nag.co.uk/nagware/np.asp).

I was sorry to discover that Jeff passed away in 2003.

Simon Lavington has kindly provided me with more information about the TV lecture courses—three in total—recorded by him and Jeff Rohl in the Department of Computer Science. I will write about these in a subsequent post.

I am grateful to Jeff’s son Andrew Rohl for providing the photo of Jeff above.