for a PhD

Jun 28, 2008 18:11

I love those rare moments of clarity when I can start seeing the subject (Computer Science) as what it truly is. Instead of just seeing individual algorithms doing a task or in the native form of raw data being shunted round, you start seeing entire families or algorithms from different fields of the subject and seeing algorithms and processes in terms of others. You start seeing the underlying connections and how they relate to each other. I love that feeling. Now I do sound like a complete boffin whose been entombed in an ivory tower for too long, but I can really appreciate the beauty of the mathematical models and theories of what's going on when the various algorithms are working. Everything just sometimes seems so clearly. It doesn't happen very often and it's only in parts of the subject where I have a very deep understanding of how theories are working. And some of this stuff is very theory heavy. It's not about the code, its about the principals upon which the algorithms are built. The model of computation itself. Code is just a way to express that.

That's what computer science is aimed towards understanding, not the code or the physical hardware or any one algorithm (or even family of);  the theories of computation, all of which are based in mathematics - computability itself. That's ultimately why I love research and what I believe is the most important lesson I can learn about the subject from my PhD. That wasn't why I started - to discover this, it's a process that has happened on the way and it took me ages to get away from the idea of code being the lowest level of operation. If you think that computer science is about code and data structures and "holy wars" over which language is most productive / fastest / most efficient / most compact / most expressive or which IDE beats the others or arguing over hardware then you've missed the point entirely. All of those have their place and if we didn't argue and discuss them then how would be identify weaknesses in a language or design? How would we progress? But they aren't critical to computer science as a subject - the study of computation.

The following quote can be attributed to computer science legendary Edgar W. Dijkstra:

"Computer Science is not about computers, any more than astronomy is about telescopes."

Computers in their current form may have only existed for around 60 years and mechanical devices capable of carrying out arbitrary mathematical operations (which is essentially the totality of function in all processing chips do) have only existed for about 100-150 years previous to that (I'm not counting things like abacus' here), the theories of computation and axioms of computability were laid down centuries before that (though one can legitimately surmise that the pioneers didn't realise the scope of their work at the time) the same time that the foundations of many modern disciplines were being formalised. Bernoulli, Gauss, Pascal, Newton, Euler and many others were laying the basis for computer science at the same time as they were devising the mathematical constructs that now drive the core of virtually all branches of mathematics, science and engineering. The individuals who are commonly regarded as being the giants of the subject: the afore mentioned Dijkstra as well as von Neumann, Turing, Babbage, Church, Knuth and Gödel could never have achieved the establishment of computer science is its own right in such a short time over the 20th century. The building blocks were already there.

And that's why I do CS.

research, maths, computer science

Previous post Next post
Up