Object-oriented Programming – with a Foreword by Alan Kay
Downloaded: 187
Last edit: 15 August 2022
This resource forms part of the Computer Science from the Metal Up series.
Purpose written for A-level CS, the book takes the form of two extended development exercises:
- Part I: OOPDraw, an object-oriented interactive drawing application (inspired by my earlier resource of that name, but completely re-designed and re-written).
- Part II: OOPRecords, an object-oriented records management application
Important
All the OO principles listed in the AQA A-level spec, are fully covered in Part I. Each principle is introduced as the response to a specific requirement encountered in designing OOPDraw, using an agile development approach. Part II is therefore optional, but if there is time available, I strongly recommend getting your pupils to undertake this exercise also. It covers the important topic of persisting objects – first serialised to a file, and then mapped to a relational database using an ‘object-relational mapper’. As well as deepening pupils’ understanding of OOP, Part II also provides some useful revision on the theory and practice of relational databases – and reveals a connection between ‘object association’ and database ‘foreign keys’ that surprises many when they first see it. Finally, Part II may prove very useful to some pupils considering any kind of records management (which form the majority of business applications) for their NEA project.
The complete book is available now for both the C# and VB programming languages. John Stout, who has been involved throughout the writing of this book, is currently working on a Python translation (of Part I only), which will be made available here when complete.
Important
The Teacher versions of the books (which include Model Answers and additional teacher notes) are attached to _this page_ (which requires a CAS log-in). The _Student_ versions of the books, together with the two project .zips (needed only for Part II), and a simple EAD, are attached to the student resource page , which is publicly accessible_.
Re. Foreword by Alan Kay
I was delighted, and felt deeply honoured, when Alan Kay agreed to write a foreword to the book (though only after getting me to agree to write Part II, which was not in the original plan). One of the most respected Computer Scientists in the world – recipient of the ACM Turing Award, the Kyoto Prize, and many more honours – Alan is known as one of the pioneers of OOP, of graphical user interfaces, of personal computing in general, and of children’s computing in particular. I know that there are several teachers on this forum who hold him in as high regard as I do. The foreword is vintage Alan Kay.
Although I have had the privilege of knowing Alan personally for 28 years now, and despite having discussed all of the ideas he raises in the foreword with him many times over that period, when I first read the foreword – just a few days ago – I was left yet again feeling that I have understood his ideas (and some of my own, even) too narrowly. Alan has many pithy quotations attributed to him, and one of my favourites – which I’ve heard him say many times – is ‘You don’t understand something if you only understand it one way.’ He told me that this was his eighth attempt at writing the foreword: the other seven had all ‘started well’, but ‘refused to land’. (Taking off and heading straight for the stratosphere is Alan’s trademark).
If you read nothing else from the book, please read his foreword. Will it help your pupils get a better grade in their A-levels? Not one iota. Will they really understand what he is saying? Probably not. Might it inspire just a few of your pupils to set their sights much, much higher? It just might. Incidentally, while writing the book I exchanged nearly a hundred emails with Alan, many of which were my responses to his questions about the state of computing education in the UK, which he was very keen to understand better. It almost goes without saying that he had a lot of critical things to say about this – this is the man famous for saying that the Apple Macintosh was ‘the first personal computer worth criticising’! But, just having his interest in what we do was really motivating.