Computing Theory
The foundations of computing such as computability theory, modeling computing complexity and information theory. For example, being able to define what makes a programing language complete.Mathematics
The vast majority of information technology jobs require only a cursory understanding of mathematics. However, computer science programs at university often require calculus, algebra and statistics. In addition to this, computer science students learn mathematics that are particularly relevant to computation such as discrete mathematics, combinatorics and numerical computing. All this math serves as an important experience for computer science students to ensure they are able to work out complex problems based on an existing formulas and methods.Logic
The syntax, semantics and structure of formal systems of logic such as propositional logic. It is also common for computer science students to learn a logic programming language and models for fuzzy logic.Programming
Learning how to design and implement software. It is common for university programs to teach several types of programming such as assembly, object oriented, imperative, functional and procedural languages. Programming uses instructions and structures such as variables, data structures, loops, conditional statements and methods to solve problems.Data Structures
Structures for the organization, management and processing of data. This typically examines existing data structures and how to select the most efficient data structure to solve a particular problem. It is also common to design unique data structures for a problem such as sorting or search.Algorithms
The study of paradigms for solving complex problems with programming. This includes theory such as how to prove that code is correct and calculate worst-case runtimes. An algorithms course will also examine elegant known solutions to common programming problems. This serves to elevate a students understanding of programming by examining well designed solutions.Software Engineering
Software engineering may include an overview of business analysis, software architecture, software design, software development processes and project management approaches. This is mostly focused on design and architecture. For example, taking a large problem and dividing it into manageable systems, services, layers and components that can be implemented by hundreds of software developers to create a unified solution.Operating Systems
An overview of the services provided by operating systems and their design. This may involve implementing elements of an operating system in areas such as interrupt processing, file management, memory management, CPU scheduling and concurrent processing.Networking
The design, implementation and analysis of networks. This typically includes an overview of network topographies, hardware, protocols and security techniques.Information Security
The study of information security threats, vulnerabilities, solutions and issues. This typically covers areas such as cryptography, authentication, authorization, network security, privacy and methods for securing software designs.Databases
The concepts necessary to design, implement, operate and retrieve data from databases. This typically covers different types of databases including relational, object oriented and NoSQL.Information Retrieval
The retrieval of data from unstructured digital information and databases. For example, looking at how to implement a search engine or a data analytics tool.Computer Graphics
The mathematics, data structures, models, algorithms and hardware used in 3d graphics.User Interface Design
User experience and the design of user interfaces.Compilers
Looking at how to design and implement programming languages.Artificial Intelligence
The use of machine learning, statistical models and logic to solve complex problems.Numerical Computing
Methods for computing solutions or approximations to math problems in areas such as calculus and linear algebra.Scientific Computing
Numerical methods, algorithms, user interfaces and high-performance computing architectures that are useful for science and engineering.Formal Methods
Developing precise specifications of the runtime properties of software.Distributed Systems
Architectures and methods for implementing systems using many physical computers.Overview: Computer Science Examples | ||
Type | ||
Definition | The academic study of information technology | |
Related Concepts |