The Fundamental concepts of computer science as such deals with the meta-activity that is associated with the development of the concepts and methodologies that implement and analyze the computational systems.
The two in question are Data Structures or my fundamental concept, and the more I think about it, the more I see the similarities in them. There is a certain duality to technology that mirrors that reminds me of the binary aspects of computer science.
The goal of computer fundamental is to develop and prove the basic concepts of existence. Platonic Forms, Aristotelian Processes, and Descartes’ Dialogues are examples of trying to get the basic concepts of physical and metaphysical reality and use them to build bigger structures. Then, one would try to build on top of those basic principles to prove more and more complex ideas, which (hopefully) corresponded with reality.
Computer science is about programming languages, algorithms, structures. From those basic parts, we develop applications and new technologies. It teaches you to think about how to build modular, scalable projects that follow a specific logic while still being organized, easy to understand, and reusable.
At the core of both these disciplines is the basic concept of taking small pieces of the problem and build on top of it to get a solution, and it’s really fascinating to think about how two disciplines so seemingly varied in subject matter can actually be so similar. It also justifies the argument that studying both in conjunction is especially beneficial to both your studies and you as a person to become better-rounded.
Almost all the award-winning computer scientists of old weren’t computer scientists at all — they were either mathematicians or philosophers. Which makes sense because computer science is the perfect combination of the two disciplines, and why there are so many identical aspects in CS and philosophy. There’s a wonderfully strong parallel between building and testing arguments and doing the same for code.