Three-Dimensional Learning in Computer Science

I remember when I was a kid how much I was impressed by how computers work. The idea of writing simple code to make complicated operations and interfaces was puzzling for me. The first program I made was a calculator using Visual Basic. I remember how back then it was easy to find materials to learn about programming. It is safe to say that Computer science has the largest materials for learning on the web compared to any other field of study. There are three important dimensions which helped to expand the field in the way we are seeing it today.

The first one is problem-solving. Compared to other other subjects like engineering for instance, you can practice solving a lot of examples and more than 90% of students will solve the same problems using the same approach. However in computer science things are different. The art of problem solving keeps the mind active and people challenge each other to find brilliant solutions. You might spend days trying to solve a simple programming question making it more efficient for instance. On other hand it makes us more resistant to failure. You know things will work at the end but you might spend hours trying to solve a bug. Computer science combines thinking about problems as well as writing beautiful code.

The second dimension is writing open source code. This is related to the first dimension because we are solving problems by writing a code. Look at answers to questions in stack overflow to see the variety of solutions to a given problem. Some solutions are simple and neat others are complicated yet more efficient. There is some beauty and enjoyment in writing code. It is difficult to succeed in this field if you don’t like to spend hours writing code only. For me, it is like magic to write a few lines of code and you get a widely used tool that can be easily distributed. Moreover, writing open source code helps expand the knowledge because we can reuse it to make it more complicated and at the same time more high level. One of the best websites that helped the distribution of the code is GitHub where code is easily accessible and can be forked to improve.

The last dimension is distributed knowledge using books, articles and videos. Computer science is one of the few subjects that has millions of articles online on different languages. As of July-2020, stackoverflow which is one of the largest question answering websites for developers is ranked 45 in global internet engagement according to Alexa. This tells alot about how much engagement is related to programming and computer science. By nature, we like to write tutorials, make videos and also share this knowledge. This distribution of knowledge has allowed the field to advance dramatically in the era of the internet. Not to mention the number of publications each year that helps advance the field in different fields. Moreover, the current advances in machine learning have helped the field gain more popularity as many students from different studies are interested in incorporating these algorithms in their field of study.

In short, there are three reasons that made computer science shape the way we see it this day. These are problems solving, writing open source code and distribution of knowledge. Computer science is closely related to other fields like software and computer engineering and it is difficult to neglect the impact they had on the development of the field.