私は高校でプログラミング クラブを運営しており、C++ の単純なクラスを使用して生徒に OOP を紹介しました。少なくとも理論的には、彼らはその考えを理解していると思います。彼らが一緒に取り組むことができる特定のプロジェクトを彼らに提供できるようにしたいと思います. 私が抱えている問題は、どのアプローチを取るかです。大学でプログラミングの授業を受けたとき、2 つの異なるアプローチを見ましたが、私の意見では、どちらにも深刻な欠点がありました。私はそれらのほとんどを熟睡し、本や例から独学で学びました。私が先生の立場になったので、どのアプローチが望ましいか、または 3 番目の選択肢があるかどうかについて、意見を求めたいと思います。
使用されたアプローチ 1 は、ボード (または投影スクリーンを備えたコンピューター) にプログラムを書き込むことでした。クラス定義は常に最初に記述されます。通常、学生はこの時点で当惑しているように見えます。なぜなら、変数とメソッドの目的が彼らにはまったくわからないように見えるからです。各変数とメソッドの目的とそれらがどのように相互作用するかについて彼らが学んだのは、インストラクターが最終的に実装を作成したときだけでした (私はこれをアウトサイドイン メソッドと呼びました)。
アプローチ 2 は、達成しようとしていることを説明し、必要に応じてクラスとメンバーを作成することでした。これには逆の問題があります。彼は、後で実装する必要があるこれらの架空のクラスを使用するメソッドを作成していました。しかし、生徒たちは、これらの他のクラスがどのように機能するかわかりません。