Babbage's Bag


Charles Babbage invented the modern computer and with it started the development of computer science and all the computer technology that we take for granted today. Babbage's Bag is a look at many of the interesting ideas that are at the heart of computing. It's not quite theory and it's not quite practice. It certainly is fun if you give it a chance and it will provide a background of knowledge that it's all too easy to miss.

Data Structures Part II - Stacks And Trees
Written by Harry Fairhead & Mike James   
Friday, 15 October 2021

Part II of our look at data takes us into more sophisticated structures that are fundamental to computing  - stacks, queues, deques and trees. If you don't know about these four then you are going to find programming tough and you will have to reinvent the wheel to solve otherwise simple problems.

Last Updated on Friday, 15 October 2021
Dates Are Difficult
Written by Mike James   
Thursday, 29 August 2019

Date and times follow their own regularities, and they have nothing at all to do with binary, or even simple decimal, counting. First, clock and watch makers had to find ways of working with hours, minutes, seconds;  and then programmers had to find ways that were much simpler. Join us on a quick tour of the time and date system and how it can be mastered using the mod function. 

Last Updated on Monday, 13 April 2020
Face recognition
Written by Mike James   
Friday, 23 July 2010
Face recognition features in most crime drama on TV. It's portrayed as fast and accurate. How does it work in real life?
Last Updated on Friday, 23 July 2010
Finite State Machines
Written by Mike James   
Thursday, 18 January 2018

Finite state machines may sound like a very dry and boring topic but they reveal a lot about the power of different types of computing machine.  Every Turing machine includes a finite state machine so there is a sense in which they come first. They also turn out to be very useful in practice.

Last Updated on Tuesday, 24 August 2021
Floating Point Numbers
Written by Mike James   
Thursday, 23 August 2018

Inconvenient though they may be, fractions are the real stuff of numbers and to work with them we need to know about floating point numbers ...

Last Updated on Thursday, 23 August 2018
Fractal Image Compression
Written by Mike James   
Friday, 08 April 2022
Fractals - they are just for fun surely? You have to keep in mind that it is a law that eventually every pure mathematical idea finds an application and so it is with fractals.  Fractal image compression is a practical use of fractals and how it works is fascinating ...
Last Updated on Friday, 08 April 2022
From Data To Objects
Written by Alex Armstrong   
Thursday, 03 January 2019

What are objects really all about? The data stupid. We don't give data enough credit for it role in programming. Perhaps we shouldn't call it coding but datering or something. The relationship between data and code is deep and it is the real reason we invented object oriented programming.

Last Updated on Thursday, 03 January 2019
Grammar and Torture
Written by Mike James   
Thursday, 16 May 2019

Computational grammar is a subject that is sometimes viewed as a form of torture by computer science students, but understanding something about it really does help ....

Last Updated on Thursday, 16 May 2019
Graphics Accelerators
Written by Administrator   
Monday, 01 March 2010
The GPU - Graphics Processing Unit - now rivals and even exceeds the CPU in processing power but how does it work and what's special about graphics that it needs a custom processor?
Last Updated on Monday, 01 March 2010
Hard disks
Written by Administrator   
Friday, 02 April 2010

How does a hard disk work? Understanding can help you pick your next drive and make you more aware of what can go wrong.

Last Updated on Saturday, 10 April 2010
Hashing - The Greatest Idea In Programming
Written by Mike James   
Thursday, 03 September 2020

Although it is a matter of opinion, you can't help but admire the idea of the hash function. It not only solves one of the basic problems of computing - finding something that you have stored somewhere - but it helps with detecting file tampering, password security and more.

Last Updated on Thursday, 03 September 2020
Written by Harry Fairhead   
Friday, 15 January 2021

Hexadecimal is the most common way of displaying the raw data sitting in a machine's memory, but if you are not familiar with it you might ask "What the hex..?"

Last Updated on Friday, 15 January 2021
How Memory Works
Written by Harry Fairhead   
Friday, 03 August 2018

Exactly how does computer memory work? What is surprising is that  it still works in more or less the same way as when Babbage designed his Analytical Engine or the IBM 360 accessed core memory. So where do all our programs live?

Last Updated on Friday, 03 August 2018
Inside Bitcoin - The Block Chain
Written by Mike James   
Thursday, 30 December 2021

Bitcoin is a currency that exists entirely in software and is under the control of no central authority. What is really important about Bitcoin, however, are the algorithms that make it all work. We explain the way the Block Chain works. 

Last Updated on Thursday, 30 December 2021
Inside Random Numbers
Written by Mike James   
Thursday, 27 May 2021

We often refer to things that are unpredictable as being "random" but this is not the same as truly random behavior - which is something we have to work hard to achieve. Put another way - how can a logical deterministic device like a computer produce a random number?

Last Updated on Thursday, 27 May 2021
Inside the Computer - Addressing
Written by Harry Fairhead   
Thursday, 09 July 2020

Where you store data is as important to the computer as the data itself, yet the importance of the address is often overlooked. In this introduction to the low-level mechanisms of addressing in assembler, it is surprising how easy it is to recognize familiar high-level abstractions.

Last Updated on Thursday, 09 July 2020
Introduction to Boolean Logic
Written by Harry Fairhead   
Friday, 28 September 2018

It may sound like a daunting topic, but Boolean logic is very easy to explain and to understand. It represents the simplest of all the logics and the very basis of computing.

Last Updated on Friday, 28 September 2018
Introduction To The Genetic Algorithm
Written by Mike James   
Thursday, 18 February 2021

Genetic algorithms pop up all over computer science and applied computing. They are simple, easy to apply and easy to understand. What mystery remains is why they work at all? How can something seemingly so random home in on a one in a million plus solution? 

Last Updated on Thursday, 18 February 2021
IP Addressing and Routing
Written by Ian Elliot   
Friday, 25 February 2022

Every programmer should understand how the Internet works and this means understanding IP addressing and routing. It's a good time to find out about such things with DOS attacks on the rise and IPv6 taking over from IPv4.

Last Updated on Saturday, 26 February 2022
Kolmogorov Complexity
Written by Mike James   
Thursday, 26 July 2018

This xkcd cartoon provides an ideal excuse to explain Kolmogorov complexity. It is an interesting topic and one that gets right to the heart of programming of how programming relates to ideas like information and entropy. This is a subject that still has lots of mysterious connections with things outside of computing.

Last Updated on Thursday, 25 October 2018

Page 2 of 5