

コンピューティングとは、コンピューティング機器を必要とする、利用する、または作成する、あらゆる目標指向的な活動のことである。[ 1 ]これには、アルゴリズム処理の研究と実験、およびハードウェアとソフトウェアの両方の開発が含まれる。コンピューティングは、科学的、工学的、数学的、技術的、および社会的な側面を包含する。主要なコンピューティング分野には、コンピュータ工学、コンピュータ科学、サイバーセキュリティ、データ科学、情報システム、情報技術、およびソフトウェア工学が含まれる。[ 2 ]
コンピューティングという用語は、計数や計算とも同義です。以前は、機械式計算機によって行われる動作を指して使われていましたが、それ以前は、人間の計算機を指していました。[ 3 ]
計算の歴史は、コンピュータハードウェアの歴史よりも古く、表の有無にかかわらず、ペンと紙(あるいはチョークと石板)を用いた計算方法の歴史も含まれています。計算は数値の表現と密接に結びついていますが、計算に必要な数学的概念は、数字体系が確立される以前から存在していました。計算に用いられた最も古い道具はそろばんで、紀元前2700年から2300年頃にバビロンで発明されたと考えられています。より現代的なデザインのそろばんは、今日でも計算ツールとして使用されています。
デジタルエレクトロニクスをコンピューティングに利用するという最初の記録された提案は、1931年のCE Wynn-Williamsによる論文「物理現象の高速自動計数のためのサイラトロンの使用」である。[ 4 ]続いて、 Claude Shannonの1938年の論文「リレーおよびスイッチング回路の記号解析」で、ブール代数演算にエレクトロニクスを使用するというアイデアが導入された。
電界効果トランジスタの概念は、 1925 年にJulius Edgar Lilienfeldによって提案されました。John BardeenとWalter Brattain は、ベル研究所でWilliam Shockley の下で働いていたときに、 1947 年に最初の動作可能なトランジスタである点接触トランジスタを製作しました。 [ 5 ] [ 6 ] 1953 年に、マンチェスター大学は最初のトランジスタ式コンピュータであるManchester Baby を製作しました。[ 7 ]しかし、初期の接合型トランジスタは比較的かさばるデバイスで、大量生産が困難であったため、いくつかの特殊な用途に限定されていました。[ 8 ]
1957年、フロッシュとデリックはベル研究所で最初の二酸化ケイ素電界効果トランジスタを製造することに成功した。これはドレインとソースが表面で隣接している最初のトランジスタであった。[ 9 ]その後、 1960年にベル研究所のチームが動作するMOSFETを実証した。 [ 10 ] [ 11 ] MOSFETによって高密度集積回路の製造が可能になり、[ 12 ] [ 13 ]コンピュータ革命[ 14 ]またはマイクロコンピュータ革命[ 15 ]として知られるものにつながった。
コンピュータは、コンピュータプログラムと呼ばれる一連の命令に従ってデータを操作する機械です。[ 16 ]プログラムには、コンピュータが命令を直接実行するために使用できる実行可能な形式があります。同じプログラムを人間が読めるソースコード形式で使用することで、プログラマはアルゴリズムと呼ばれる一連の手順を研究および開発できます。[ 17 ]命令はさまざまな種類のコンピュータで実行できるため、単一のソース命令セットは、 CPUの種類に応じて機械語命令に変換されます。[ 18 ]
実行プロセスは、コンピュータプログラム内の命令を実行します。命令は、コンピュータが行う計算を表します。命令は、実行マシン上で一連の単純な動作を引き起こします。これらの動作は、命令の意味に従って効果を生み出します。
コンピュータハードウェアには、中央処理装置、メモリ、入出力など、コンピュータの物理的な部分が含まれます。[ 19 ]計算論理とコンピュータアーキテクチャは、コンピュータハードウェアの分野における重要なトピックです。[ 20 ] [ 21 ]
コンピュータソフトウェア、または単にソフトウェアとは、コンピュータに指示を与えるコンピュータプログラムと関連データの集合体です。ソフトウェアは、コンピュータのストレージに格納されている 1 つ以上のコンピュータプログラムとデータを指します。これは、データ処理システムの操作に関するプログラム、手順、アルゴリズム、およびそのドキュメントのセットです。 [ 22 ]プログラムソフトウェアは、コンピュータハードウェアに直接指示を与えるか、別のソフトウェアへの入力として機能することによって、実装するプログラムの機能を実行します。この用語は、古い用語であるハードウェア(物理的なデバイスを意味する)と対比するために作られました。ハードウェアとは対照的に、ソフトウェアは無形です。[ 23 ]
ソフトウェアという言葉は、より狭義に、アプリケーションソフトウェアのみを指す場合にも使われることがある。
システムソフトウェア、またはシステムソフトウェアとは、コンピュータハードウェアを操作および制御し、アプリケーションソフトウェアを実行するためのプラットフォームを提供するように設計されたコンピュータソフトウェアです。システムソフトウェアには、オペレーティングシステム、ユーティリティソフトウェア、デバイスドライバ、ウィンドウシステム、ファームウェアが含まれます。コンパイラ、リンカ、デバッガなどのよく使用される開発ツールは、システムソフトウェアに分類されます。[ 24 ]システムソフトウェアとミドルウェアは、コンピュータの機能を管理および統合しますが、アプリケーションソフトウェアとは異なり、通常はユーザーに利益をもたらすタスクの実行に直接適用しません。
アプリケーションソフトウェア(アプリケーションまたはアプリとも呼ばれる)は、ユーザーが特定のタスクを実行するのに役立つように設計されたコンピュータソフトウェアです。例としては、エンタープライズソフトウェア、会計ソフトウェア、オフィススイート、グラフィックソフトウェア、メディアプレーヤーなどがあります。多くのアプリケーションプログラムは主にドキュメントを扱います。[ 25 ]アプリはコンピュータとそのシステムソフトウェアにバンドルされている場合もあれば、別々に公開されている場合もあります。バンドルされているアプリで満足し、追加のアプリケーションをインストールする必要がないユーザーもいます。システムソフトウェアはハードウェアを管理し、アプリケーションにサービスを提供し、アプリケーションはユーザーにサービスを提供します。
アプリケーションソフトウェアは、特定のコンピューティングプラットフォームまたはシステムソフトウェアのパワーを特定の目的に適用します。Microsoft Officeのような一部のアプリは、複数の異なるプラットフォーム向けに複数のバージョンで開発されています。その他のアプリは要件が狭く、一般的には動作するプラットフォームで呼ばれます。たとえば、Windows用の地理アプリケーション、教育用のAndroidアプリケーション、Linux ゲームなどです。1 つのプラットフォームでのみ動作し、そのアプリケーションの人気によってそのプラットフォームの魅力を高めるアプリケーションは、キラーアプリケーションとして知られています。[ 26 ]
コンピュータネットワーク(単にネットワークと呼ばれることも多い)は、リソースや情報の共有を可能にする通信チャネルによって相互接続されたハードウェアコンポーネントとコンピュータの集合体です。 [ 27 ] 1 つのデバイス内の少なくとも 1 つのプロセスが、リモート デバイスに存在する少なくとも 1 つのプロセスとの間でデータを送受信できる場合、その 2 つのデバイスはネットワーク内にあると言われます。ネットワークは、データの転送に使用される媒体、使用される通信プロトコル、規模、トポロジ、組織的範囲など、さまざまな特性に基づいて分類できます。
通信プロトコルは、コンピュータネットワーク内で情報を交換するためのルールとデータ形式を定義し、ネットワークプログラミングの基礎を提供します。よく知られている通信プロトコルの1つはイーサネットで、これはローカルエリアネットワークで広く使われているハードウェアおよびリンク層標準です。もう1つの一般的なプロトコルはインターネットプロトコルスイートで、これはインターネットワーキング、つまり複数のネットワーク間のデータ通信、ホスト間データ転送、およびアプリケーション固有のデータ伝送形式のためのプロトコルセットを定義します。 [ 28 ]
コンピュータネットワークは、これらの分野の理論的および実践的な応用に基づいているため、電気工学、電気通信、コンピュータ科学、情報技術、またはコンピュータ工学のサブ分野とみなされることがあります。[ 29 ]
インターネットは、数十億のユーザーにサービスを提供するために標準インターネットプロトコルスイート(TCP/IP)を使用する相互接続されたコンピュータネットワークのグローバルシステムです。これには、ローカルからグローバルまでの範囲にわたる数百万のプライベート、パブリック、学術、ビジネス、および政府ネットワークが含まれます。これらのネットワークは、さまざまな電子、無線、および光ネットワーク技術によって接続されています。インターネットは、ワールドワイドウェブの相互リンクされたハイパーテキスト文書や電子メールをサポートするインフラストラクチャなど、広範囲の情報リソースとサービスを提供しています。[ 30 ]
コンピュータプログラミングとは、コンピュータプログラムのソースコードとドキュメントを作成、テスト、デバッグ、保守するプロセスです。このソースコードはプログラミング言語で記述されます。プログラミング言語は、自然言語よりも制約が多いことが多い人工言語ですが、コンピュータによって容易に翻訳できます。プログラミングは、マシンから望ましい動作(カスタマイズ)を引き出すために使用されます。[ 31 ]
高品質なソースコードを作成するには、コンピュータサイエンスの分野と、アプリケーションが使用される分野の両方の知識が必要です。そのため、最高品質のソフトウェアは、多くの場合、各開発分野のスペシャリストであるドメインエキスパートのチームによって開発されます。[ 32 ]ただし、 「プログラマー」という用語は、ハッカーからオープンソースの貢献者、プロフェッショナルまで、さまざまなプログラム品質に適用される可能性があります。また、1人のプログラマーが、新しいキラーアプリケーションをリリースするための概念実証を生成するために必要なコンピュータプログラミングの大部分またはすべてを行うことも可能です。[ 33 ]
プログラマー、コンピュータプログラマー、またはコーダーとは、コンピュータソフトウェアを作成する人のことです。コンピュータプログラマーという用語は、コンピュータプログラミングの特定の分野の専門家を指す場合もあれば、多くの種類のソフトウェアのコードを作成するジェネラリストを指す場合もあります。プログラミングに正式なアプローチを実践または公言する人は、プログラマーアナリストとも呼ばれることがあります。[ 34 ]プログラマーの主要なコンピュータ言語(C、C++、Java、Lisp、Pythonなど)は、上記の肩書きの前によく付けられ、Web 環境で働く人は肩書きの前にWebを付けます。プログラマーという用語は、ソフトウェア開発者、ソフトウェアエンジニア、コンピュータ科学者、またはソフトウェアアナリストを指す場合にも使用できます。ただし、これらの職業のメンバーは通常、プログラミング以外のソフトウェアエンジニアリングのスキルも持っています。[ 35 ]
コンピュータ産業は、コンピュータソフトウェアの開発、コンピュータハードウェアとコンピュータネットワークインフラストラクチャの設計、コンピュータコンポーネントの製造、およびシステム管理や保守を含む情報技術サービスの提供に関わる企業で構成されています。[ 36 ]
ソフトウェア業界には、ソフトウェアの開発、保守、および公開に携わる企業が含まれます。また、トレーニング、ドキュメント作成、コンサルティングなどのソフトウェアサービスも含まれます。
コンピュータ工学は、コンピュータのハードウェアとソフトウェアを開発するために必要な電気工学とコンピュータ科学のいくつかの分野を統合した学問分野です。 [ 37 ]コンピュータエンジニアは通常、ソフトウェア工学や電子工学だけではなく、電子工学(または電気工学)、ソフトウェア設計、ハードウェアとソフトウェアの統合の訓練を受けています。コンピュータエンジニアは、個々のマイクロプロセッサ、パーソナルコンピュータ、スーパーコンピュータの設計から回路設計まで、コンピューティングの多くのハードウェアとソフトウェアの側面に関わっています。この工学分野には、その領域内のハードウェアの設計だけでなく、ハードウェアとそれが動作するコンテキストとの相互作用も含まれます。[ 38 ]
ソフトウェアエンジニアリングとは、ソフトウェアの設計、開発、運用、保守に体系的、規律的、定量化可能なアプローチを適用すること、およびこれらのアプローチを研究することです。つまり、ソフトウェアにエンジニアリングを適用することです。[ 39 ] [ 40 ] [ 41 ]これは、洞察を使用して問題に対するソリューションを構想、モデル化、拡張する行為です。この用語が最初に言及されたのは1968年のNATOソフトウェアエンジニアリング会議で、当時認識されていたソフトウェア危機について考えを喚起することを目的としていました。 [ 42 ] [ 43 ] [ 44 ]広く使用されているより一般的な用語であるソフトウェア開発は、必ずしもエンジニアリングパラダイムを包含するものではありません。エンジニアリング分野としてのソフトウェアエンジニアリングの一般的に受け入れられている概念は、ソフトウェアエンジニアリング知識体系ガイド(SWEBOK)で規定されています。SWEBOKは、ISO/IEC TR 19759:2015で国際的に受け入れられた標準となっています。[ 45 ]
コンピュータ科学または計算科学(略称CSまたはComp Sci)は、計算とその応用に対する科学的かつ実践的なアプローチです。コンピュータ科学者は、計算理論と計算システムの設計を専門としています。[ 46 ]
その下位分野は、コンピュータシステムにおける実装と応用に関する実践的な技術と、純粋に理論的な分野に分けられます。計算複雑性理論のように、計算問題の基本的な特性を研究する分野は非常に抽象的ですが、コンピュータグラフィックスのように、現実世界の応用を重視する分野もあります。また、計算の実装における課題に焦点を当てる分野もあります。例えば、プログラミング言語理論は計算の記述方法の研究であり、コンピュータプログラミングの研究はプログラミング言語と複雑なシステムの利用を研究します。人間とコンピュータのインタラクションの分野は、コンピュータと計算を人間にとって有用で、使いやすく、普遍的にアクセス可能にするための課題に焦点を当てています。[ 47 ]
サイバーセキュリティの分野は、コンピュータシステムとネットワークの保護に関係しています。これには、情報とデータのプライバシー、 ITサービスの中断の防止、ハードウェア、ソフトウェア、データの盗難と損傷の防止が含まれます。[ 48 ]
データサイエンスは、データ量の増加とデータ利用可能性の向上を背景に、科学的および計算ツールを使用してデータから情報と洞察を抽出する分野です。[ 49 ]データマイニング、ビッグデータ、統計学、機械学習、ディープラーニングはすべてデータサイエンスと密接に関連しています。[ 50 ]
情報システム(IS)とは、人々や組織がデータを収集、フィルタリング、処理、作成、配布するために使用する、ハードウェアとソフトウェアの補完的なネットワーク(情報技術を参照)の研究である。[ 51 ] [ 52 ] [ 53 ] ACMのComputing Careersでは、ISを次のように説明している。
IS(情報システム)の学位プログラムの大部分はビジネススクールに設置されていますが、経営情報システム、コンピュータ情報システム、ビジネス情報システムなど、異なる名称が付けられている場合もあります。すべてのIS学位はビジネスとコンピューティングのトピックを組み合わせていますが、技術的な問題と組織的な問題のどちらに重点を置くかはプログラムによって異なります。たとえば、必要なプログラミングの量はプログラムによって大きく異なります。[ 54 ]
IS の研究は、情報と計算の理論的基盤を使用して、コンピュータ科学の分野内でさまざまなビジネス モデルと関連するアルゴリズムプロセスを研究することで、ビジネスとコンピュータ サイエンスを結びつけます。 [ 55 ] [ 56 ] [ 57 ]コンピュータ情報システム (CIS) の分野は、コンピュータとアルゴリズム プロセスを、その原理、ソフトウェアとハードウェアの設計、アプリケーション、社会への影響を含めて研究しますが[ 58 ] [ 59 ]、IS は設計よりも機能性を重視します。[ 60 ]
情報技術(IT)とは、コンピュータや通信機器を応用してデータを保存、検索、送信、操作することであり、[ 61 ]多くの場合、企業やその他の事業の文脈で行われます。[ 62 ]この用語は一般的にコンピュータやコンピュータネットワークの同義語として使用されますが、テレビや電話などの他の情報配信技術も包含します。コンピュータハードウェア、ソフトウェア、電子機器、半導体、インターネット、通信機器、電子商取引、コンピュータサービスなど、いくつかの産業が情報技術と関連しています。[ 63 ] [ 64 ]
DNA ベースのコンピューティングと量子コンピューティングは、量子アルゴリズムの開発など、コンピューティング ハードウェアとソフトウェアの両方で活発に研究されている分野です。将来のテクノロジーの潜在的なインフラストラクチャには、フォトリソグラフィー上のDNA オリガミ[ 65 ]やイオン トラップ間で情報を転送するための量子アンテナ[ 66 ]が含まれます。2011年までに、研究者は14 個の量子ビットをエンタングルしました。[ 67 ] [ 68 ]ジョセフソン接合と高速単一磁束量子技術に基づくものを含む高速デジタル回路は、ナノスケール超伝導体の発見により、より実現可能になりつつあります。[ 69 ]
光ファイバーやフォトニック(光)デバイスは、すでに長距離のデータ伝送に使用されており、CPUや半導体メモリコンポーネントとともにデータセンターで使用され始めています。これにより、光インターコネクトによってRAMとCPUを分離することが可能になります。[ 70 ] IBMは、電子情報処理と光情報処理の両方を1つのチップに集積した集積回路を開発しました。これはCMOS集積ナノフォトニクス(CINP)と呼ばれています。[ 71 ]光インターコネクトの利点の1つは、以前は特定の種類のシステムオンチップ(SoC)を必要としていたマザーボードが、以前は専用だったメモリコントローラとネットワークコントローラをマザーボードから外し、コントローラをラック上に分散させることができるようになったことです。これにより、複数のタイプのSoCに対してバックプレーンインターコネクトとマザーボードを標準化することができ、CPUのよりタイムリーなアップグレードが可能になります。[ 72 ]
もう一つの研究分野はスピントロニクスです。スピントロニクスは、熱の蓄積なしに計算能力とストレージを提供できます。[ 73 ]フォトニクスとスピントロニクスを組み合わせたハイブリッドチップに関する研究もいくつか行われています。[ 74 ] [ 75 ]プラズモニクス、フォトニクス、エレクトロニクスを組み合わせる研究も進行中です。 [ 76 ]
クラウドコンピューティングは、サーバーやアプリケーションなどのコンピューティングリソースを、これらのリソースの所有者とエンドユーザー間のやり取りを必要とせずに使用できるモデルです。通常はサービスとして提供されるため、提供される機能に応じて、サービスとしてのソフトウェア、サービスとしてのプラットフォーム、サービスとしてのインフラストラクチャの例となります。主な特徴としては、オンデマンドアクセス、広範なネットワークアクセス、および迅速なスケーリング機能があります。[ 77 ]個人ユーザーや小規模企業が規模の経済の恩恵を受けることができます。
この分野で注目されている点の1つは、エネルギー効率の向上に貢献できる可能性です。数千台の個別のマシンではなく、1台のマシンで数千もの計算処理を実行できるようにすることで、エネルギーの節約につながります。また、数百万世帯やオフィスではなく、1つのサーバーファームを再生可能エネルギーで稼働させるだけで済むため、再生可能エネルギーへの移行も容易になります。[ 78 ]
しかし、この集中型コンピューティングモデルは、特にセキュリティとプライバシーの面でいくつかの課題を抱えています。現行法では、企業が自社サーバー上でユーザーのデータを不適切に取り扱うことからユーザーを十分に保護できていません。これは、クラウドコンピューティングとテクノロジー企業に対するさらなる法規制の可能性を示唆しています。[ 79 ]
量子コンピューティングは、コンピュータ科学、情報理論、量子物理学の分野を統合した研究分野です。物理学の一部としての情報の概念は比較的新しいものですが、情報理論と量子力学の間には強い結びつきがあるようです。[ 80 ]従来のコンピューティングは1と0のバイナリシステムで動作しますが、量子コンピューティングはキュービットを使用します。キュービットは重ね合わせ、つまり1と0の両方の状態に同時に存在することができます。したがって、キュービットの値は1と0の間ではなく、測定するタイミングによって変化します。キュービットのこの特性は量子もつれとして知られており、量子コンピュータが大規模な計算を実行できるようにする量子コンピューティングの中核的なアイデアです。[ 81 ]量子コンピューティングは、分子モデリングなど、従来のコンピュータでは必要な計算を実行するための計算能力がない場合に、科学研究によく使用されます。巨大分子とその反応は、従来のコンピュータでは計算するには複雑すぎるが、量子コンピュータの計算能力は、そのような計算を実行するためのツールを提供する可能性がある。[ 82 ]
{{cite journal}}ISBN /日付の不一致(ヘルプ)MOSFETの比較的シンプルな構造と低消費電力は、今日のマイクロコンピュータ革命を促進してきた。
コンピュータ システム エンジニアリングは、従来、電子工学 (EE) とコンピュータ サイエンス (CS) の両方の組み合わせとして見なされてきました。
最初のNATOソフトウェアエンジニアリング会議のアイデア、特に当時ほとんど知られていなかった
ソフトウェアエンジニアリング
という用語を(意図的に挑発的な)タイトルとして採用するというアイデアは、もともと
フリッツ・バウアー
教授から出たものだと私は考えています。
コンピュータサイエンスの領域:コンピュータサイエンスは人間が作った情報処理と自然界の情報処理の両方を扱っているが、この分野における主な取り組みは、人間が作った処理、特に情報処理システムと機械に向けられてきた。
クレムソン大学は芸術と科学を融合させた(大学院)学位プログラムを設立しました。このプログラムの学生は全員、芸術とコンピュータサイエンスの両方で大学院レベルの課程を修了する必要があります。
科学的学問分野であると結論付けました。
。コンピュータサイエンスは、理論的基礎から大規模ソフトウェアプロジェクトの管理といった実践的な側面まで、コンピュータシステムのあらゆる側面を研究する学問です。
情報システムの設計、開発、実装を学び、システムアプローチを用いてビジネス上の問題を解決することに関心のある学生に選択肢を提供することでした。
備えた設計プロセスが必要です...他のコンポーネントのソフトウェアへの接続と、システム全体の設計におけるそれらの役割は重要ですが、ソフトウェア集約型システムの中核的な考慮事項はソフトウェア自体であり、設計を体系化するための他のアプローチはまだ「ソフトウェア問題」を解決していません。これは、ソフトウェア設計が科学的に理解されるまで解決されません。