At school I had a great enthusiasm for electronics because it was the time when transistors were beginning to appear and it was possible to build the first generation of electronic devices: amplifiers, receivers and transmitters.
I studied electronics at the University of Sussex and went on to do a PhD in data transmission at Loughborough University. After graduation, I decided I loved teaching and started work at Teesside University.
Unfortunately, I was one of the few members of the department teaching hardware and felt isolated. So, I turned my attention from research to Computer Science education and started writing books on the new microprocessors. I fell in love with Motorola’s processors (first 6800 and later 68K) and wrote several very successful books. Indeed, Motorola sponsored a personal chair for me at Teesside University. Because of my work in CS education, I was eventually awarded a National Teaching Fellowship.
I was active in the IEEE Computer Society and held positions as Editor in Chief of CS Press, Vice President of the CS, and Chair of the IEEE CS International Computer Design Competition. I was also on the joint CS/ACM committee that designed the computer science curriculum and (for a period) was responsible for the computer architecture component.
I wrote books because I wanted to explain complex ideas to my students. Once I had a class of exceptionally bright students and had to teach them basic binary arithmetic which they found boring. So, I incorporated more interesting concepts in the basic material (e.g., error detection and correction, data compression). This had a very positive impact on student motivation. I later incorporated these ideas in some of my books.
Sadly, the Motorola microprocessors faded into the background when IBM chose Intel for its PC. I responded by turning to ARM microprocessors that are not only very popular but are also perfect devices for teaching computer architecture. They have a shallow learning curve but incorporate some exciting architectural features.
More recently, I tackled some of the difficulties in explaining how a computer works by constructing one in Python. This allows students to design their own instruction sets and observe the step-by-step execution of a program. They are able to learn by doing. My book, Practical Computer Architecture with Python and ARM (published by Packt) includes both the simulator and sufficient Python to understand the simulator. It teaches basic Python by means of an extended example.
I have retired from university teaching. Today I still write but devote much of my time to photography and have had national and international exhibitions.