What is coding?
Code, Programming, and Computer Science
Welcome to Computer Science Education Week 2014! As we kick off this week, we figured it would be a good idea to answer a question that many beginners have: What is computer science??
If you were to ask this question to 100 people, you would get 100 different answers. Among those would probably be terms like “coding”, and “programming”, or more specific answers like “building apps.” None of these answers are totally wrong, but none of these answers are right either.
A more precise definition would look something like this, from Mississippi State University:
“Computer Science is the study of principles, applications, and technologies of computing and computers. It involves the study of data and data structures and the algorithms to process these structures; of principles of computer architecture-both hardware and software; of problem-solving and design methodologies; of computer-related topics such as numerical analysis, operations research, and artificial intelligence; and of language design, structure, and translation technique.”
An important fact to note here is that unlike other scientific disciplines, computer science deals with both the study and application of computer science — coding and programming are both derivative activities of CS, neither being possible without the work of computer scientists to build complex systems of calculation and computation. Computer scientists often learn both sides of the discipline hand in hand, learning about the theory and the application of CS. Lets explore both of these to see what we learn.
CS Theory
Computational theory aims to answer one essential question: what can be computed?
What can be computed? We know that computers are good at performing mathematical operations on values, such as adding, subtracting, multiplying, and comparing numbers. Those are things that can easily be done computer. For example, if we had a long list of numbers, and we wanted to create a list of every number on the original list multiplied by 2, we could do that every easily. What if we wanted to take our list and rank them in order of “prettiest sounding words?” Can a computer know or computer that information? This is where computational theory comes in — figuring out what computers can accomplish, and how to accomplish them.
CS Application
The application of Computer Science aims to solve real life problems with computer science concepts. This, in turn, has spawned innumerable sub-fields: everything from artificial intelligence, to the internet, to smartphones are applications of computer science concepts. The application of computer science has given birth to new disciplines, products, businesses, and entire industries.
This is done through writing code that makes use of and connects various pieces of computer technology. Websites are a great example of this — the programmer writes the code to make the page appear the way they want it to, and the code that actually controls the function of that website. This allows them to provide the solution to a problem — the program solves it, and the user is able to use the software through the web. Let’s say we have a website that displays flight prices — we need the “front-end” (HTML, CSS, Javascript, and similar technologies) to allow the user to define what they’d like to see, a huge database full of data about flights, and the “back-end” (this could be Python, Java, Javascript, or any number of languages) that communicates with the user interface and the database to display the correct information in the correct ways.
In this way, we can see the difference between theory and application — theory attempts to find out what computers can do, and application applies that theory to real life problems to provide a solution.
Conclusion
It is important to note that neither side can be called more important than the other — without theory, we wouldn’t be able to solve so many problems that exist in the real world through the application of computer science, and without application, CS’ powerful ability to affect change would be gone. Both sides compliment one another perfectly.
With that, I’d like to welcome you to CS education week, and to the world of computer science. Ready to dive in? Try starting with the Hour of Code! Enjoy your journey!