A couple of days ago I met a fellow student for some mulled wine. We started talking about work, coding and our current projects. At some point during the evening we ended up discussing the question “how much math in your studies do you need to be a good computer scientist”.
We got to the question by having a disput about the best courses of studies. My Point was, that it is best to have a very small amout of basic logic courses and a very big free chooseable stock of modules. His point was vice versa. He made pretty clear that he only was able to understand difficult computer problems because he was forced to pass hard math exams. He thought that without calculating ruff equations, there was no way he would be able to do what he does now. My opinion was that you only need to understand the concept and not actually calculate the solution.
After some time we agreed that there are always two ways to find a solution for a problem. The first way is the apple way. Some People can calculate the price of 3 apples and 2 peaches, but they can’t do the same equation when there are xs and ys instead of apples and peaches. The method to teach these people about equations is to give them a lot of use cases. After let’s say 1000 use cases meaning equations with different price tags for apples and peaches, they end up seeing a pattern. The pattern is the concept of a variable. Hopefully they understand variables and now are able to find a solution for every equation. But if they don’t see the pattern, than at some point they know every possible equation there is and like this find a solution meaning all possible the costs of the grocceries. We aggred that the apple way to solve a problem is to know every possible use case meaning knowing the answer.
The secound way is the plato way. The theory of forms implies that to really understand something, you need to get the idea behind it. If you want to make sense of the idea, you need to find a logical explanation for somehing. It means referred to apples and peaches understand the concept of a variable. Knowing the concept you can just look at the edge cases, define them and thereby have your solution meaning knowing the answer.
After defining the basic ways we enden up knowing that hard analysis exams are use cases of logic concepts written in math. But do you need to solve a use case to be a good computer scientist? I think NOT! If you want to be a good computer scientist you need to find your way from philosophy down to the problem and not the other way around, but why?
If you want to be an expert in computer science and it doesn’t matter what’s your expertise, you need to find a solution for every problem. The best way to do this is the plato way because it takes the scope on the edge cases. Defining the edge cases before will save you a lot of time and nerves. The bug/issue that could be avoided 10 years ago with an easy change is always an edge case and now it will cost you days to fix.
In conclusion it has to be said that every person needs another amount of hours with the apple way to get it the plato way meaning that every student has his own way for studying computer science. But no matter what don’t forget about philosophy part otherwise it will be a pain in the ass 😉