Sei sulla pagina 1di 5

David Martin

English 12 Per. 6

5/27/2017

Research Essay

One Byte at a Time

Computers are incredibly fast, accurate and stupid; humans are incredibly slow,

inaccurate and brilliant; together they are powerful beyond imagination. (Source 2)

This quote demonstrates perfectly the relationship between programmers and their

tools. While computers can perform the same basic functions at an incredible rate, they

have no ability to solve problems on their own. This stark difference between humans

and computers can be very frustrating if programmers are not fully aware of how a

computer works. This research paper focuses on how computers are built and how their

structure affects programmers. Simply put, anyone trying to write good code must first

have at least a basic understanding of how a computer works.

Computers are in a way, very dumb machines; they have only two very basic

thoughts: true and false, or, 1 and 0. These are stored as electrical pulses; a pulse of

electrical current is a 1, a lack of it is a 0. Trevor Smith, a computer science major and

researcher from BYU, explains: Transistors can change a one to a zero or vice versa.

Furthermore, by combining these transistors in different ways computer scientists

learned to create logic; circuit boards that can perform operations and, or, and not

along with basic math. (Smith) For example, an or circuit board will take two inputs

(1s (true) or 0s(false)) and test if one of the two inputs is a 1 (1s are true). If either of
the inputs are a 1 (true) it returns true. Otherwise if returns false. Using transistors,

engineers have managed to create computers that can perform one very basic

operation at a time. They then created a call stack, which is used to keep track of the

order of operations to be performed. It then executes one statement after another until

the entire program is completed. (Source 2) By performing many very basic instructions

computers, and people, can solve complex problems. Imagine baking a cake,

computers read code like one might read an overly simplified recipe. Think: Grab salt.

Move salt shaker to bowl. Flip salt shaker upside down. Shake. Shake... Many of these

simpler operations can be combined into a program to bake a cake, but the computer is

too dumb to intuitively know how to do anything complex on its own (like add salt or

bake a cake). The reason computers are so much faster than humans at many tasks is

that it can perform them very quickly.

Efficiency and program speed is a problem that is simple to understand once one

understands the sequential nature how a computer executes each code statement.

Every computer has a speed or frequency of operations. Computers can only perform

so many statements of code each second. (Smith) An average computer today can

execute billions of bits (1s or 0s) a second, and millions of code statements, but large

programs can still be slow if the number of statements is too large. However, different

programs can be written in ways to use more or less lines of code.(Source 2) For

example, if someone were baking two cakes, he could bake one cake right after another

and use twice as many instructions (code statements). However, if he wanted to speed

up the process, he could bake them both at the same time. To add salt he would still
have to shake the same amount, but he would only have to pick up and put down the

salt shaker once each, not twice. By writing code efficiently, programmers can write

programs that run faster.

One area where understanding the workings of a computer, and efficiency in

particular, can be useful is in encryption and cyber security. In fact, most of the

encryption used in the world today is not necessarily impossible to be solved by writing

an algorithm. It just takes too long to solve. (Smith) Cryptologists are very good at

creating codes that take too many code statements to crack. In fact, even the fastest

computers would have to run for 1176 times the life of the universe to complete the

algorithm. (source 3) Because computer scientists and mathematicians could not

create an unbreakable code, they used their knowledge of how computers work to find

one that cant be solved efficiently, which is just as good.

A knowledge of how computers work is essential to any aspiring programmer.

The best programs are written in such a way that a computer can execute them

accurately and efficiently. I have learned much about how a computer works internally,

and the different internal components like the SSD, and CPU. I learned the basic

structure for modern encryption, using prime factorization to create the the need for an

inefficient algorithm. I have also gained a lot of practice writing my own code, and then

trying to optimize its efficiency. This was a very interesting mentorship, and I am

surprised that I am able to understand as much as I did about transistors and

encryption. I hope to continue taking coding classes as I study engineering in college,

and am contemplating pursuing electrical or computer engineering. While this topic may
seem very specific to computer science, It is important to remember that as technology

advances, other professions and technologies will advance along with them, and that in

every profession, it is best to understand your tools.

Works Cited

1 Smith, Trevor, Personal Interview. 26 May 2017


2 Stepp, Marty. Building Java Programs. Harlow: Pearson Education Limited, 2013. Print.

3 "The Science of Encryption: Prime Numbers and Mod N Arithmetic." University of California
Berkeley, n.d. Web. 27 May 2017.

Potrebbero piacerti anche