It is hard to imagine
life today without computers as they touch or influence almost every aspect of
our lives. Computers have evolved considerably since Charles Babbage built the
first known mechanical computer in the 1800s (Vahid & Lysecky, 2017, 1.2
Historical figures in computing section, para. 3). Moreover, programming
computers, which are the instructions or tasks given to computers to perform, have
also progressed significantly through changes in programming languages. As a
result, many discoveries and advancements continue to be made more efficiently
than ever before. Although computer hardware provides the raw material for computing
capacity, the essential factor in making computers work is software.
Despite today’s cell
phones having more computing power than all of NASA when they accomplished
landing two astronauts onto the surface of the moon in 1969 (Madrigal, 2019,
para. 3), a modern-day cell phone could not navigate one to the moon without software.
Apollo 11, the spaceflight that landed the U.S. on the moon in 1969, had a
computer installed onboard its command and lunar modules, known as the Apollo
Guidance Computer or AGC (Aebli, n.d., para. 13). The AGC’s software was
written in assembly language, “a textual human-understandable representation of
a machine language’s 0’s and 1’s” (Vahid & Lysecky, 2017, 2.9 Programming:
Assembly language section, para. 1). The assembly language was a vast
improvement for programming computers since the late 1800s when punch cards
were used (Vahid & Lysecky, 2017, 1.2 Historical figures in computing
section, para. 6). However, since then, programming has evolved into high-level
languages, simplifying computer programming by abstracting the actual machine
code run on a computer and making it more human-readable, such as C++ or python.
Computer hardware and
software work hand-in-hand. Programmers write software or a program using a
language such as C++ for computers to execute. A compiler then converts the
software into machine language as instructions for the computer to run. At
which point, a computer’s central processing unit (CPU) receives the
instructions and completes the tasks (Vahid & Lysecky, 2017, 2.1 Basic
hardware section, para. 1). Often software programs also need to store data.
Memory or random access memory (RAM) is hardware that computers use to store
data temporarily, while a computer’s hard drive can be used to store data
long-term. The difference between them is that data stored in RAM is lost when
the computer is turned off, whereas the data stored on a computer’s hard drive will
persist even without power (Vahid & Lysecky, 2017, 2.2 Cache, memory,
drive, para. 1). Therefore, computer programmers need to understand the
components of a computer to ensure their programs execute as designed most
efficiently.
Modern computers and
programming languages have given way to an enormous amount of data created by
an increasingly digitally-connected society. Thus, a need to organize, search and
analyze data has led to the development of databases. However, the concept of
databases is not new. Databases have existed in formats such as filing cabinets
and libraries long before the invention of computers. Many database
technologies also include a programming language such as structured query
language (SQL) to interact with and manage the data. As programmers create
software that requires data to persist, often they will consider storing it in a
database of some sort, such as a relational, distributed, or NoSQL database
platform.
Nowadays, nations are
more connected to each other due to advancements in computer hardware and
software. Yet, it is software that ultimately defines the computing experience.
Programming languages have evolved, making it much easier for more people to learn
programming and create software, including protocols used to connect computers on
a global scale. Moreover, computers have become part of our daily lives, which
has led to a tremendous amount of data being created and stored every second—creating
opportunities and risks for individuals and companies. Hence, there will always
be programs built to protect or exploit users. Technology professionals, especially
those specializing in information and cyber security, should be familiar with the
interplay between computer hardware and software programs. After all, understanding
how computers receive and execute their operations can protect their systems
from malicious software.
References
Aebli,
F. (n.d.). The Apollo 11 software: 4 things you probably didn’t know. Get
Me Coding. https://www.getmecoding.com/the-apollo-11-software-4-things-you-probably-didnt-know/
Madrigal,
A. C. (2019, July 16). Your smart toaster can’t hold a candle to the Apollo
computer. The Atlantic. https://www.theatlantic.com/science/archive/2019/07/underappreciated-power-apollo-computer/594121/
Vahid,
F., & Lysecky, S. (2017). Computing technology for all. Retrieved
from zybooks.zyante.com/
Comments
Post a Comment