CHAPTER 1
Computers Are Everywhere
I do not fear computers. I fear the lack of them.
ISAAC ASIMOV
INTRODUCTION
Depending on your perspective, computers are either the bane or the blessing of modern life. They help us file our taxes, guide doctors through sophisticated surgeries, and deliver entertainment on demand. Unfortunately, they can also overwhelm us with techno-jargon, drown us in a tsunami of spam and unwanted advertising, and serve as targets for identity theft. Nonetheless, can you envision life without them?
Like any other tool, the more you learn about computers, the more useful they become. However, most of us have neither the time nor the inclination to become computer programmers or software architects. Nonetheless, we certainly donât want to remain wholly uninformed so that every mouse click seems like âmagic.â Thus, that begs the question: How much technology does someone need to understand to harness the power of the electronic world?
That is the very intent of this book: to arm you, the reader, with enough information to remove the mystique and apprehension associated with computers and replace it with a broad understanding of their inner workings so that your interaction with them becomes more rewarding and less frustrating.
MODERN TECHNOLOGY
Iâm sure everyone reading this book owns or is familiar with many of the following products:
Smartphone
Smartwatch
Smart TV
eBooks/eReaders (e.g., Kindle)
Smart Thermostats
Navigation Systems (GPS)
Smart Assistants (e.g., Alexa, Google Home)
Smart devices like those listed above have all found hooks on the toolbelts of modern life. Consider: When was the last time you asked for driving directions or âlooked up a wordâ in a printed dictionary? Do you ask Alexa or Google Home for the weather report or a daily news briefing? Does your refrigerator automatically order milk from your online grocer when youâre running low?
As the previous examples demonstrate, interaction with computers is unavoidable in today's world. Sometimes it's obvious. For instance, it's clear that youâre using an âintelligentâ device when you power up your laptop. But how about when you press a button on an elevator? Or when you change gears in your car?
Whether weâre comfortable with computers or not, we need to accept themâeven embrace them. Still, many folks opt to remain ignorant of what is a fundamental aspect of modern living. Such an approach is not consistent with other facets of our lives, however.
For example, most car owners donât know how to design automobiles. Yet, even if they donât understand the details, they are familiar with an automobileâs major components: engine, transmission, suspension, etc. Though minimal, such familiarity with automotive design makes drivers more comfortable sitting behind the wheel. Nonetheless, despite our general acceptance of technology, many of us turn our heads and wave our hands when computers are the topic of discussion.
Unfortunately, in the world of technology, ignorance is not bliss. What you donât know might wind up hurting you.
OBJECTIVES OF THIS BOOK
Iâm sure many readers of this book have no desire to become electrical engineers or software developersâyouâd be reading different types of books. That's good because this text aims to help layfolk and students understandâat a conceptual levelâthe inner workings of computer systems. As we progress, weâll learn what this incredible technology can do for us. Additionally, in Chapter 13, weâll also discover what it can do to us.
Throughout the text, weâll use plain everyday language. Nonetheless, to become conversant in the world of computing, youâll need to understand some basic terminology. However, whenever jargon is unavoidable, weâll introduce it delicately and explain it thoroughly.
ORGANIZATION
From a pedagogical perspective, the book will introduce each main subject (hardware, software, networking, etc.) with an introductory chapter that presents the material in broad strokes. Subsequent chapters will dive deeper into the subject matter.
Our journey begins with a brief history of the evolution of computers, followed by an overview of digitizationâone of the most fundamental facets of this technology. After that, weâll describe the hardware components used in modern-day computers and discuss how systems âtalk to each otherâ (i.e., networking).
Given that foundation, weâll address the most challenging subject in computer science: software. After reading those chapters, youâll have a solid understanding of what software is (and what it's not!).
Once we understand how hardware and software work together, weâll describe how computer programs execute and how software developers build them. Then, weâll put all this knowledge to work and write some code. After completing this section, youâll feel much more comfortable working with new applications in the future.
Unfortunately, no discussion of the modern computing world would be complete without reviewing its darker side. Thus, this book will inform you about the dangers that lurk behind the lure of the Internet, the risks behind the façade of free software, and the precautions you can adopt to protect yourself.
All technical chapters will include an Advanced Topic section, which presents the chapter's main ideas in ways that are, well, more advanced. And there's also a glossary of terms containing definitions for all the terms and acronyms used throughout the text.
So, hop on the trainâbut leave the baggage of your apprehensions behindâbecause we are about to embark on an enjoyable journey of discovery.
FORMATTING CONVENTIONS
To simplify the presentation of this material, weâve adopted the following formatting conventions:
When introduced, all technical jargon will appear in italics.
All computer-related termsâfile names, command-line text, and program outputâwill appear in THIS FONT.
Weâll highlight formal definitions using centered text highlighted in gray.
This is an example of a formal definition.
All program listings are highlighted in gray contain numbered lines, and the code will appear in THIS FONT.
001 // THIS IS A SAMPLE CODE LISTING
002 #INCLUDE <STDIO.H>
003 MAIN()
004 {
005 PRINTF( âHELLO WORLD\Nâ);
006 }