Unit one, section one#
“Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes. Science is not about the tools. It is about how we use them and what we find out when we do.”
Michael R. Fellows and Ian Parberry, Computing Research News
General reading notes#
Most fundamental work occurred in 1920 - 1940 under the branch of logic and applied mathematics.
CS was not recognized until 1950 to early 1960.
Theroretical computer science involves pencil and paper. Researchers investigate problems with formal models of computation.
Programming is a tool of computer science, not the definition.
Programming a means to an end, not an end in itself.
Misconception 1: computer science is the study of computers.
Misconception 2: computer science is the study of how to write computer programs.
Misconception 3: computer science is the study of the uses and applications of computers and software.
There is no single date that marks the beginning of computer science.
The first general purpose electronic computers appeared in the 1940-1946 period.
FORTRAN was the first high level programming language.
Purdue university awarded the first MSc degree in computing in 1964, and the first PhD in 1968.
Euclids algorithm deals with finding the greatest common divisor of two positive integers.
The word algorithm is derived from the last name of Muhammad ibn Musa Al-Khowarizmi, a persian mathematician.
Muhammad ibn Musa Al-Khowarizmi wrote one of the earliest mathematical texts in the nineth century, giving us the word algebra from the arabic al jabr.
German logician Kurt Godel theorized there are problems for which no generalized algorithmic solution can possible exist - an unsolvable problem.
An unambiguous operation is one a computer could execute directly without further simplification.
We call unambiguous operations primitive operations.
Algorithms must be doable, or effectively computable. One algorithm may not be suitable for another solution.
Sometimes an algorithm doesn’t produce an answer, but it always produces a result.
Early slide rule and mechanical calculators were not computers. They lacked memory and were not programmable.
The first device that could do this was a loom (jacquards french loom, used punch cards to produce rugs).
Babbage analytical engine four core components are the mill, store, operator, and the output unit. In order, they are responsible for arithmetic, memory, the processor, and I/O.
Although the jacque loom was first, the analytical engine is considered the first true computer.
John Von Neumann took the 1940s Mark 1, Z1, ENIAC and Colossus computer designs one step further towards the true definition of a modern computer by changing the idea of how the switches were programmed. Rather than physical switches, he proposed using internal gates and relays to program new switches.
His contribution to the invention of programming as we know it today is now recognized as the Von Neumann Architecture.
We are in the fifth generation of computing, 1985+, but scientists now think that the usefulness of conventional computing generations is outlived.
Definition of algorithms#
An algorithm is an unambiguous procedure or set of instructions for completing something, and requires a finite number of steps using primitive functions. It is a sequence of instructions that must produce an observable result.
They are imporant in computer science because if we can specify an algorithm to solve a problem, then we can automate its solution.
Algorithms can be one of three types:
Sequential operations
Conditional operations
Iterative operations
Challenge work submission#
Read chapter one of the textbook.
Complete challenge work #2, on page 41 of the text.
Note
Corresponds to challenge work #2 on page 41 of the text.
A misleading definition of computer science is a branch of study that deals with the theory of computation or the design of computers (Meriam-Webster). After reading the text, I can see it lacks meaning.
The course reading focuses on defining computer science as an approach to a task. The task of a computer scientist is to “…design and develop algorithms to solve a range of important problems” (Gibbs & Tucker, 1986, pp 202-210) with the idea that “if we can specify an algorithm to solve a problem, we can automate its solution” (Schneider & Gersting, 2013, p. 10).
Webster doesn’t mention that the task can be done with pen and paper, but the text makes this clear.
The course text is not alone in focusing on the approach rather than the tools. The IEEE published an article in April of 2023 which describes a historical overview of computing, consistently defining computer science as an algorithmic pursuit through technological, cultural, economic, and industrial dimensions, including Pascals calculator in 1642.
Definitions which focus on the tools of computer science (programming, languages, hardware, or systems) can mislead a reader away from the mathematical theory which can largely be done with pen and paper.
Put simply, “computer science is no more about computers than astronomy is about telescopes, biology is about microscopes, or chemistry is about beakers and test tubes. Science is not about the tools. It is about how we use them and what we find out when we do” (Fellows & Parberry, 1993).
Works cited#
Merriam-Webster. “Computer Science.” Merriam-Webster.com Dictionary, Merriam-Webster, https://www.merriam-webster.com/dictionary/computer%20science. Accessed 15 Dec. 2024.
Gibbs, Norman E., and Allen B. Tucker. “A Model Curriculum for a Liberal Arts Degree in Computer Science.” Communications of the ACM, vol. 29, no. 3, Mar. 1986, pp. 202–210.
IEEE. IEEE Annals of the History of Computing. IEEE Xplore, https://xplorestaging.ieee.org/xpl/aboutJournal.jsp?punumber=85. Accessed 15 Dec. 2024.
Schneider, G. Michael, and Judith Gersting. Invitation to Computer Science. 6th ed., Cengage Learning, 2013.
Fellows, M. R., and Parberry, I. “Getting Children Excited About Computer Science,” Computing Research News, vol. 5, no. 1 (January 1993).