Skip to content

Latest commit

 

History

History
176 lines (121 loc) · 10.8 KB

fields.md

File metadata and controls

176 lines (121 loc) · 10.8 KB

Different Fields in Computer Science

library

1. Computer Science Theory

  • Algorithms and Data Structures : Studying different algorithms and data structures used in programming.

    Description

    • Algorithms
    • Data structures
    • Analysis of Algorithms ( Complexities of time and space etc)
    • Computational Geometry
    • Combinatorial Optimization
    List of Resources
    1. GitHub repository
    2. Codechef DSA
    3. Learn Data Structures
  • Theory of Computation : Deals with how to compute things on a computer

    Description

    • Automata theory
    • Computability theory
    • Complexity theory
    • Quantum Computation
    • Cryptography
    List of Resources
    1. Geeks for Geeks
    2. MIT Open CourseWare
  • Information science

    Description

    • Information theory (representing information, quantifying it)
    • Coding theory (compression, correction, error detection etc)
    List of Resources
    1. Quick Resources
    2. A Guide to Online Resources
  • 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
    List of Resources
    1. GitHub repository
    2. Book
  • Formal Methods: Deals with formal specifications required for hardware and software

    Description

    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.

    List of Resources
    1. Information
    2. Resources
    3. PDF

2. Systems Theory

  • 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
    List of Resources
    1. GitHub repository
    2. Information
  • 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.

    Description

    List of Resources
    1. Introduction
    2. 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.

    List of Resources
    1. Basics
    2. Web Resources
    3. Types of Computer Networks
    4. Components of Computer Network
  • Computer Security: Study of principles behind giving various securities to computer users and their information. Description

    List of Resources
    1. Top 10 resources
    2. Blogs, Podcasts and Education
  • Databases: Study involving developing databases which are entities responsible for storing, managing and processing data.

    Description

    List of Resources
    1. Introduction

3. Computer Applications

4. Software Engineering

  • 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