Despite its name, computer science seldom involves the study of computers themselves. Edsger Dijkstra, the renowned computer scientist, is often quoted as saying, "Computer science is no more about computers than astronomy is about telescopes." In other words, computer scientists do not fix computers!
Computer science is the study of the theoretical foundations of information (data), computation (logic), and programming. Logic is how we express a solution (algorithm) to a problem (like a recipe for making chocolate chip cookies - a set of rules and guidelines). Programming is the process of developing computer software representing our algorithm to logically process the data we are interested in.
As with "inventing" a new type of chocolate chip cookie, there are a lot of questions that need to be asked when developing a computer algorithm/program:
- What is computable? Is everything computable? Are there some problems out there for which no algorithm exists?
- What would an algorithm look like for a machine with several processors?
- What would an algorithm look like for a cluster of machines or a distributed system?
- How do we represent the algorithm? (Should we write our recipe for chocolate chip cookies in English, French, or German?)
- We need to verify the algorithm? (Will our chocolate chip cookies taste good?)
- We need to validate the algorithm? (Is it really a recipe for chocolate chip cookies?)
Therefore, to be a Computer Scientist, you need to master the basics: programming languages, data structures, software design, and computer architecture. However, there are many other topics of importance: computer graphics, computational complexity theory (what is computable?), human-computer interaction, software engineering, databases, and artificial intelligence.
Want to see some examples of things Computer Science students do? Click here.
In a nutshell, if you enjoy logic, problem solving, mathematics, and detective work, you are likely to enjoy Computer Science as a field of study.