Programming != Computer Science

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.

This entry was posted in Computer Science Education by Rohit Goyal. Bookmark the permalink.

About Rohit Goyal

Rohit is a high school student from Pennsylvania. His main interests include math and computer science, but more specifically, he is interested in data mining and artificial intelligence. Rohit is interested in seeing how computing continues to change society and hopes that more people get involved in computing-related areas.

2 thoughts on “Programming != Computer Science

  1. Great article! So true because I know when I first started programming when I heard “CS” I thought to my self python shell and different language environments. but now that I have taken those courses and have come to a greater understanding that there is a lot more to CS than just programming. Thanks for the post!.

  2. Well written article – Just a few comments.
    Computer Science also involves understanding the performance of the code you make – What exactly happens and how fast is it executed.

    Structures, Threads, Locks, Search Algorithms are really important – But we should not overlook ‘Patterns’.

    It’s very much like learning the alphabet, then you learn to put those characters together and finally you are ready to actually make hole sentences.

    In other words Computer Science is very similar to learn how to read and write.

Leave a Reply

Your email address will not be published. Required fields are marked *