SSブログ

プログラミングの基本問題集 [プログラム]

 4年生の卒論で、初心者向けのプログラミング学習を考える場合、どのような項目が必要になるかを調査するというテーマで研究している学生がいる。とりあえず、言語を問わず、初心者向けのプログラミングのテキストをいろいろ集めて、そこから「練習問題」を抽出した資料集を作った。

実際に集めてみようとすると、一冊のテキストから抜き出せる練習問題は決して多くないことが分かった。また説明はしているが、例題という形にもなっていないものも多い。前にも書いたが、実際にはプログラミングの学習は、練習、練習、また練習、基礎練習を毎日欠かさずに、という姿勢が大切だ。説明を聞いて分かっても、何らかの問題を解くことができるようになるには、その間のギャップが非常に大きいのである。

 それでも何冊かのテキストから横断的に問題を集めたら、それなりの量になった。さらに僕の昨年度の授業用プリントにも、相当数の練習問題が含まれているので、それからも収集した。

 次には、それを整理・分類し、似たような問題をまとめていくことで、初心者がプログラミングを学習するときに、何を身に付けたらいいか、何を理解したらいいかの範囲が分かってくるのではないか、というのが、先の学生のテーマである。実際に考えただけでも、パターンはすぐに出てくるだろう(それについての予想は、以前、このブログでも書いた。)。

 今、ここで言いたいのはそのことではなく、その学生が集めたテキストの言語は、Pythonだけではなく、C言語やJava言語、Perlなど複数のものに及んでいるが、その問題を取り敢えず、Pythonで全部解いていくことにした。こうして、かなりの量の問題を解いてみると、最初は一つ一つの問題を解くのに難儀していたのに、徐々に一人で問題を解いていけるようになった。

 初心者の学生に教えていると、かれらは説明したら理解できるし、もちろん、例題として挙げられているプログラムを入力しても動かし、そのプログラムを(一応)理解したと思っている。しかし、いざ、応用問題を出すと、しばらくは問題の前で少しもプログラムを入力していけず、それでは駄目だと思って、取り敢えず断片的な、これまでどこかで出てきた変数なりの式を書いてみたりする。しかし、それはそのプログラムにとって必要なものでもなく、いや、そもそも意味も不明な、単に覚えていた断片を繋ぎ合わせてみた、というだけのものを書き出したりする。しかも続けてではなく、1行ほど難儀して書いて、再び指を止めて、眺め始める。

 つまり、ゼロからプログラミング言語で何かを考え解決していくのが大変難しい。これを乗り越えるには、「理解」するだけでは駄目で、経験をたくさん積むことが必要なのである。しかも、たまに経験するだけではなく、毎日続けることで、カンと腕を鈍らせないようにしておく必要がある。

 そのためにたくさんの練習問題が必要なのである。そのことを分かっているテキストは少ない。というか初心者向けにはほとんどない。有名な本でもそうだ。『初めての何とか』という類の本でも、長い章の最後に3題くらい問題がついているだけだ。そうではなく、説明よりも問題を解かせているうちにできるようになる。できるようになってから、復習として説明を加える、そういう方が上達する。

 ということは、やはり、他人の本に頼らず、自分でプログラミングの教科書を作らなければならない、ということなのだろう。そのために問題を集めている学生の作った資料を使わせてもらうことにしよう。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。