4 ms·
"I hypothesize the bug is in X. I predict if I add assertions Y and Z, they will trigger. My testing contradicts my predictions - I hypothesize the bug is in
by MaulingMonkey 9y ago
"I hypothesize the bug is in X. I predict if I add assertions Y and Z, they will trigger. My testing contradicts my predictions - I hypothesize the bug is in ..."
"I hypothesize the performance problem is in X. I predict if I add instrumentation Y and Z, it will show X is wasting several milliseconds per frame. My testing..."
"I hypothesize a blue background will be liked more by our users. I predict using a blue background will increase our retention rate. My testing..."
"I hypothesize the following invariants will hold about the code I've just written. I predict if I write these unit tests..."
"I hypothesize game mechanic X will be lots of fun. I predict if we build this prototype, ..."
For being "pure math", we're sure using the scientific method a lot. And measuring the real world. And decision-making based on empirical evidence. If your argument is there isn't enough science in computer science education, I might agree.
But then there are questions like "what's the impact on static vs dynamic typing on bug rates and productivity?" - in our current state, this is not computer math. It's not even on the mathy side of computer science right now - it is closer to being computer philosophy. We lack the experiments (can't control the other variables for A/B testing programming languages without perhaps actually writing bespoke programming languages for that very purpose!), and we've had a relatively short time to build our models of the computing universe... we're perhaps still building out the math necessary to create all those models...
- jaredklewis 9y agoThere are aspects of the scientific method in programming work, but I feel it has much more in common with engineering than science. Science uses the scientific method to model the universe. The experiments serve the purpose of clarifying that model and uncovering new information. I feel programming is more like building a bridge. An engineer uses his knowledge of physics and (much more importantly) a wealth of field knowledge and best practices to design the bridge. As a programmer, I have tasks much like building bridges, only they are apps. I don't discover new algorithms through experimentation. I implement algorithms that are already well understood. If there is a problem in my code and I run performance tests, the tests do not clarify hitherto unknown phenomena regarding the nature of computers. They simply highlight human errors or bottlenecks caused by well understood characteristics of the underlying computer system. If this is considered science, then basically anything that involves trial and error, be it snowboarding or checkers, is science. Of course I admit it may depend on what you do (programming is a broad field). There are those, for example, that invent algorithms and such, though it seems to me those computer scientists are more mathematicians than scientists. The one area of my work I have felt was scientific was AB testing, which is a kind of consumer science.
- AlphaSite 9y agoAre all biologists scientists, or only researchers? Because your statements seem to imply that you believe the latter (where CS researchers also lie).
- jaredklewis 9y agoBiologists are clearly scientific researchers, tasked with discovering the immense body of unknown knowledge about living organisms. Based almost entirly on systematic observation and experimentation, Biology explifies science. I feel their job is very different than most CS researchers that seem to me more like mathematicians, or industry programmers which are more like engineers.
- belovedeagle 9y agoMathematicians and philosophers generate hypotheses and test them using the tools of their discipline as well, which often includes statistical reasoning to guide more rigorous analysis. The difference is that in true science there is no more rigorous analysis; it's statistics and empiricism all the way down.