memorandums

日々のメモです。

大学におけるソフトウェア設計教育

今期、PHPを用いたWebアプリケーションの設計とプログラミングの教育を実践しています。少しそのあたりをご紹介します。

受講生は情報学科の3年生です。受講する学生さんは1,2年次でC言語、Javaの小規模なプログラム経験を積んできていますが、統合的なアプリケーションの開発経験はありません。

ソフトウェア設計を理解するには、複数のモジュールからなるある程度の規模のソフトウェアを土台とする必要があります。しかし、1,2年次の基礎的なプログラミングではそうした機会がありません。かといって、一から中規模なソフトウェアを作り上げる力はまだありません。

そこで考えました。

実務でもそうですが、新しい技術を学ぶときには、先人が公開しているサンプルプログラムを入力して動作を理解したり、自分の目的にあわせて改変すると思います。それを授業で実践しようと考えました。具体的には、以下のステップです。

1週目:サンプルプログラムの入力とデバッグ

2週目:サンプルプログラムの入力とデバッグ(続き)

3週目:設計ポイントの解説と1,2週目で作成したWebアプリケーションの仕様変更

サンプルプログラムを手で入力することは一見、時間のムダとも言えますが、ある程度の長さのプログラムであれば入力ミスが必ずあります。もちろん、そのプログラムは正常に動作しません。サンプルプログラムと自分の入力プログラムを比較して”ニラメッコ”することになります。プログラム構造を理解しないうちはニラメッコが唯一のデバッグ手段となります。しかし、そのうちに(もちろんそうするように指導していますが)プログラムの仕様や動きを理解し、その情報にそってprintデバッグする道を体得していきます。

もちろん、長大なプログラムを入力させられ、かつ、誤りを修正するデバッグ作業を喜んでやっている学生はわずかですが、真面目にソースを読むことになりますから、プログラム構造を体で理解することができ、かつ、デバッグ力の基礎を身につけることができると考えています。

この方法が本当に正しいのかは、彼ら・彼女らが社会に出てからでないと証明できませんが、少なくとも、私の経験上、プログラミングおよびソフトウェア設計ができるようになる1つの正しい道だと考えています。