Why You Need to Know More Than Coding to Master Computer Science
July 28, 2016
Picking up a book, taking an online course or enrolling in a boot camp to learn a programming language might seem like the best way to get started. It is true, learning a programming language is a very important part of starting your journey as a software developer and coder, but it is only part of the equation.
The field of computer science isn’t just about loops and semicolons. It is about understanding how and why computers work the way they do, and that the world around us is represented, in some way, by a computer.
In fact, to help people recognize the many sides of computer science, the College Board has built a curriculum based on seven themes they call “big ideas” that describe all of the various facets of computer science. These form the foundation of their curriculum for the Computer Science Principles Advanced Placement exam to help high school students prepare for a college education in computer science.
This same program is valuable for adults as well, to serve as the foundation for the programming language and tool skills they will learn to build their career.
So what are these “big ideas?”
Creativity is not limited to art and design. In fact, the belief that creativity is just about art is misleading.
Creativity is about problem solving. It starts with identifying how to solve a problem using a limited system or set of rules. Expressing joy through the limitations of watercolors is one form of creativity. Expressing shipping logistics through the limitations of a mobile app is another.
Computers speak a different language than we do, and in order for us to work with a computer, we have to represent the world around us in different ways. Abstraction takes an object or concept and represents it in a different form, while still maintaining its original meaning, properties or values in some way. We already do that every single day.
Language is a form of abstraction. Every single object, thought or action has a word that embodies its meaning. We understand what that is, because we recognize the abstraction.
III: Data and Information
Everything around us is a form of data, including our actions and even ourselves. Whether we are looking to process through sales figures for the quarter, find out how much time we spend on different activities, or how often we watch certain types of shows on Netflix, it is all data that can be used.
This information can help anticipate what we want, identify trends and provide new tools to solve problems that we have.
When you are approaching a problem, you want to come up with the steps you are going to use to solve it. When you have to solve the same problem multiple times, those steps become a repeatable process, or an algorithm.
Algorithms are built, evolve and are combined together to solve all sorts of problems. They are key components to how common and repeated processes are managed in technology.
Computers and electronics are dumb. They require instructions from us to perform any type of action. Programming is the process in which humans tell computers what to do and how to do it.
Programming can take many forms, ranging from programming directly to computer hardware or to create high-level, cross-platform code that can work on multiple platforms and systems.
VI: Digital Devices
There was a time where digital devices meant that an entire floor of an office building was dedicated for a mainframe computer. Now, we have computers on our wrist that can outperform computers many times its size from decades ago.
But devices also include household items that connect to the Internet. These connected devices, or Internet of Things, can combine data from multiple sensors to help automate your home or business in ways never before possible.
VII: Global Impact
The effect of computer science isn’t limited to the individual, their company or even their country. It can apply change on a global scale. At one time, changes in computers weren’t very broad and networks weren’t universally connected.
But with the Internet, consistent platforms and open standards, information can now cross borders and ideologies. As a result, the work that we perform in computer science has no limits.
These 7 big ideas form the basis of the principles of computer science. So as you consider starting a career in programming, coding or technology, it is important to understand the principles of computer science that extend far beyond the code that you type.
*Image by Rachel Johnson, Flickr