ブロックベースのプログラミング環境は、多くの学生にとってますます最初のコーディング体験となりつつあります1。コンピュータ サイエンスのコースやカリキュラムを導入および拡大し始める学校が増えています。 最も人気のあるブロックベースのプログラミング言語の 1 つは、Scratch2() と呼ばれます。 毎日 1,500 を超える新しいプログラミング プロジェクトが Scratch サイト3にアップロードされています。 VEXcode 自体は Scratch ブロックを利用しています。
Scratch の作成の背後にある主な動機の 1 つは、多くの若い学生がテキストベースのプログラミング言語でのプログラミングが難しすぎると感じていることです4。これらの学生は入力と構文の両方を習得するのが難しいと感じているからです。 その結果、ブロックベースのプログラミング言語は未就学児程度の年齢の生徒向けに設計されていますが、ほとんどは 8 歳から 16 歳までの生徒向けに設計されています。 VEXcode を含むブロックベースのプログラミングは、プログラマーにとっていくつかのがあります。
- 読みやすさ:ブロックベースのプログラミング言語には、テキストベースのコマンドよりもはるかに読みやすいコマンドがあります。
- 記憶:ブロックベースのプログラミング言語では、すべてのコマンドがユーザーに表示されます。 テキストベースのプログラミング言語では、多くの場合、コマンドを記憶する必要があります。 さらに、ユーザーはテキスト コマンドに関連付けられた構文を記憶する必要があります。 ブロックベースのコマンドに関連付けられた構文はありません。
- タイピング/スペル:低学年の生徒はキーボードの使用に苦労しています。 テキストベースのプログラミング言語では、スペルミスはコンパイラ エラーになります。 ブロックベースのプログラミング言語ではドラッグ アンド ドロップを使用します。 したがって、タイピングやスペルの習得は必要ありません。
初心者ユーザーにとってブロックベースのプログラミング言語を使ってプログラミングを始める方が簡単であることが証明されていますが、ブロックベースの言語がコンピューター サイエンスの概念を教えるのに効果的かどうかを問うことは依然として重要です。 簡単に言うと、「はい」です。 研究によると、ブロックベースのプログラミング言語は、アルゴリズム、変数、条件付きロジック、コード理解などのコンピューター サイエンスの概念を教えるのに効果的であることがわかっています6。
もちろん、ブロックベースのプログラミング言語の使用にはいくつかの欠点があります。 たとえば、生徒はブロックの使用が「本物の」学習体験ではないと感じることがあります7。 言い換えれば、実際のプログラマはブロックを使用しません。 これは心に留めておくべき重要な側面ですが、テキストベースのプログラミング言語が初心者プログラマにもたらす、十分に文書化された課題を心に留めておくことも重要です。
私たちは教育者として、生徒の変化に応じて概念を教えるために使用するツールも変化することを知っています。 数学はK大学で教えられています。 1 年生を教えるために使用されるツールは、大学の 3 年生を教えるために使用されるツールとは大きく異なります。 研究によると、ブロックベースのプログラミング言語は初心者にとって使いやすく、コンピューター サイエンスの重要なトピックを教えるのに効果的な手段であることがわかっています。 ただし、これは、学生が常にブロックベースのプログラミング環境に留まる必要がある、あるいはそうする必要があるという意味ではありません。 むしろ、あるプログラミング モダリティ、ブロックまたはテキストが、本質的に他のよりも優れているわけではない、という結論を導き出す方がよいでしょう。 どちらがあなたの教室に適しているかは、教育者としての快適さのレベルと生徒の準備の両方によって決まります。 生徒が掛け算の事実を習得する速度が異なるのと同じように、ブロックを使ったプログラミングを他の生徒よりも早く習得する生徒もいます。 テキストベースのプログラミングを始める機会により、生徒は興味を持ち、挑戦し続けることができます。 VEXcode や Text などのツールを使用すると、各生徒を個別の指導レベルに合わせて対応できます。