2010年11月17日水曜日

初心者向けプログラミング指導に求められること

プログラミングネタが続いていますが、これはプログラミングの時間が長いからです。

プログラミングの指導をするときに、大抵はプログラミングは初めて、という人が対象になります。私が1から説明をするようならば、大抵プログラミングに対して興味を持っている人です。この1から説明する場合に、一体何を教えればよいかということは、毎回考えるところです。

私は、一貫して次のスタイルで教えています。
・プログラミングは理論的なものだが、書かねば上達しない点は他の語学や体育と同じである。したがって、十分な量を読み、書くことを取り入れる。
・アルゴリズムがわからなければプログラムは組めない。アルゴリズムについての基礎知識をごまかすことなく説明し、自ら考えてアルゴリズムを立てられるようにする。
・プログラムの説明には絶対に妥協を入れず、「おまじない」という教え方は避ける。丸暗記で書くプログラムは無駄である。

いずれの考え方も、広範に受け入れられる考え方だと思います。第1の言語を教えるときにはその文法を教えることよりも、パラダイムやアルゴリズム、あるいはデータ構造といった「その言語に限らず多数の言語で把握しておくべき概念」に重点を置きます。通読的に学ぶ場合、アルゴリズム等はプログラミングが出来るようになってから学んだほうが理解が進みます。しかし、通読的に学ぶというのは、プログラミングを通読的に学んだ後にやらなければならないですし、それまではつまらない文法練習というのでは楽しみも感じられません。そこで、ある程度のアルゴリズムについて、通読的ではないにせよ、それなりの段階まで(プログラマとしての素養と言えるだろうレベルまで)、問題演習等を通じて教えることにしています。

初心者向けプログラミング指導は理論のみであったり、文法の手早い説明であったりする必要はないと思います。むしろ、多くの実践を取り入れて、時間はかかってもプログラミングを実践で学び、その楽しさを知ってもらうことが大切だと考えます。

「かじりに」来る人達、必要に応じて、必要な部分だけ、手早く済ませられればいいと考えて質問に来る人達にもその思考を応用出来ればと思います。けれどもまだ力不足で、何とか教えられればと悔しい思いをしています。

0 件のコメント: