コンピューターサイエンスはアルゴリズムについてであり、コンピューター(および電子機器)についてではありません(厳密に)。
そのため、アルゴリズムの研究(初等算術の場合でも)は、コンピューターサイエンスとプログラミングの理解をもたらすことができます。「アルゴリズム」という用語でさえ、算術の本の著者の言い換えであることに注意してください(al-Khwārizmī、およそ 9セント。CE)。
アルゴリズムの研究は基本的な手段を使用して行うことができますが、アルゴリズムがなぜ機能するのか、それがどのように生じたのか、そしてそれが実際に正しく機能することを実際にどのように実証できるのかをカバーする必要があります。
コンピュータサイエンスとアルゴリズムとプログラミングの進化の背後にある3つの歴史を過小評価してはなりません。たとえば、Babbage / Adaの計算機、Enigmaマシン、Konrad Zuseのplankalkul、ENIACなど。
次に、アルゴリズムを形式化する方法としてプログラミング(およびプログラミング言語)を導入できます。これは、基本的な手段を使用して(大幅に)行うこともできます。
注:いくつかの研究では、人々の学習プログラミングには理解の2つの主な困難があることが示されています(たとえば、割り当て対等性テストおよびRAMマシンの動作などのシンボルのオーバーロードに関連)。
- ループ構造(for、whileなど)は難しいようです
- 割り当てと同等性のテストも難しいようです。
したがって、これらが人々に明確に把握され理解されていることを確認できます。
さらに、コンピューターにアクセスできる場合(プログラム可能な計算機でさえ)、これを使用して、アプリケーションの例と実践的な経験を提供できます。それ以外の場合は、シミュレートされたコンピューターを使用できます。これはさまざまな方法で行うことができます。たとえば、人々のグループがコンピューターの一部をシミュレートし、クラスがこのシミュレートされたコンピューターのさまざまな問題を解決するアルゴリズムを設計し、それがどうなるかを確認できます。これは、ゲームとしても見ることができ、創造的でメイクをします。
次に、いくつかの(抽象的な)計算モデル(Turing Machinesなど)を導入し、アルゴリズムに関する以前の資料や(プログラミング)言語への形式を関連付けることができます。
実際のコンピューターの電子機器を導入したい場合、これは2つの部分で行うこともできます。
大学であっても、一部の電子工学およびコンピューターアーキテクチャコースは理論的なものであることに注意してください(実際にCPUと接触したり設計したりすることはありません)。
そのため、コンピューターアーキテクチャに関連する電子機器(および基礎となる物理学)の動作原理(半導体、固体エネルギーゾーン、p-npゲートなど)を導入できます。
次に、プログラミングとアルゴリズムに関する以前の資料を活用し、業界で使用されているCPU設計(および説明)(ロジックゲート、フリップフロップ、FPGA、VHDL、CMOS回路など)の(最新の)テクニックを紹介します。
これは、並列処理、パイプライン処理、キャッシュメモリ、ベクトルアドレス指定、マイクロプログラミング、DMAなどのCPU設計アーキテクチャの問題にさらに取り入れることができます。
まあ、これは多すぎるかもしれませんが、答えを自己完結させるために追加されました。