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.

Search Engines
Written by Administrator   
Friday, 30 April 2010

The web would be virtually unusable without effective search engines that allow us to find the information we want.

Last Updated on Friday, 30 April 2010
Sequential Storage
Written by Mike James   
Thursday, 19 December 2019

Sequential storage played an important role in computing history and gave rise to some very specialised hardware and methods.  You might think that it is no longer relevant and we can forget the lessons of the past, but sequential storage is still with us and its algorithms are worth knowing.

Last Updated on Friday, 27 December 2019
Written by Editor   
Sunday, 30 August 2009

Spintronics, an emerging technology based on quantum mechanics, is poised to change everything.

Last Updated on Sunday, 30 August 2009
The Birth Of Ethernet
Written by Harry Fairhead   
Wednesday, 29 May 2013

Ethernet is 40 years old in May 2013 and this article explains why we should celebrate the invention of the first modern communication system.  It is a surprising story that starts, of all places, in Hawaii with a desire to surf - not the web but the waves that crash on the beaches. 

Last Updated on Wednesday, 29 May 2013
The Computer - What's The Big Idea?
Written by Mike James   
Wednesday, 27 March 2013

There can't be a more central concept than “the computer”, but it is such a commonplace that we tend to take it for granted and miss how truly amazing it is. It might just be that computers are everywhere and built into the very fabric of the universe. So what is a computer? What makes it so special?

Last Updated on Thursday, 28 March 2013
The Essence Of Programming
Written by Mike James   
Monday, 29 October 2012

We often state that program is just a list of instructions, but this does not do justice to the complexity of this apparently simple idea. A the idea of a program exists outside of any particular programming language, but we only get to see and experience it when it has been expressed. This makes it hard to separate the fundamental ideas from language features.

Last Updated on Monday, 29 October 2012
The Fundamentals of Pointers
Written by Mike James   
Thursday, 10 March 2016

Despite the fact that pointers have been long regarded as "dangerous" they are still deeply embedded in the way we do things. Much of the difficulty in using them stems from not understanding where they originate from. Pointers are a sophisticated abstraction that wraps some fundamentals of assembly language. 

Last Updated on Sunday, 24 November 2019
The Heart Of A Compiler
Written by Mike James   
Wednesday, 20 February 2013

Compilers are an essential part of using a computer - but there was a time when they simply didn't exist. First we had to realize that we needed such a thing and then we had to figure out how to build it. If you have ever looked at the theory of building a compiler you might feel that it is a difficult task. The reality is that compiling arithmetic is surprisingly difficult.

Last Updated on Thursday, 21 February 2013
The LIFO Stack - A Gentle Guide
Written by Harry Fairhead   
Thursday, 21 March 2019

The stack is a very simple idea. It is a data structure that has only two simple operations and yet not only is it powerful, it is at the heart of modern computing, both theory and practice. Let's find out more about it.

Last Updated on Thursday, 21 March 2019
The Lost Art Of The Storage Mapping Function
Written by Harry Fairhead   
Thursday, 04 October 2018

You may not have heard of SMFs, Storage Mapping Functions, but you are likely to have used them. They tend to be overlooked because there are more exciting methods of implementing storage, such as hashing schemes, but really it all started right here with an SMF and there is a sense in which all exciting stuff is just SMFs reinvented. 

Last Updated on Thursday, 04 October 2018
The Magic Number Seven And The Art Of Programming
Written by Sue Gee   
Tuesday, 17 December 2013

The number seven is very important in programming and many other intellectual endeavors. Why is is magic and what significance does it have for us poor limited humans?

Last Updated on Tuesday, 17 December 2013
The McCulloch-Pitts Neuron
Written by Harry Fairhead   
Tuesday, 13 May 2014

Nowadays the McCulloch-Pitts neuron tends to be overlooked in favour of simpler neuronal models but they were and are still important. They proved that something that behaved like a biological neuron was capable of computation and early computer designers often thought in terms of them.

Last Updated on Tuesday, 13 May 2014
The Meaning of Life
Written by Mike James   
Wednesday, 08 May 2013

John Conway's Life isn't just a fascinating program, it's an example of a cellular automaton. The theory of cellular automata (CA) sounds intimidating, but in fact it's simple and fun. It is a deep mystery how complex things arise from simple things – almost without even seeming to try. And how best to implement it? 

Last Updated on Thursday, 06 March 2014
The Memory Principle - Computer Memory and Pigeonholes
Written by Harry Fairhead   
Friday, 22 January 2016

We discover why computer memory can be likened to pigeonholes and even include instructions for you to build your own memory device.

Last Updated on Friday, 22 January 2016
The Mod Function
Written by Mike James   
Tuesday, 31 March 2015

What has modular arithmetic got to do with the real world?
The answer any experienced programmer should give you is "a lot". Not only is it the basis for many an algorithm, it is part of the hardware. 

Last Updated on Friday, 23 November 2018
The Monte Carlo Method
Written by Mike James   
Thursday, 27 July 2017

Monte Carlo methods are powerful ways of getting answers using random numbers to problems that really don't seem to have anything much to do with randomness. For example, you can find Pi and multiply two matrices together all by generating random numbers.

Last Updated on Thursday, 14 March 2019
The Programmer's Guide to Chaos
Written by Mike James   
Wednesday, 30 January 2013

You might well think that “chaos” isn’t something that really should be mentioned in the same breath as “computer” but you’d be wrong. Here's an overview of a  fascinating and disturbing topic and one that every programmer should know something about.

Last Updated on Tuesday, 05 February 2013
The Programmer's Guide to Fractals
Written by Mike James   
Thursday, 18 July 2019

Fractals encompass interesting pure math and computing - and  are very pretty to look at. It is almost a rite of passage that every programmer has to face - write some sort of fractal viewer!

Last Updated on Thursday, 18 July 2019
The Universe as a Computer
Written by Mike James   
Wednesday, 16 May 2012

Is the Universe just a big computer?
We have been searching for the theory of the Universe, the Grand Unified Theory, for a long time but could the secret be that the Universe is just a computer…

Last Updated on Tuesday, 07 August 2012
The Working Programmer's Guide To Variables - Scope, Lifetime And More
Written by Mike James   
Thursday, 22 August 2019

Many programmers are confused by the range of variations that there are on the humble variable - mainly because the idea is so basic that we just "pick it up" as we go along. This explanation doesn't cover all of the possibilities but enough of them for you to understand the rest.

Last Updated on Thursday, 22 August 2019

Page 4 of 5