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.



Advanced Hashing

Extensible hashing and perfect hashing are ideas that are worth exploring.

Read more...
 
All About Kinect
Written by Harry Fairhead   

The Kinect is currently the hardware that provides developers with the greatest opportunities for innovative programs - both games and "serious" artificial applications. How does it work? How do you use it? What can you use it for?

Read more...
 
Artificial Intelligence - strong and weak

The search for intelligent machines started long before the computer was invented and AI has many different strands.

Read more...
 
Assemblers and assembly language
Written by Harry Fairhead   

The sort of instructions that most computers recognize are too simple for humans to be bothered with - and so we invented assembly language. Find out how it works and how it started the whole movement to abstract away from the computer's hardware.

Read more...
 
Binary - Negative Numbers
Written by Mike James   

Binary arithmetic is easy, so easy a computer can do it, but what about negative numbers? This is altogether more tricky.

Read more...
 
Binary Arithmetic
Written by Mike James   

What could be simpler than binary arithmetic? It’s just two-fingered counting and, once you know how it works, it seems natural for a computer to use it. But decimal is so built into our hands that it took quite a long time before we realized that two fingers were enough.

Read more...
 
BIOS

You don't often encounter the BIOS any more but when you do it is usually something very messy and unpleasant. What is the BIOS and why do we need it?

Read more...
 
Bus basics

Buses are everywhere and yes when you are looking for one they tend to come in threes! With that joke out of the way, let’s take a look at what a bus is in general and in particular.

Read more...
 
Cache Memory And The Caching Principle
Written by Harry Fairhead   

The caching principle is very general but it is best known for its use in speeding up the CPU. We take a look a the basics of cache memory, how it works and what governs how big it needs to be to do its job.

Read more...
 
Cellular Automata - The How and Why
Written by Mike James   

You may know about Cellular Automata, if not you may know John Conway's game of Life, but why is this whole subject so important and so interesting? We take a look at not only what a CA is, but why it is so important.

Read more...
 
Codd and his Rules
Written by Mike James   

Theories of how we should organize databases are thin on the ground. The one exception is the work of E.F. Codd, the originator of the commandment-like “Codd’s Rules”. This approach to database has been codified into SQL - Structured Query Language -  and so into most of the databases on the planet, despite what the recent NoSQL movement might want you to think. So what are Codd's Rules and what is a relational database?

Read more...
 
Coding Theory
Written by Harry Fairhead   

Information theory – perhaps one of the most remarkable inventions of the twentieth century - naturally leads on to the consideration of how information can be coded and hence coding theory.

Read more...
 
Computational Complexity
Written by Mike James   

A lightning guide to the basic ideas of computational complexity without the maths or the proofs. It's almost more fun than programming!

Read more...
 
Computer Memory and Pigeonholes
Written by Harry Fairhead   

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

Read more...
 
Confronting The Unprovable - Gödel And All That

Given infinite computing power surely there cannot be any problem or puzzle that is incapable of solution? The famous or infamous incompletenes theory of Kurt Gödel says different.

Read more...
 
Copy protection and DRM

Copy protection, or Digital Rights Management (DRM) in general, is something that in most cases users hate and the entertainment industry really likes.

Read more...
 
CPU
Written by Harry Fairhead   

The real complexity of any computer system resides in the processor, but do you know how it works? It isn't difficult - just a matter of "fetch" and "execute".

Read more...
 
Data Compression The Dictionary Way
Written by Alex Armstrong   

One of the most important lossless forms of compression is the LZW dictionary based method. It turns up in lots of compression utilities - ZIP, Compress, Deflate and in GIF and PNG format files. It is also an important idea in programming and you really do need to know something about how it works - if only to avoid reinventing it from scratch.

Read more...
 
Data structures - Trees

Classic data structures produce classic tutorials. In this edition of Babbage's Bag  we investigate the advanced ecology of trees - perfectly balanced trees, AVL trees and B-Trees. 

Read more...
 
Data Structures Part I - From Data To Objects
Written by Alex Armstrong   

What makes the difference between a truly awful and a truly great programmer is the way that they use data. The code matters but it is almost an after thought once you have decided on the data structure. We may all want to learn to code but perhaps learning to "data" would be a better goal.

Read more...
 
«StartPrev12345NextEnd»

Page 1 of 5
 

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