Computing TheoryThe 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.
MathematicsThe 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.
LogicThe 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.
ProgrammingLearning 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 StructuresStructures 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.elegant known solutions to common programming problems. This serves to elevate a students understanding of programming by examining well designed solutions.
Software EngineeringSoftware 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 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.
NetworkingThe design, implementation and analysis of networks. This typically includes an overview of network topographies, hardware, protocols and security techniques. 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.
DatabasesThe 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 RetrievalThe 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 GraphicsThe mathematics, data structures, models, algorithms and hardware used in 3d graphics.
User Interface DesignUser experience and the design of user interfaces.
CompilersLooking at how to design and implement programming languages.
Numerical ComputingMethods for computing solutions or approximations to math problems in areas such as calculus and linear algebra.
Scientific ComputingNumerical methods, algorithms, user interfaces and high-performance computing architectures that are useful for science and engineering.
Formal MethodsDeveloping precise specifications of the runtime properties of software.
Distributed SystemsArchitectures and methods for implementing systems using many physical computers.
|Overview: Computer Science Examples|
The academic study of information technology