学生の教師として、スクラッチ、ロゴ、アリス、レゴのマインドストームなどの「ミニ言語」が、変数、関数、ループなどのプログラミングのコアコンセプトを生徒に教えるのにどれほど効果的であるかに非常に興味があります。
これらの基本的なコアコンセプトを教えるために、ある「ミニ言語」は別の「ミニ言語」よりも優れていますか?
学生の教師として、スクラッチ、ロゴ、アリス、レゴのマインドストームなどの「ミニ言語」が、変数、関数、ループなどのプログラミングのコアコンセプトを生徒に教えるのにどれほど効果的であるかに非常に興味があります。
これらの基本的なコアコンセプトを教えるために、ある「ミニ言語」は別の「ミニ言語」よりも優れていますか?
あなたが教えている子供たちの年齢にもよりますが、私はPythonのようなより単純な言語を使います.
これは、すべての基本を教える無料の本で、約 200 ページの長さです: http://www.greenteapress.com/thinkpython/thinkpython.html
これは非常に難しい質問です。Logo と Smalltalk (明白な例を 2 つ挙げるだけ) は、どちらも元々、子供たちにプログラミングを教えるために特別に設計されたものです。しかし、すぐに問題にぶつかります。小さな子供が完全に理解できるほどシンプルでありながら、すぐに制限されて不器用になるのを避けるのに十分なほど豊富な言語を定義するのは難しいのです。
少なくとも私が見た限りでは、ほとんどの試みは両方の点でうまく機能していません。ほんの一例として、ほとんどの場合、コードを英語のように読みやすくするために冗長性を含めようとします (例: ロゴの「To:」)。多くの場合、子供はキーボード操作のスキルが十分に低いため、そのような冗長性は苛立たしいものです。彼らはまた、(私の経験では) 構文の一部が英語のように見える場合、その言語は他の有効な英語も受け入れる必要があることを期待しています (他の言語のネイティブ スピーカーにも同じことが当てはまると思いますが、私の経験は主に英語を話す人)。
同時に、ほとんどの子供たち (私が一緒に仕事をしたことがある) は、ミニ言語の制限にすぐに気付くようになります。そのいくつかは、おそらく上記のフラストレーションから生じています。興味深くやりがいのある演習を考え出す際に、教師 (少なくとも一部) の想像力の欠如に起因するものもあります。20 年前と比べると、今はもっと難しいと思いますが、当時の子供たちは、カメのグラフィックで何が描けるかに興奮していました (一例として)。今日、彼らは写真のようにリアルな 3D グラフィックスを使ったゲームに慣れており、直線から 2D の「バラ」を描くことは、基本的に不自由だと感じる人が多いようです。
どの「ミニ言語」を使うかはあまり問題ではないと思います。しかし、基本以上のことを説明する予定がないのであれば、「本物の」言語ではなく、本物のミニ言語にとどまるほうがよいと思います。public static void main
基本を (Java で) 学んだとき、それが何を意味するのかを本当に知らずに覚えなければならないことに、本当にイライラしました。そのため、オーバーヘッドができるだけ少ない言語を選択します。どの言語を選択するかは、生徒の年齢によって異なります。
かなりの数の可能性がありますが、最終的にこの種の質問は「味」に大きく関係しています。ただし、いくつかの理由から、このスキームは本当に良い選択だと思います。1 つは、非常にミニマリストな言語であり、物事を複雑にする構文がほとんどないことです。もう 1 つは、scheme が計算に関する非常に基本的なことを表現しているように感じ、それを非常に明確に表現しているように感じることです。もう 1 つは、Scheme を非常に「マルチパラダイム」な方法で使用できることです。Scheme で関数型プログラミング、または命令型プログラミングを行うことができます。また、Scheme 用のオブジェクト システムをゼロから構築するのも非常に簡単です。単純なシステムを 100 行未満のコードで言語に移植できます。多くのライブラリを持つScheme実装もいくつかありますが、
最後に、Scheme で優れた教育資料を開発することに多大な注意が払われています。「The Structure and Interpretation of Computer Programs」は当然のことながら古典と見なされていますが、その中の多くの資料は幼い子供にはかなり難しいと思います (MIT の次期新入生を対象としていました)。 「プログラムの設計方法」などの資料: http://www.htdp.org/ htdp で本当にはっきりとわかることの 1 つは、Scheme の最小限の構文を使用すると、重要なアイデアをすぐに理解できることです。
第一言語としてのSchemeの主な欠点は、最近広く使われている言語のほとんどがSchemeとあまり似ていないことです。でも、特に子供にとっては、核となるアイデアを得ることが最初に最も重要なことだと思う傾向があります.