Tech Topic Connection

 



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