-
Algorithms and Data Structures : Studying different algorithms and data structures used in programming.
- Algorithms
- Data structures
- Analysis of Algorithms ( Complexities of time and space etc)
- Computational Geometry
- Combinatorial Optimization
-
Theory of Computation : Deals with how to compute things on a computer
- Automata theory
- Computability theory
- Complexity theory
- Quantum Computation
- Cryptography
-
Information science
- Information theory (representing information, quantifying it)
- Coding theory (compression, correction, error detection etc)
-
Programming Language theory : Deals with how to develop a programming language
Description: A branch of ComputerScience which deals with the design, implementation, analysis, characterization, and classification of ProgrammingLanguages and programming language features. It is a multi-disciplinary field, both depending on (and in some cases affecting) mathematics, software engineering, linguistics, and even the cognitive sciences. It is a well-recognized branch of computer science, and an active research area.
- Type theory (How to represent “types” of data)
- Compiler design (How to design compilers and interpreters which help computer understand the language)
- Programming languages
-
Formal Methods: Deals with formal specifications required for hardware and software
Formal methods are techniques used to model complex systems as mathematical entities. By building a mathematically rigorous model of a complex system, it is possible to verify the system's properties in a more thorough fashion than empirical testing.
-
Computer Architecture and engineering: Principles behind organizing and building a computer
Description: Computer architecture is a specification describing how hardware and software technologies interact to create a computer platform or system. When we think of the word architecture, we think of building a house or a building. Keeping that same principle in mind, computer architecture involves building a computer and all that goes into a computer system.
- Digital logic: performing operations with 0s and 1s on hardware
- Micro Architecture (Processors, FPGAs)
- Multi Processing (Pipelines, Multi core systems)
- Ubiquitous Computing ( Simplify the idea of computing and make it available in all devices like cell phone, palmtops notebooks etc.)
- Systems Architecture ( Principle behind designing computer systems using systems engineering approaches)
- Operating Systems (Study of operating systems which are like a bridge between hardware and software
-
Performance analysis: Study involving analysing performance of computer systems and come up with solutions to improve it. Performance Analysis is a specialist discipline involving systematic observations to enhance performance and improve decision making, primarily delivered through the provision of objective statistical (Data Analysis) and visual feedback (Video Analysis).
Description: What is Performance Analysis
-
Parallel and distributed systems: Study involving how to parallelise and distribute the computing using a large number of resources instead of a single computer.
- Introduction
- Useful Resource (literally 😉)
-
Computer Networks: Study of organizing computers into networks and communication within a network and between networks.
Description: A computer network is a group of computers that use a set of common communication protocols over digital interconnections for the purpose of sharing resources located on or provided by the network nodes. The interconnections between nodes are formed from a broad spectrum of telecommunication network technologies, based on physically wired, optical, and wireless radio-frequency methods that may be arranged in a variety of network topologies.
-
Computer Security: Study of principles behind giving various securities to computer users and their information. Description
-
Databases: Study involving developing databases which are entities responsible for storing, managing and processing data.
-
Computer graphics: Generate images, videos and animations ( visual content) for games, movies etc.
-
HCI: Study involving principles and techniques employed in Human computer interaction.
-
Scientific computing: Utilising computers to analyze and simulate scientific problems
- Numeric analysis
- Bioinformatics
- Computational Physical sciences ( Physics and Chemistry)
-
Artificial Intelligence: Study involving making computers intelligent like humans ( probably most popular of all the fields)
Description:Artificial intelligence (AI) refers to the simulation of human intelligence in machines that are programmed to think like humans and mimic their actions. The term may also be applied to any machine that exhibits traits associated with a human mind such as learning and problem-solving.
- Pattern recognition
- Machine learning
- Data mining
- Natural language processing, Computer Vision
- Knowledge representation ( how to represent and quantify knowledge) and reasoning
- Robotics
- Study of designing, implementing, and modifying software in order to ensure it is of high quality, affordable, maintainable, and fast to build.
- Also study about organizing and analyzing software