The 6 Problems Computation Solves
Knowing which problems we can solve is the first step towards solving them.
Computer science spans a spectrum from highly abstract theoretical concepts to very applied constructs. Both ends of this spectrum contribute valuable insights. I am not a fan of claiming one or the other is unimportant. In fact, in my experience there’s often significant interplay between them. For me, I’ve always been primarily interested in theoretical insights that lead to more effective practical solutions. I recognize real-world problems can inspire new theoretical challenges and innovations, but I prefer to work from the theory towards application as opposed to concentrating solely on one or the other.
With that in mind, I developed the 8 principles of computer science to guide such work. While we still have several of the principles to explore, I want to take a short detour. On this detour we are going to inspect the types of the problems computer science is able to work with. There are several common problem types in computation, each with their own typical forms of abstraction:
- Search Problems: These involve finding a specific item or group of items from a large set based on certain criteria. The abstraction here often involves representing the items and the criteria for searching. For example, a graph data structure can abstract the relationships…