1.2. Computer Science

Despite its name, much of computer science is not focused on the study of computers themselves. Computer science spans a wide range of topics, from its theoretical and algorithmic foundations to cutting-edge developments in robotics, computer vision, intelligent systems, bioinformatics and other areas. What these different areas of study all have in common is a focus on studying ways to solve problems through computation with algorithms. (An algorithm is simply a step by step process for solving a problem.) Although computer scientists must develop a solid understanding of the machines we depend on to do computations for us, computer scientists are more concerned with understanding what problems can be solved with computation and how we can most efficiently solve those problems.

The first year of study generally focuses on programming - the essential skill needed to solve problems using a computer. Courses in the following years tend to be more focused on the theory of why software and hardware work and how to build software. Students are usually expected to chose a concentration (such as systems, graphics, database, artificial intelligence, theory, etc.). Some schools offer “applied” computer science degrees less focused on theory and more oriented to techniques used in a particular field (computational biology, software development, etc…).

The graph below shows the expected skill set of a Computer Science graduate. It covers most of the left side because computer scientists are expected to have a strong theoretical grounding focusing on software, but also need to understand how computing hardware works. They design and develop all types of software from systems infrastructure (operating systems, communications programs, etc.) to application technologies (web browsers, databases, search engines, etc.), but generally do not participate in the deployment or configuration of software or computer systems.

Typical careers:

  1. Software Developer
  2. Computer Research Scientist


Materials on this page adapted from:
Association for Computing Machinery