Outline of computer science

From Wikipedia for FEVERv2
Jump to navigation Jump to search

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. Outline of computer science_sentence_0

One well known subject classification system for computer science is the ACM Computing Classification System devised by the Association for Computing Machinery. Outline of computer science_sentence_1

What is computer science? Outline of computer science_section_0

Computer science can be described as all of the following: Outline of computer science_sentence_2

Outline of computer science_unordered_list_0

Subfields Outline of computer science_section_1

Mathematical foundations Outline of computer science_section_2

Outline of computer science_unordered_list_1

Algorithms and data structures Outline of computer science_section_3

Outline of computer science_unordered_list_2

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

Artificial intelligence Outline of computer science_section_4

Outline of artificial intelligence Outline of computer science_sentence_3

Outline of computer science_unordered_list_3

  • Artificial intelligence – The implementation and study of systems that exhibit an autonomous intelligence or behavior of their own.Outline of computer science_item_3_11
  • 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.Outline of computer science_item_3_12
  • Computer vision – Algorithms for identifying three-dimensional objects from a two-dimensional picture.Outline of computer science_item_3_13
  • Soft computing, the use of inexact solutions for otherwise extremely difficult problems:Outline of computer science_item_3_14
    • Machine learning - Automated creation of a set of rules and axioms based on input.Outline of computer science_item_3_15
    • Evolutionary computing - Biologically inspired algorithms.Outline of computer science_item_3_16
  • Natural language processing - Building systems and algorithms that analyze, understand, and generate natural (human) languages.Outline of computer science_item_3_17
  • Robotics – Algorithms for controlling the behaviour of robots.Outline of computer science_item_3_18

Communication and security Outline of computer science_section_5

Outline of computer science_unordered_list_4

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

Computer architecture Outline of computer science_section_6

Outline of computer science_unordered_list_5

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

Computer graphics Outline of computer science_section_7

Outline of computer science_unordered_list_6

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

Concurrent, parallel, and distributed systems Outline of computer science_section_8

Outline of computer science_unordered_list_7

  • Parallel computing - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.Outline of computer science_item_7_27
  • 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.Outline of computer science_item_7_28
  • 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.Outline of computer science_item_7_29

Databases Outline of computer science_section_9

Outline of databases Outline of computer science_sentence_4

Outline of computer science_unordered_list_8

Programming languages and compilers Outline of computer science_section_10

Outline of computer science_unordered_list_9

Scientific computing Outline of computer science_section_11

Outline of computer science_unordered_list_10

Software engineering Outline of computer science_section_12

Outline of software engineering Outline of computer science_sentence_5

Outline of computer science_unordered_list_11

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

Theory of computation Outline of computer science_section_13

Main article: Theory of computation Outline of computer science_sentence_6

Outline of computer science_unordered_list_12

History Outline of computer science_section_14

Outline of computer science_unordered_list_13

Professions Outline of computer science_section_15

Outline of computer science_unordered_list_14

Data and data structures Outline of computer science_section_16

Outline of computer science_unordered_list_15

Programming paradigms Outline of computer science_section_17

Outline of computer science_unordered_list_16

See also Outline of computer science_section_18

Outline of computer science_unordered_list_17

Credits to the contents of this page go to the authors of the corresponding Wikipedia page: en.wikipedia.org/wiki/Outline of computer science.