Blockly チームには、教育アプリケーションの設計に関する長年の経験があります。以下に、独自の教育アプリケーションの設計に役立つ可能性のある、学んだことをいくつか示します。
空欄補充式の演習よりも自由形式の演習を優先する
特定のコンセプトを教えるために設計された演習では、多くの場合、生徒が望ましい効果を得るために変更する必要がある部分的な解決策が提示されます。これをサポートするために、編集不可、移動不可、削除不可のブロックのクラスが Blockly に作成されました。しかし、生徒はこれらの空白補充演習を嫌っていました。ソリューションに対する所有権意識がない。
同じコンセプトを教える自由形式の演習を設計するのは、より困難です。成功が実証されている手法の一つは、1 つの演習で生徒が考えた独自の解決策を、次の演習の出発点として使用することです。
推奨事項: ユーザーのコードは記述しないでください。
永続的な指示を使用する
Blockly Games は、教師やレッスンプランを必要とせず、自習できるように特別に設計されています。そのため、最初のバージョンの Blockly Games では、各レベルに手順が記載されていました。ほとんどの生徒は読まないでしょう。これらのメッセージは 1 文にまとめ、フォントサイズを大きくし、黄色のバブルでハイライト表示しました。ほとんどの学生は読まないでしょう。手順を記載したモーダル ポップアップを作成しました。ほとんどの生徒は、ポップアップを読みもせずに直感的に閉じてしまい、迷子になりました。
最後に、閉じることができないポップアップを作成しました。生徒の操作をモニタリングし、生徒が必要な操作を行った場合にのみ閉じるようにプログラムされています。コンテキストに応じたポップアップはプログラミングが難しいですが、非常に効果的です。また、ワークスペースを妨げることなく視界に入るようにすることも重要でした。
推奨事項: 手順は短く、繰り返し表示されるものの、煩わしくない内容にする必要があります。
ヘルプでライブブロック画像を使用する
ブロックのドキュメントには、参照しているブロックの画像を含める必要があります。スクリーンショットは簡単に撮影できます。ただし、このような画像が 50 個あり、アプリケーションが 50 の言語に翻訳されている場合、突然 2,500 個の静的画像を維持することになります。その後、カラーパターンが変更され、2,500 枚の画像を再度更新する必要があります。
このメンテナンスの悪夢から抜け出すために、Blockly Games ではすべてのスクリーンショットを、読み取り専用モードで実行される Blockly のインスタンスに置き換えました。結果は写真とまったく同じに見えますが、常に最新の状態です。読み取り専用モードにより、国際化が可能になりました。
推奨: 複数の言語をサポートする場合は、読み取り専用モードを使用します。
生徒の退出戦略を用意する
多くの場合、プログラミングの開始点はブロックベースのプログラミングです。コンピュータ プログラミングを教える文脈では、学生を中毒にさせてから、より難しいことに移行させるゲートウェイ ドラッグです。このブロックベースのプログラミング期間をどのくらい続けるべきかについては議論が交わされていますが、プログラミングを教える目的であれば、一時的なものにする必要があります。
そのため、プログラミングの指導に使用するブロックベースのプログラミング環境には、生徒に適したオフランプが必要です。Blockly Games には次の 4 つの戦略があります。
- ブロック内のすべてのテキスト(「if」、「while」など)は、テキストベースのプログラミング言語と一致するように小文字で記述します。
- 生徒のコードが JavaScript バージョンで各レベルの後に常に表示されるため、コードに慣れることができます。
- 最後のゲームでは、ブロック テキストは実際の JavaScript に置き換えられています(右側を参照)。この時点で、生徒は JavaScript でプログラミングしています。
- 最終的なゲームでは、ブロック エディタがテキスト エディタに置き換えられます。
プログラミングの教育に使用されるブロックベースのプログラミング環境には、生徒の卒業に向けた具体的な計画が必要です。堅実な終了戦略は、ブロックベースのプログラミングが「本物のプログラミング」ではないと主張する人々を納得させるうえでも大きな役割を果たします。
推奨事項: ユーザーの最終目標を考慮して適切に設計します。