ホームページ目次2011-06-08(前)2011-06-10(次)

プログラミングの基本である再帰の勉強にはパズルが最高

2011年6月9日

プログラムの勉強で、非常に基本的なものの1つに再帰、リカーシブ・コールがある。 リカーシブ・コールが使いこなせないようでは、何も勉強していないようなものだ。 再帰が分からないプログラマは使い道がない。

実際、世の中の構造の多くが再帰的になっていて、それらを処理するプログラムは、 ごく自然に作れば再帰になるのだ。

ということで、再帰についての練習が行われるわけだ。 しかし、その内容が、階乗、フィボナッチ数列、ハノイの塔で終わってしまっては、再帰を理解するところまで至っていない。 せめて、フラクタルな線とかにして欲しい。 プログラム例としては、ファイルの検索などが容易でありながら実用的であり、 フォルダ/ディレクトリ全体を舐めるようなプログラムくらいは基礎の基礎として教えなければいけない。

あるいは、数式の計算とか、さらにはインタープリタ/コンパイラなどでどう再帰が使われるか、 ちょっとコンパイラでも作って遊んで欲しいものだ。 他にも、いろいろなところで使われているのだ。

しかし、あまりにも実用的な世界でやろうとすると、複雑になってしまうので、 わかりやすい内容で、短時間に実現可能で、再帰を使うと非常に効果的な世界をプログラミング教材として用意する必要がある。

と考えると、パズルは非常に良い素材である。 やるべき目標ががはっきりしているので、どうでもよい雑用に時間を潰さず、再帰の本質に触れられる。

そんなことあって、 Cパズルプログラミング-再帰編を公開している。 Cで、再帰のプログラムを書くことで、パズルを解いてしまおうという内容である。 あまり長くなるものは、用意するのも大変だし、読むのも大変だろうからと思い、 比較的短くて、効果的なパズルを選択したつもりだ。

再帰を使えば、プログラムが自然に書けることに慣れてしまえば、実際の問題、仕事などでの応用もできるであろう。


ホームページ目次2011-06-09(前)2011-06-10(次)