Everyone has some level of familiarity with computers and computing devices just as everyone has familiarity with automotive basics. However, just because you drive a car everyday doesn’t mean you can tell the difference between a crankshaft and a piston. To get started, let’s familiarize ourselves with some basic concepts.
A computer is a device, usually electronic, that stores, receives, processes, and outputs information. Modern computing devices include everything from simple sensors to mobile devices, tablets, desktops, mainframes/servers, supercomputers and huge grid clusters consisting of multiple computers networked together. Computer hardware usually refers to the physical components in a computing system which includes input devices such as a mouse/touchpad, keyboard, or touchscreen, output devices such as monitors, storage devices such as hard disks and solid state drives, as well as the electronic components such as graphics cards, main memory, motherboards and chips that make up the Central Processing Unit (CPU).
Computer processors are complex electronic circuits (referred to as Very Large Scale Integration (VLSI)) which contain thousands of microscopic electronic transistors–electronic
“gates” that can perform logical operations and complex instructions.
In addition to the CPU a processor may contain an Arithmetic and Logic Unit (ALU) that performs arithmetic operations such as addition, multiplication, division, etc. Computer Software usually refers to the actual machine instructions that are run on a processor. Software is usually written in a high-level programming language such as C or Java and then converted to machine code that the processor can execute. Computers “speak” in binary code.
Binary is nothing more than a structured collection of 0s and 1s. A single 0 or 1 is referred to as a bit. Bits can be collected to form larger chunks of information: 8 bits form a byte, 1024 bytes is referred to as a kilobyte, etc.
Following image contains a several more binary units. Each unit is in terms of a power of 2 instead of a power of 10. As humans, we are more familiar with decimal–base-10 numbers and so units are usually expressed as powers of 10, kilo- refers to 103 , mega- is 106 , etc.
However, since binary is base-2 (0 or 1), units are associated with the closest power of 2. Computers are binary machines because it is the most practical to implement in
electronic devices. 0s and 1s can be easily represented by low/high voltage; low/high frequency; on-off; etc. It is much easier to design and implement systems that switch
between only two states
Computer memory can refer to secondary memory which are typically longterm storage devices such as hard disks, flash drives, SD cards, optical disks (CDs, DVDs), etc. These generally have a large capacity but are slower (the time it takes to access a chunk of data is longer). Or, it can refer to main memory (or primary memory): data stored on chips that is much faster but also more expensive and thus generally smaller. The first hard disk (IBM 350) was developed in 1956 by IBM and had a capacity of 3.75MB and cost $3,200 ($27,500 in 2015 dollars) per month to lease. For perspective, the first commercially available TB hard drive was released in 2007. As of 2015, terabyte hard disks can be commonly purchased for $50–$100. Main memory, sometimes referred to as Random Access Memory (RAM) consists of a collection of addresses along with contents. An address usually refers to a single byte of memory (called byte-addressing). The content, that is the byte of data that is stored at an address, can be anything. It can represent a number, a letter, etc. To the computer it is all just a bunch of 0s and 1s. For convenience, memory addresses are represented using hexadecimal, which is a base-16 counting system using the symbols 0, 1, . . . , 9, a, b, c, d, e, f. Numbers are prefixed with a 0x to indicate they represent hexadecimal numbers. Above image depicts memory and its address/contents. Separate computing devices can be connected to each other through a network. Networks can be wired with electrical signals or light as in fiber optics which provide large bandwidth (the amount of data that can be sent at any one time), but can be expensive to build and maintain. They can also be wireless, but provide shorter range and lower bandwidth.