Babbage's Bag
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 I - From Data To Objects
Written by Alex Armstrong   
Monday, 15 April 2013

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.

Last Updated on Wednesday, 24 April 2013
Read more...
 
Data Structures Part II - Stacks And Trees
Written by Alex Armstrong   
Wednesday, 24 April 2013

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 Wednesday, 24 April 2013
Read more...
 
Dates Are Difficult
Written by Mike James   
Wednesday, 21 August 2013

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 Wednesday, 21 August 2013
Read more...
 
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
Read more...
 
Finite State Machines
Written by Mike James   
Wednesday, 26 September 2012

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 Wednesday, 26 September 2012
Read more...
 
Floating Point Numbers
Written by Mike James   
Monday, 21 May 2012

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

Last Updated on Tuesday, 22 May 2012
Read more...
 
Fractal Image Compression
Written by Mike James   
Tuesday, 03 December 2013
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 Tuesday, 03 December 2013
Read more...
 
Grammar and Torture
Written by Mike James   
Thursday, 26 January 2017

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, 26 January 2017
Read more...
 
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
Read more...
 
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
Read more...
 
Hashing - The Greatest Idea In Programming
Written by Mike James   
Tuesday, 29 October 2013

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 Tuesday, 05 November 2013
Read more...
 
Hexadecimal
Written by Harry Fairhead   
Tuesday, 19 November 2013

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 Tuesday, 19 November 2013
Read more...
 
How Error Correcting Codes Work
Written by Harry Fairhead   
Wednesday, 19 September 2012

Error correcting codes are essential to computing and all sorts of communications. At first they seem a bit like magic. How can you possibly not only detect an error but correct it as well? How do they work? In fact it turns out to be very easy to understand their deeper principles.

Last Updated on Wednesday, 19 September 2012
Read more...
 
How Memory Works
Written by Harry Fairhead   
Wednesday, 15 May 2013

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 Thursday, 13 June 2013
Read more...
 
Information Theory
Written by Alex Armstrong   
Thursday, 27 April 2017
So you know what a bit is – or do you? How much information does a bit carry? What is this "information" stuff anyway? The answers are, unsurprisingly, all contained in the subject called Information Theory, which was invented by one man.
Last Updated on Thursday, 27 April 2017
Read more...
 
Inside Bitcoin - The Block Chain
Written by Mike James   
Friday, 19 February 2016

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 Saturday, 20 February 2016
Read more...
 
Inside Random Numbers
Written by Mike James   
Tuesday, 18 November 2014

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 Tuesday, 18 November 2014
Read more...
 
Inside the Computer - Addressing
Written by Mike James   
Wednesday, 13 June 2012

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, 14 June 2012
Read more...
 
Interpreters, VMs and JIT
Written by Mike James   
Wednesday, 20 March 2013

The distinction between a static compiler and an interpreter is one that can cause controversy. One programmer's compiler is another's interpreter and the whole subject gets very murky when you throw in the idea of the Virtual Machine and Just In Time compilation. So what is it all about?

Last Updated on Wednesday, 20 March 2013
Read more...
 
Introduction to Boolean Logic
Written by Harry Fairhead   
Monday, 02 November 2015

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. Today, November 2, 2015, is the 200th anniversary of George Boole's birth and 55,000 school students globally are learning about Boolean Logic.

Last Updated on Monday, 02 November 2015
Read more...
 
«StartPrev12345NextEnd»

Page 2 of 5
 

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