Outline of computer science

Computer science (also called computing science) is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. One well known subject classification system for computer science is the ACM Computing Classification System devised by the Association for Computing Machinery.

What is computer science?

Computer science can be described as all of the following:

Subfields

Mathematical foundations

Algorithms and data structures

  • Algorithms – Sequential and parallel computational procedures for solving a wide range of problems.
  • Data structures – The organization and manipulation of data.

Artificial intelligence

Outline of artificial intelligence

  • Artificial intelligence – The implementation and study of systems that exhibit an autonomous intelligence or behavior of their own.
  • Automated reasoning – Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database, and automated theorem provers that aim to prove mathematical theorems with some assistance from a programmer.
  • Computer vision – Algorithms for identifying three-dimensional objects from a two-dimensional picture.
  • Soft computing, the use of inexact solutions for otherwise extremely difficult problems:
    • Machine learning - Automated creation of a set of rules and axioms based on input.
    • Evolutionary computing - Biologically inspired algorithms.
  • Natural language processing - Building systems and algorithms that analyze, understand, and generate natural (human) languages.
  • Robotics – Algorithms for controlling the behaviour of robots.

Communication and security

  • Networking – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.
  • Computer security – Practical aspects of securing computer systems and computer networks.
  • Cryptography – Applies results from complexity, probability, algebra and number theory to invent and break codes, and analyze the security of cryptographic protocols.

Computer architecture

  • Computer architecture – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them).
  • Operating systems – Systems for managing computer programs and providing the basis of a usable system.

Computer graphics

  • Computer graphics – Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
  • Image processing – Determining information from an image through computation.
  • Information visualization – Methods for representing and displaying abstract data to facilitate human interaction for exploration and understanding.

Concurrent, parallel, and distributed systems

  • Parallel computing - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
  • Concurrency (computer science) – Computing using multiple concurrent threads of execution, devising algorithms for solving problems on multiple processors to achieve maximal speed-up compared to sequential execution.
  • Distributed computing – Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.

Databases

Outline of databases

  • Relational databases – the set theoretic and algorithmic foundation of databases.
  • Structured Storage - non-relational databases such as NoSQL databases.
  • Data mining – Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.

Programming languages and compilers

Scientific computing

Software engineering

Outline of software engineering

  • Formal methods – Mathematical approaches for describing and reasoning about software design.
  • Software engineering – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
  • Algorithm design – Using ideas from algorithm theory to creatively design solutions to real tasks.
  • Computer programming – The practice of using a programming language to implement algorithms.
  • Human–computer interaction – The study and design of computer interfaces that people use.
  • Reverse engineering – The application of the scientific method to the understanding of arbitrary existing software.

Theory of computation

History

Professions

Data and data structures

Programming paradigms

gollark: ```ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 2 3 Spin_Up_Time 0x0027 179 171 021 Pre-fail Always - 2033 4 Start_Stop_Count 0x0032 001 001 000 Old_age Always - 168316 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 9 Power_On_Hours 0x0032 079 079 000 Old_age Always - 15354 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 098 098 000 Old_age Always - 2564192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 320193 Load_Cycle_Count 0x0032 088 088 000 Old_age Always - 336830194 Temperature_Celsius 0x0022 126 080 000 Old_age Always - 21196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0198 Offline_Uncorrectable 0x0030 100 253 000 Old_age Offline - 0199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 2200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0240 Head_Flying_Hours 0x0032 088 088 000 Old_age Always - 8931```Wow, this disk is in a great state.
gollark: I don't see why I would want dead ones.
gollark: Certainly not to the extent that you'd expect piles of dead ones.
gollark: Maybe. Not massively more than the other brands, as far as I can tell.
gollark: Guess I'll just... continue using my incredibly dubious backup disk.

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.