Wednesday, March 21, 2007

Computer Science World

A common misconception is that computer science is equivalent to programming. This has led to several complaints by fellow students that they're not learning anything useful in their cs class. Computer science deals with algorithms, their implementation, speed, and feasibility, as well as with any other theoretical aspect of computer operation. Programming itself is more of an afterthought. Not that it's not important, but it is not the focus. Read more at Computer Science at write ups.

More informations:

Computer science is a field of study with the following objectives:

1. Development of mathematical theories of computation.
2. Construction of physical systems that perform computations.
3. Applications of computational theory and systems to real-world problems.

All three objectives are equally important. In fact, the three objectives are deeply interdependent.

The first objective gives structure to the field -- a road map if you will. Without a formal foundation to guide us, computer science will be nothing more than the application of trial and error, heuristics, folklore, and voodoo. These theories help us understand why certain approaches work, gives us guarantees they will, and helps us predict new approaches. Fields like algorithm design, numerical analysis, computability theory, and logic are examples of these theories.

The second objective gives the means for computer science to be useful. Computer hardware and software, in their physically realized form, make the theory useful and the applications possible. Abstractions and simplifying assumptions inherent in theory give way to concrete detail and complexity of reality. 'Implementation details,' often brushed over by theorists, are carefully considered and fleshed out. Studies of computer architecture, programming language design, operating system design, and software engineering concentrate on this objective.

The third objective gives purpose to computer science. This is the 'why' of computer science. This is what allows computer science to have an impact in the real world. Additionally, applications often drive the development of systems and theories. Computer animation, electronic commerce, and computational physics are examples of these applications.

Remember: computer science = { computation } × { theories, systems, applications }