Most people take computers for granted.
Computer systems pervade every sphere of our lives, on our desks, in our cars, in washing machines, telephones, games, air traffic control systems, automatic cash machines, billing systems and hospital scanning equipment. In recent years increasing numbers of us are connected to people all over the world through the Internet and the World Wide Web. Whether computers are operating smoothly or, as sometimes, behaving unexpectedly, to many people they remain more or less a mystery. Computers are not, however, mysterious. Their behaviour is the product of their design, which in turn is the product of computer scientists and software engineers.