Written By DannyOn 03/05/13
We’ve all got an idea about what Computer Science is, whether you went to school for it or not. When some people hear the words “Computer Science”, they instantly think about programming applications. Others think about Discrete Mathematics, Boolean Algebra, and Graph Theory. While the later can be pasted together into a pretty loose definition about what the reality of Computer Science is – and the former completely dismissed as false – a more appropriate definition can be established. “The analysis of algorithms and processes”.
Computer Science is not about programming applications, in fact, Computer Science has nothing to do with Computers at all. This term was coined in the late 1950’s and it seems to have stuck with everyone since. To provide further emphasis, let me repeat, Computer Science has nothing to do with Computers.
Computer Science is a young field, and when I say young, I mean real young. The study of Computer Science is so influential to science and technology that it can be compared to the Enlightenment and Renaissance. This “age” of Computer Science really is a “rebirth” in the way we humans interprete the world around us, a true paradigm shift for the sciences. Take this into account, Donald Knuth is known as the “Father” of the analysis of algorithms – or directly the “Father” of Computer Science itself. Better yet, the man is still alive and is a Professor at Stanford University.
It brings to mind a lecture that I had heard before in which the professor compared those studying Computer Science today to Geometers living in the time of Euclid. Take a second to really absorb that last statement, Computer Science is in its infancy and in 5, 10, 20 years from now the field will change drastically. It will change the way we perceive computers, how we work with them, and our lives.
The future of Computer Science rests on the shoulders of those studying it, in which their insight – gained through Mathematical Theory – will shape the very future that we all will be living in. Computer Science is not a field like Biology or Classical Physics, where students study the theories and proofs of people that have long been passed. It evens seems as though the cure to most of humanities problems hold answers in this field of study: whether it be cancer, sustainability, space exploration, or really finding out what the heck gravity is in the first place, and what causes it.
If you’re a programmer that doesn’t have formal education, you should be ecstatic as well. Most likely you have developed the skills to think like a Computer Scientist and just lack the formal training and the deeper meaning behind it. The great thing is that most of the education is available for free in the forms of “Discrete Mathematics”, “Set Theory”, and “Algorithms” on the internet. Now although I most likely will not touch or discuss these topics on this site, I do want you all to realize that you possess the knowledge and skills to change the world. The future breakthroughs in science and technology will not be the new “social network”, or “web app”, it will be the insight that we get through the study of the theories discussed in Computer Science. The next big breakthrough won’t be formed from a couple thousand lines of code, but most likely, a very simple mathematical proof.
If you’re hungry for knowledge and crazy about tough puzzles here is a list of currently unsolved problems in the field of Computer Science. Knock yourself out – and stay away from P=NP. Trust me.
About Danny
The innovator behind all of this madness. He started this blog to give back to the community, share his passion for programming, and help reinforce that passion in others. Read More →
comment 1, order procardia. comment 8, procardia buy http://buyprocardiaonline.pen.io order procardia comment 9, online esomeprazole. comment 1, esomeprazole magnesium cheap http://buyesomeprazoleonline.pen.io esomeprazole buy online comment 2, cheap sparfloxacin. comment 8, online sparfloxacin http://buysparfloxacinonline.pen.io sparfloxacin buy
by procardiabnon 5/19/2013
comment 7, buy naprosyn online. comment 7, cheap naprosyn http://bleacherreport.com/users/2299702-buy-naprosyn-purchase-naprosyn-cheap-naprosyn naprosyn buy comment 8, disulfiram order. comment 7, disulfiram purchase uk http://bleacherreport.com/users/2299747-buy-disulfiram-purchase-disulfiram-cheap-disulfiram disulfiram online uk comment 7, pantoprazole 40 mg online. comment 9, buy pantoprazole sodium 40 mg https://bleacherreport.com/users/2299802-buy-pantoprazole-purchase-pantoprazole-cheap-pantoprazole pantoprazole order
by naprosynoion 5/19/2013
@Danny
Well put, I like that statement. Following the same analogy I'd say that my point can be formulated as that I view computers the same way an astronomer views the light reflected through the lenses of his instruments. Just as he thinks of them in terms of the heavenly bodies which gave off the light, I tend to think of the programs I write in terms of abstractions such as functions and classes, not in terms of the characters rendered on my screen or the electrical charges in my RAM. So, in a way, the computer in my mind is closer to the theory of computer science than to the machine humming away next to me.
by Agentlienon 3/20/2013
@Agentlien
Great argument, I like to see it as the following however, because yes their is tons of debate on this subject
Computers(Or any aspect such as programming) are to Computer Science, what telescopes are to Astronomy.
by Dannyon 3/20/2013
I found this an interesting read, and it definitely provoked thought. It's true that we're still discovering the potential of our field, and that is an incredibly enticing thought! Project suchs as the LHC or the HGP would never have been possible without the recent progress within computer science. If we're here already, just imagine what the future might hold...! It's fun getting caught up in those thoughts, and I do think we need to be reminded of how fascinating our own field is, once in a while. Now, onto the part where I do not entirely agree. The idea of defining computer science is definitely one which I've heard heated debates about in the past, because it is difficult. However, I do think that it's somewhat extreme to claim that it has nothing to do with computers. When I studied computer science, it included, among other things: logic, graph theory, algorithm analysis, data structures. And sure, those are all far more abstract than our computers, and mostly contain grave simplification which sometimes have to be thrown out the window when programming in practice. The most obvious example is algorithm analysis, where you often assume the input is large enough that only the order of computational complexity matters. However, my studies also included fields such as computational models, programming language theory and so forth. That is, courses which are still abstract and formal, but deal directly with questions such as "what can theoretically be computed and how?" or "how do we define, represent and parse a programming language?". If this is not about computers, I don't see what formal studies ever could be. It's not software engineering or computer engineering, which obviously are crucial complements if you are to work within programming. Still, it is the formal groundwork needed to understand the essence of programming, not just its syntax and a fluffy explanation of what it does. Personally, I believe that anyone can learn programming on their own. I did so, using books and (once available) online tutorials. However, it is computer science which gives the theoretical foundation that lets us understand why and how it works, what can be achieved, why a stupid algorithm can be expected to take forever... Without this understanding, I wouldn't be half the programmer I am, in practice, on actual real computers. And, conversely, without having actual hardware and software to put it into practice with, what use would any of these subjects be? So, sure, they may all deal with very abstract theoretical models, but what they describe is the essence that our computers do embody. What I'm saying is this: computer science may ot be the science of how real computers are built, and does not talk about any particular hardware which actually exist. But it is the formal theory which describes what a computer aims to be, and what they aim to accomplish.
by Agentlienon 3/20/2013
Hi, Well put...even though you might have stuck your neck out a tad more. :-) Your loose definition of what CompSci is and is not (read: writing or improving code to make applications work on whatever machines we happen to consider "computers" today.) sets the tone and will hopefully make many wanna-be CS-types think about the topic more. When I was getting my B.S. in C.S. in the mid-1980s, it was all about computers, especially these new-fangled things called microcomputers. C, C++, and Pascal were all VIP for C.S. students. Machine architecture, assembly language, etc. were Right Out unless you were actually a Computer Engineer in disguise. AI, as always from the 1950s on, was a trendy moving target. Neural nets were kinda cool for the same reason that pattern recognition was (and justifiably) still is. My M.S. thesis for C.S. is closing on 20 years overdue. My mobile phone is more powerful than most (probably any of) the Cray supercomputers I dreamed about in the '80s -- certainly more usefaul in that it allows me to access info via Google et al that wasn't even dreamed of being widely available back when I was in my 20s. So, Walter, I'll close by saying: "You ain't seen nothin' yet!" Regards FZ P.S. Major Kudos to Don Knuth. My 1st serious GF gave me a hardcover copy of his third volume of TAoCS (Sorting and Searching) as a present which was much appreciated, as were the road trips she encouraged me to take her on to get me out of my display-lit dwelling.
by Fractal Zoneon 3/20/2013
How do you mak eyour money?
by Walter Thomason 3/20/2013
"Computer Science" was invented as a term to distinguish it from "computer engineering" -- i.e., the design/development (engineering) of computer hardware. It was a way to set up an academic department and degree program that wasn't part of existing EE departments. There was an early hope of people like Dijkstra that there could be a kind of "software mathematics" developed around algorithmic proof and characterization. There isn't, and there won't be. There's a field called "haptics": the science and engineering of tactile human-machine interactions and interfaces. But that's not "Computer Science". Artificail intelligence was once the next great hope for "Computer Science". It's not going anywhere. There is a field called "Information Science" -- something that librarians do. "Computer Science" isn't that, either. It's bifurcated into esoterica such as Turing logic and complexity theorems, numerical computation, and things like compiler and OS and database design. Oh, and learning enough programming to get a job. Unfortunately, "Computer Science" doesn't actually exist. There is no "science" at all in "Computer Science". It is about "software engineering", and it would be nice if we could finally admit that. By the way, in the late 1960s I reviewed some of the early drafts of Knuth's first book, back when he was using computers and operating systems and compilers and languages we had designed years before to test his algorithms. And no one has even mentioned von Neumann? It's amazing how little of the actual history of the development of computers most "educated" Computer Science graduates actually know.
by WTon 3/19/2013
great article!
by Sifiso Ndlovuon 3/19/2013
Are you saying that all those employers that require degrees to apply for an IT position are misguided? If so, I wholeheartedly agree. And yes, stay away from P=NP. It looks deceptively simple but is fatal over time.
by Danaon 3/19/2013
There is plenty of debate about what Computer Science is and is not. However, the only thread that runs through all the arguments is programming. Computer Science *is* about programming. Programming is the metaphor used to prove theorems in Computability. Algorithms are about programming. How nature uses computation is about weird ways of programming. Computer Science encompasses various kinds of management science which is all about managing human teams of...programmers. Computer Engineering is about algorithms (programs) distilled into hardware. There's some math in Computer Science, but it's all about the bounds you can place on algorithms, which is programming again.
by SeattleC++on 3/19/2013
Great article!
by juliouscmon 3/19/2013
Wonderful article provides insight to the lay persons who do not really understand what CS is.
by Tatianaon 3/19/2013
You left out software engineering, which is an essential part of computer science. What good is the graph theory and Boolean algebra if you can only create toy programs? Creating large-scale applications is one of the main challenges to computer science. While progress has been made, it's still largely an unsolved problem. We currently don't have the technology to guarantee a software system is bug-free.
by Alan C. Balkanyon 3/19/2013
I also go with Alan Turing
by tuxon 3/19/2013
Excellent article, which exactly hits the mark. At present social media is the hype in IT - I know many many B2B companies which invested heavily in social media (and mobile ... ) without ANY financial return. Other B2B companies invested more intelligent (aside from the mainstream - say they invested in real intelligence ) and profited largely Uwe
by uweon 3/19/2013
Nice article. That is really what computer scientists should do. Researching on knowledge and algorithms should be done much to cure the world. And as others suggest, I would go with Alan Turing as the "Father" of Computer Science.
by smohdon 3/19/2013
I think many of the science fields are somewhat in their infancy. When I started studying Physics, our professor mentioned that 90% of all physicists that ever lived live NOW. No wonder that science and technology undergo a superexponential growth nowadays...
by ra_schon 3/19/2013
What a topic? You succeeded in saying what Computer Science is not, but you fully failed to mention what computer science is. If computer science is not about computers then, it has no right to be called this name, absolutely no right to bear the name computer science, another name should be given to it. I hate foolishness and the using of popular name to name things which has no discreet relationship as black and white.
by Tonyon 3/19/2013
I'm glad that you brought that up Smith. I'm sure one could argue that many others could be considered the father of Computer Science. Maybe I should have labeled him as "one" of the fathers.
Thanks for bringing that up though, Turing is most definitely was an influential figure.
by Dannyon 3/18/2013
So...you say Donald Knuth the father of Computer Science? Alan Turing wants to have a word with you.
by Mr. Smithon 3/18/2013