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.



Quick Median
Written by Mike James   

You have probably heard of Quicksort but this is just one of many partitioning algorithms that work in clever ways to do things faster. Here we look at another of the algorithms devised by C.A.R. Hoare, the Quick Median.

 

Read more...
 
Recursion
Written by Mike James   

Recursion is often said to separate real programmers from the pack. What is it that makes it so powerful? What is it that makes it so difficult? What is the "shape" of recursion?

Read more...
 
Reverse Polish Notation - RPN

This week's cartoon is based on the use of RPN or Reverse Polish Notation. This used to be a basic of the computer programmer's world, but today it is not as well known. Hence there may be some perfectly clued up programmers who are still left wondering what the sausage is doing outside of the bun.

Read more...
 
Search Engines
 

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

Read more...
 
Sequential storage

Sequential storage played an important role in computing history and gave rise to some very specialised hardware and methods. 

Read more...
 
Spintronics

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

Read more...
 
Storage Mapping Functions

You may not have heard of SMFs, Storage Mapping Functions, but you are likely to have used them.

Read more...
 
The Computer - What's The Big Idea?

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?

Read more...
 
The Essence Of Programming
Written by Mike James   

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.

Read more...
 
The Fundamentals of Pointers

Despite the fact that pointers have been long regarded as "dangerous" they are still deeply embedded in the way we do things.

Read more...
 
The Heart Of A Compiler
Written by Mike James   

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.

Read more...
 
The LIFO Stack - A Gentle Guide
Written by Harry Fairhead   

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.

Read more...
 
The Meaning of Life
Written by Mike James   

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? 

Read more...
 
The Monte Carlo Method
Written by Mike James   

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.

Read more...
 
The Programmer's Guide to Chaos
Written by Mike James   

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.

Read more...
 
The Programmer's Guide to Fractals
Written by Mike James   

Fractals encompass interesting pure maths and computing - and they 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!

Read more...
 
The Universe as a Computer

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…

Read more...
 
Turing's Test, the Loebner Prize and Chatterbots

The $100,000 Loebner Prize for the first computer program to pass the Turing Test has still to be won, but every year since 1991 a chatterbot has fooled the judges to win the Bronze medal.

Read more...
 
Variables revisited

 

There is more to the humble variable than meets the eye. We look at scope, global and local.

Read more...
 
Virtual Memory
Written by Harry Fairhead   

Virtual memory is a way of pretending that your computer has more memory than it really has. But like all good things it comes at a cost. Virtual memory is an example of trading speed for storage.

Read more...
 
«StartPrev12345NextEnd»

Page 4 of 5
 

   
Banner
RSS feed of all content
I Programmer - full contents
Copyright © 2013 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.