[Computer science - Wikipedia](https://en.wikipedia.org/wiki/Computer_science)
> コンピュータサイエンスは、計算、自動化、情報に関する学問である([What is Computer Science? - Computer Science, University of York](https://www.cs.york.ac.uk/undergraduate/what-is-cs/)より引用)。アルゴリズム、計算理論、情報理論などの理論的な分野から、ハードウェアやソフトウェアの設計・実装などの実践的な分野まで幅広くカバーしている。コンピュータサイエンスは一般に学術研究の分野と考えられ、コンピュータプログラミングとは区別されている。
> **アルゴリズムとデータ構造**はコンピュータサイエンスの中心と呼ばれている。**計算理論**は、計算の抽象的なモデルと、それを使って解くことができる問題の一般的なクラスに関するものである。**暗号とコンピュータセキュリティ**は、安全な通信のための手段を研究し、セキュリティの脆弱性を防止する。コンピュータグラフィックスと計算幾何学は、画像の生成について研究しています。プログラミング言語理論では、計算プロセスの記述方法について、データベース理論では、データの保管管理について研究しています。ヒューマンコンピュータインタラクションは、人間とコンピュータが相互作用する際のインターフェースについて研究し、ソフトウェア工学は、ソフトウェア開発の設計と原理について研究しています。オペレーティングシステム、ネットワーク、組み込みシステムなどの分野では、複雑なシステムの背後にある原理と設計を研究しています。コンピュータアーキテクチャは、コンピュータのコンポーネントやコンピュータで動作する機器の構造について説明します。人工知能と[[機械学習]]は、人間や動物に見られる問題解決、意思決定、環境適応、計画、学習などの目標志向のプロセスを統合することを目的としています。人工知能の中でも、コンピュータビジョンは画像や映像データの理解と処理を、自然言語処理はテキストや言語データの理解と処理を目的としています。
> コンピュータサイエンスは、その名前に「サイエンス」が入っているにもかかわらず、科学、数学、工学のいずれかの分野であるかどうかという議論がある。アレン・ニューウェルと[[ハーバート・A・サイモン]]は1975年にこう主張した。
>> コンピュータ・サイエンスは経験的な学問(empirical discipline)である。私たちはこれを実験科学(experimental science)と呼んでいますが、天文学、経済学、地質学と同様に、そのユニークな観察・体験の形態には、実験手法の狭い固定観念に当てはまらないものもあります。それでも、それらは実験なのだ。新しい機械が作られるたびに、実験が行われる。実際に機械を作ることは、自然に対して質問を投げかけることであり、我々は機械の動作を観察し、利用可能なあらゆる分析・計測手段によってそれを分析することによって、その答えに耳を傾けるのである。
[The Philosophy of Computer Science (Stanford Encyclopedia of Philosophy)](https://plato.stanford.edu/entries/computer-science/#EpisStatCompScie)より引用
## Fields
- Theoretical computer science
- Theory of computation
- Information and coding theory
- Data structures and algorithms
- Programming language theory and formal methods
- Computer systems and computational processes
- Artificial intelligence
- Computer architecture and organization
- Concurrent, parallel and distributed computing
- Computer networks
- Computer security and cryptography
- Databases and data mining
- Computer graphics and visualization
- Image and sound processing
- Applied computer science
- Computational science, finance and engineering
- Social computing and human–computer interaction
- Software engineering