Brandon Pettenati

Ms. Boyle

ENG 160

November 12th, 2021

Programming the Future

Computers: at the lowest level they’re machines that can only move numbers around, however they have become so advanced that they can be used for an astronomical number of real-world applications. Go about your day and count the number of computers you use, your laptop, cellphone, calculator, smart TV, the credit card reader at the supermarket. As you can see, they’re everywhere and they’re only going to become more prevalent in society as time goes on. As of now most high schools in America do not have well established computer science programs, this needs to change. Everyone should learn how to program as it teaches you not only an increasingly valuable skill, but because it also teaches you how to think.

In 1971 Intel would release the first microprocessor or the first integrated CPU (central processing unit), the Intel 4004. This was the first microprocessor of its kind to be released commercially. The Intel 4004 was a 4-bit processor, meaning that it could operate on numbers up to four binary digits (0 – 15 in decimal), capable of running at 740 KHz. This processor would go on to mark a turning point in the industry; a completely integrated CPU that could fit in the palm of your hand while also not costing a fortune to produce. Before this CPU’s would typically take up a large amount of space. This would allow any regular consumer to have access to a computer and programming. It would also now allow software to be portable between computers. Today computers are microscopic, extremely fast, and powerful. Typically, CPUs today are either 32-bit (0 – 4,294,967,295 in decimal; 4 GiB) or 64-bit (0 – 1.8446744E+19 in decimal; 1.718e+10GiB) and typically run at a clock speed anywhere from 2 – 5 GHz. That is a monumental increase in speed and power in such a short span of time. As it can be often heard, computers are the future.

Steve Jobs, co-founder of Apple and pioneer of the personal computer revolution once stated, “Everyone in this country should learn how to program because it teaches you how to think”. Out of all my time programming, the single most important thing I learned how to do was problem solve. Majority of programming comes down to being able to break down your problem into small steps that can be solved with computers. Learning programming language syntax is half of the equation. Learning syntax will only help you program more efficiently; without good logic and problem-solving skills, you will not get very far. In 1991 a study was conducted to determine if programming could help improve problem solving skills. In the study the author states:

“Others argue that a prescribed “chain of cognitive accomplishments” occurs, through which learners move from learning specific features of the language to applying templates to procedural skills, to generalizable problem-solving skills [6,37,59, 63, 641]. Researchers note that mastering programming to a level where generalizable problem-solving skills are learned is a long and arduous process

[65-681]”(Dalton, Goodrum 499).

In this study the high school students were exposed to BASIC (beginners all-purpose symbolic instruction code) while elementary students were exposed to Logo, a much simpler language. In the study, it was recognized that the elementary students had a larger increase in problem solving skill than the high schoolers did; this was due to the syntax of BASIC being more complicated than Logo. This is critical to showing that the increase in problem solving skills comes directly from learning conceptual programming ideas rather than memorizing syntax. To learn to program, you typically have to learn some kind of language. Even if you were to learn conceptual programming ideas through some hypothetical and theoretical language, it would still prove to teach problem solving skills. By teaching computer programming early on, it would allow students to overcome the syntax barrier, learn conceptual ideas and thus gain problem solving skills.

As previously stated, a computer in simplest terms is only a machine that moves numbers around. At the lowest level of a computer, this is all it can do, move bits (1 or 0s) in and out of memory, and compute arithmetic with them. Low level programming (assembly language) is a type of programming that directly encourages logical thinking. In this type of programming, you are directly accessing the processor. In assembly language there are op codes (operation codes) that are essentially a binary number that will do a specific function within the processor. A line of code in assembly language will consist of an op code followed by either a memory address or a numerical value. So, if you wanted to draw an image to the display, you would need to load your values (colors) into the computer and then store them in the correct video memory address’, thus turning the pixel of the screen to that color. Assembly language should not be taught as an introductory to programming, however if programming was standard curriculum, it would be a great thing to tech in high school. It is a form of programming that requires the programmer to be able to move numbers from place to place whilst also managing the rest of the computer to prevent errors. Despite being a cumbersome and, in some cases, archaic way to program, it directly teaches you how to think logically in relation to the computer because there are no shortcuts.

The other reason why teaching programming and computer science is so important is because of how increasingly important it is in our society. The computer industry is a multi-billion-dollar industry, and it is only going to keep growing. Before the 1960s the word computer typically referred to the job of someone that did calculations, it now refers to any machine that can carry out arithmetic or logical operations. Teaching programming in schools would open many people to a plethora of new career options. Programming is prevalent in almost every industry. Whether it be assembly line robots or a website for a local coffee shop, there is a surplus of jobs in programming available. There are many people that will never think to major in something such as computer science or computer engineering because they think it is too hard or ‘nerdy’. There are also a lot of people that take up computer science as their major but then later realize that they do not like it, or it is too hard for them. By teaching students from elementary on, they will be exposed to new career options, and it will prevent these things from happening.

“The initial phase of problem solving—that is, the analysis of the programming problem—requires the students to be able to identify, analyze, plan, and create possible ways to solve the problem… In other words, computer programming requires a higher-level knowledge or knowledge at the strategic or conditional level (McGill & Volet, 1997). This is the knowledge of “when and why,” which requires metacognitive skills and problem-solving skills which are apparently lacking among the computer science students” (Ismail, Ngah, Umar 37).

In this 2010 study, the authors states that students in several previous studies were lacking good problem-solving skills, most likely due to a lack of training in problem solving throughout their pre-collegiate education. With a lack of exposure to programming or any subject oriented to help develop problem solving skills it will be extremely hard for students majoring in computer science to succeed. The author also states that computer programming directly involves the ability to identify, analyze, and plan. One of the biggest ways programming teaches this is through trial and error. While programming, a large amount of your time will be spent creating a plan, implementing it, finding errors, and repeating until a solution is found. There is no right or wrong way to program something; almost every problem has more than one way to program it. Computer science is one of the only subjects that teaches students to solve a problem by themselves and allows them to solve it with any method (within reason, e.g., using a third-party code library that already solved the problem typically doesn’t fall withing reason) they please, rather than by following a procedure.

It can be frequently heard from others that computers are the future. This has shown to be true over the last 50 years in our society. Computers are becoming increasingly prevalent in our society; they’re in your TV, they’re in your cellphone, they’re in your car, they even drive your car for you in some cases, and believe it or not they’re already doing surgery on people. Being able to program is incredibly valuable as you can do so much with it. For example, here at New Paltz, the dining hall menu is posted online on the school’s website, however maybe you don’t want to have to navigate to the website every day to look at it. Programming-wise it would be a relatively simple process to build and host a bot that would access this website every day, scrape the menu from this website and then text that data to your phone every morning. In the article “The Future of the Computer Industry” Grove states:

“Figure 1 shows that in 1970 there were about a thousand transistors on an average chip. In 1990, the leading-edge chips have one to two million transistors. By the year 2000, we are going to have approximately 50-100 million transistors on a chip. This dynamic will significantly affect the future structure of the computer industry as well as the

pace of change… The improvement has been phenomenal.  In a little over five years, the cost adjusted by performance decreased by 90%… In the future, the price/performance characteristics will continue to drop further and further at this hair-raising rate” (Grove 148).

In the article Grove goes on to discuss how much computers have advanced from the late 70s up until the year 2000. Grove shows how fast this industry has grown in such a short span of time, without even considering the number of transistors that processors int 2021 have. Transistors are the fundamental basis of how modern digital computers work. Typically, the more transistors a chip has, the more power it has. It is only reasonable to predict that computers will continue to evolve and so will our reliance on them.

Society today is run by computers. By learning to program computers, you are learning an extremely valuable skill while also learning logic, problem solving and planning skills. Teaching programming in schools would allow more people to learn valuable skills as well as open them to new career possibilities. Computers are not magical boxes and learning programming is not rocket science; they are machines that anyone can program and can take advantage of to make their life easier.

 

 

 

 

 

Works Cited

Cass, S. (2021, October 22). Chip hall of fame: Intel 4004 microprocessor. IEEE Spectrum. Retrieved November 16, 2021, from https://spectrum.ieee.org/chip-hall-of-fame-intel-4004-microprocessor.

Dalton, David W., and David A. Goodrum. “The Effects of Computer Programming on Problem Solving Skills and Attitudes.” Journal of Educational Computing Research, vol. 7, no. 4, Nov. 1991, pp. 483–506, doi:10.2190/762V-KV6T-D3D1-KDY2.

“Data and AI Thinking are Crucial Problem-solving Skills for the 21st Century.” PC Quest, 12 Nov. 2021, p. NA. Gale OneFile: Computer Science, link.gale.com/apps/doc/A683025917/CDB?u=nysl_se_sojotru&sid=bookmark-CDB&xid=fc920e94. Accessed 30 Nov. 2021.

Grove, Andrew S. “The Future of the Computer Industry.” California Management Review, vol. 33, no. 1, Fall 1990, p. 148–126\0. EBSCOhost, doi:10.2307/41166643.

Ismail, Mohd Nasir, et al. “The Effects of Mind Mapping with Cooperative Learning on Programming Performance, Problem Solving Skill and Metacognitive Knowledge among Computer Science Students.” Journal of Educational Computing Research, vol. 42, no. 1, Jan. 2010, pp. 35–61, doi:10.2190/EC.42.1.b.

“Students need to be abreast with the latest technologies: Dr. Dishan Kamdar.” Digital Learning, 2 July 2021, p. NA. Gale OneFile: Computer Science, link.gale.com/apps/doc/A667188989/CDB?u=nysl_se_sojotru&sid=bookmark-CDB&xid=7003060a. Accessed 30 Nov. 2021.