Laptop, tablet or smartphone, you’re reading this guide on a device created using the expertise, theories and skills gained from computer science degrees. Interested in studying computer science and contributing to the next phase of this fast-developing field? Click on the tabs below for information about computer science courses, specializations and careers.
Common skills gained with a computer science degree include:
In a nutshell, computer science degrees deal with the theoretical foundations of information and computation, taking a scientific and practical approach to computation and its applications. Computation is defined as any type of calculation or use of computing technology that follows well-defined models (such as algorithms and protocols) in the practice of information processing (which in turn is defined as the use of these models to transform data in computers).
Computer science is considered by many of its practitioners to be a foundational science - one which makes other knowledge and achievements possible. The study of computer science involves systematically studying methodical processes (such as algorithms) in order to aid the acquisition, representation, processing, storage, communication of, and access to information. This is done by analyzing the feasibility, structure, expression and mechanization of these processes and how they relate to this information. In computer science, the term ‘information’ refers usually to information which is encoded in bits and bytes in computer memory.
Some higher education institutions may use computer science (CS) as an umbrella term to cover various specialist and vocational degrees involving computers and technology. You may also find the term computer science being used to refer to information technology (IT) degrees, although many institutions now distinguish between the two (exactly how and where they draw this line varies). Make sure to check your chosen university’s course details closely.
The QS World University Rankings by Subject includes a ranking of the world’s top universities for computer science. The table can be sorted by location or based on the different criteria used to compile the ranking (including academic reputation, employer reputation and research citations).
Entry requirements for computer science degrees usually emphasize further mathematics, with some institutions asking for a background in physics. A background in psychology or sociology can provide an added dimension to your studies, as you would have gained an understanding of how humans process information, while other natural sciences may also be helpful.
Undergraduate applicants for computer science degrees will not usually be expected to have formally studied computer science before university. However, it is recommended that you pick up a programming language, to gain an understanding of what is involved. While generally accepted beginner languages include Python and C++, Haskell, Java and Pascal are all languages you may come across during your studies. On the other hand, you may find some institutions discourage students from learning programming beforehand to avoid students learning ‘bad’ programming habits early on. Some institutions offer joint courses, in which computer science is studied alongside subjects such as mathematics, engineering and computing.
You can expect to begin your computer science degree by developing a foundation in key computer science topics. Some core computer science courses you may cover include theory of computation, fundamentals of computer science, compliers and operating systems, information theory, basic programming, systems and architecture, software development and testing, web applications and databases, algorithms and data structures, and principles of computer hardware. Mathematical concepts you may cover include formal methods, Boolean algebra, discreet mathematics, set theory, probability, statistics, linear algebra, differential equations and calculus.
You will then choose from an ever-growing range of specialist computer science topics, including advanced internet, advanced programming, artificial intelligence and artificial life, computational logic, computer graphics, computer modelling, computer networks, computer security, computer vision, encryption, ethical hacking, GUIs, games development, human-computer interaction, mobile applications, multimedia computing, networking theory, professional issues and research methods, software engineering and design, and web-development.
A closer look at some of the most popular computer science topics is provided below.
Programming is an interdisciplinary topic, incorporating elements from subjects such as mathematics, software engineering and linguistics. Programming language theory involves looking at the design, implementation, analysis, characterization and classification of programming languages and their individual features. Your introductory courses will teach you one or more programming languages. Knowledge of more than one will help you to better understand their individual strengths and weaknesses, which will in turn help you to better engage with the challenges addressed by programming language theory. You’ll cover topics such as syntax, natural semantics, structural operational semantics and abstract machine code.
Studying computer graphics involves using computers to create still or moving two or three dimensional images using specialized graphics hardware and software. You’ll study how to manipulate visual and geometric information using computational techniques, focusing on mathematical and computational foundations of image generation and processing rather than purely aesthetic issues. You’ll need knowledge of physics, light and materials, as well as knowledge of the mathematics of homogenous matrices, and of data storage, representation and manipulations. Computer graphics makes the interaction and understanding of computers and interpretation of data easier for both computing professionals and consumers. With companies exploring increased use of trends such as ‘gamification’, the demand for computer scientists with advanced knowledge of computer graphics has never been greater.
The study of human-computer interaction (HCI) considers the challenges in making computers and computations useful, usable, and universally accessible to humans, in order to prevent unexpected problems caused by poorly designed human-machine interfaces. Coupled with studies rooted in behavioral sciences, you’ll cover the study, planning and design of this kind of interaction, with the understanding that a computer has an almost unlimited amount of uses which can only take place in an open-ended dialogue between the user and the computer. You’ll approach the subject on the machine side, with computing techniques such as computer graphics, operating systems, programming languages and development environments, and on the human side, exploring communication, graphics, linguistics, social sciences such as cognitive psychology, and user satisfaction.
The study of artificial intelligence (AI) is closely related to the field of artificial life (AL), and both are involved in synthesizing goal-orientated processes such as problem-solving, decision-making, environmental adaptation, learning and communication using computers and algorithms. While the field of artificial life examines systems and studies the complex behaviors that emerge from these systems, artificial intelligence uses systems to develop specific behaviors in machines and software. AI is a cross-disciplinary topic drawing on applied mathematics, symbolic logic, semiotics, electrical engineering, philosophy (of mind), neurophysiology and social intelligence. AI involves the automation of tasks (such as evaluative and predictive tasks) in computer applications involving complex real-world data - successful use of AI in this manner can act as a viable substitute for humans doing the same tasks.
Algorithms are a step-by-step procedure for making calculations, used in data processing and automated reasoning - this creates an output that is often, but not always, predictable. Data structures provide a way of storing and organizing data in a computer so it can be used efficiently - different kinds of data structures are suited to different kinds of applications and may be highly specialized to specific tasks.
Together, algorithms and data structures underlie all other aspects of computer science, and involve learning how to store and process data as efficiently as possible, while ensuring algorithms are able to cope with the system in question. You’ll learn things such as linked lists, sorting and recursion, trees, hashing, greedy solutions, graphs and optimizing data arrangements. You may also go on to the analysis of algorithms (determining the amount of resources necessary to execute algorithms).
Choose a computer science degree, and you could be working at the forefront of the next greatest technological innovations. The increasing scope of computer science means you have the choice to work in a wide variety of highly specialized areas. With computer technologies playing an ever growing role in all aspects of modern life, you’re likely to find your computer science skills in high demand across many different industries although, unsurprisingly, most graduates go into roles within the computer industry. Popular computer science careers include:
Working in partnership with clients, an IT consultant provides advice on the planning, design, installation and usage of information technology systems to meet the client’s business objectives, overcome problems or improve the structure and efficiency of their IT systems. As you represent a broad role in IT, your job will be similar to that of systems analysts, systems designers and applications programmers, whose roles are more specialized but nonetheless work on a consultancy basis.
On a typical day, you will meet with clients to determine their requirements, plan timescales and resources with them, and spend time clarifying the client’s current system specifications, work practices and nature of their business. You’ll analyze their IT requirements, develop solutions, implement new systems (which may include designing and installing) and present the results in a written or oral report, answering feedback, and then helping clients with the subsequent changes and in organizing training for other users. You may also become involved in sales and business development, identifying potential clients and maintaining good business contacts.
A similar role to an IT consultant, an information systems manager is usually a full-time member of staff, responsible for the secure and effective operation of computer systems within their company. You’ll be responsible (perhaps with the help of a team of IT staff) for the entire upkeep of the ICT infrastructure within your organization, with typical tasks involving the overseeing of installation of systems, ensuring systems are backed-up and that the back-up systems are operating effectively, purchasing hardware and software, setting up secure access for all users, including remote users, ensuring security of data from internal and external attack, and providing IT support and advice for users.
You’ll need to make sure the ICT facilities meet the needs of your company and are current, while remaining within a set budget, and within all relevant software licensing laws. You may also need an understanding of business and management principles in order to contribute to organizational policy regarding quality standards and strategic planning in relation to IT.
A database administrator (DBA) is responsible for accurately and securely using, developing and maintaining the performance, integrity and security of a computerized database. The specific role is always determined by the organization in question, but is likely to either mean being involved purely in database maintenance or specialized in database development. The role is also dependent on the type of database and processes and capabilities of the database management systems (DBMS) in use in your particular organization.
Typically, this role includes ensuring data remains consistent, is clearly defined, easily accessible, is secure and can be recovered in an emergency. You’ll also be required to troubleshoot should any problems arise, liaise with programmers, operational staff, IT project managers and technical staff, provide user training, support and feedback and write reports, documentation and operating manuals.
A multimedia programmer is responsible for designing and creating multimedia computer products, making sure they are functional and maintaining fidelity to a designer’s specification. You’ll use creative as well as technical skills to develop multimedia features including text, sound, graphics, digital photography, 2D/3D modelling, animation and video. You’ll need to work with the designer to understand the design concept, discuss how it can be technically implemented, identify the operational rules necessary, write efficient computer code or script to make the features work, run tests of the product to test for bugs and rewrite or add new code if necessary.
You’ll also be available for technical support after the product is completed, and need to keep abreast of industry news and developments in order to suggest and implement improvements. You may work across platforms (such as the internet, interactive television, information kiosks, DVDS, computer games consoles and mobile phones) or remain specialized in one platform. Your role may overlap with similar IT roles such as web developer, games developer, systems developer or software engineer, or you may find yourself working in tandem with these professionals to achieve mutual goals.
Further jobs with a computer science degree include working in other areas of development (such as web, games, systems, products, programs and software), as an analyst (be it business continuity, systems or technical), as an administrator (of databases or networks) or in an academic or industrial research capacity, contributing to the ongoing development of computers and related technologies.
Computer science career opportunities are available in a huge variety of industry sectors and organizations, including: financial organizations, IT companies, management consultancy firms, software houses, communications companies, data warehouses, multinational companies (IT-related, financial services and others), governmental agencies, universities and hospitals. Other options include working as a technical author or trainer (explaining technical information to non-technical audiences), or going in to teaching, journalism, management or entrepreneurship.