For most students, computer science means lots of high-level coding, screens with black backgrounds and green text, and an esoteric subject. When students hear the term computer science, many think about programming languages – Java, C++, Python to name a few. However, what those students are really thinking about is computer programming, an extension and application of computer science. Computer science uses code and programming languages and different numerical systems, but computer science itself is the study of logic, efficiency, and problem solving. With that, it is worth examining what the world of computer science truly encompasses and what purposes it serves to study computer science.
A critical part of computer science is the study of algorithms & processes used to increase the efficiency of problem solvers. There are thousands of algorithms, ranging from very simple to incredibly complex in nature, yet they are all very elegant. One such algorithm, developed thousands of years ago by Euclid, finds the greatest common divisor (GCD) of two natural numbers. Seemingly rudimentary at the surface, Euclid’s algorithm greatly expedites finding the GCD of very large numbers and can reduce thousands of steps to tens of steps. Though one of the earliest algorithms, Euclid’s algorithm is incredibly powerful and shows how much potential the study of algorithms in computer science has.
Another component – or rather basis – of computer science is the study of logic. That can extend to proofs, analysis, and the examination of ‘true’ and ‘false’. Proofs offer a way of ensuring that certain tasks and pieces of software will always work. It is often very impractical to check that software will work for every case possible, but proofs expedite that process. Analysis can mean many things in computer science, but often, it refers to analysis of certain designs and algorithms. Through analysis, computer scientists and engineers can determine how efficient and practical certain methods are. And finally, the study of ‘true’ and ‘false’ – formalized in a field known as Boolean algebra – uncovers how certain conditions and tasks translate into strings of ‘1’s and ‘0’s. Logic, while largely theoretical, has provided a strong foundation for computer science to flourish and is essential to appreciate technology.
Problem solving is the work of computer science while computer programming is a tool. It is not hard to program. It is hard to program well. The abstruse code and black text editors may be very drawing and seem very powerful, and they are. But, they serve no real purpose without an understanding of principles of computer science.