Yahoo!知恵袋に見る初等プログラミング教育のダメさ加減

2009/06/04

この頃,Yahoo!知恵袋のC言語カテゴリをじと見してるんですけれど,プログラミングの教え方が根本的におかしいと思うことがあります。ここで教えるというのは,Yahoo!知恵袋での回答ではなくて,宿題を出している先生の話。

Yahoo!知恵袋のプログラミングカテゴリ(特にC言語とJava)が,学校の宿題を丸投げするところになっているのは周知の通りです。ま,それはそれで丸投げする本人の問題だから知ったこっちゃないんですけれど,問題だと思うのはこの宿題の傾向。

C言語で言うとこんなの。どこで流行ってる風習なんだろう。

  • gets(3) を平気で使う

  • scanf(3) を平気で使う

  • strcpy(3) を平気で使う

  • ヘッダファイルの作り方とかどこで知るんだろう

  • ユーザのパラメタ指定は基本的に対話形式

gets(3) をはじめとした文字列長をチェックしない標準関数は,セキュリティ的に問題ありまくりなので,普通はまず使いません。こゆのをいまだに教えるのは問題だと思う。また,プロトタイプのないプログラムが多いんだけれども,ヘッダの作り方とかまで教えているんだろうか。

さらに,これは常日頃疑問に思っているんですけれど,なんでコマンドラインのパラメタ指定が,いつも対話形式(標準入力から入力を逐一求める形式)なんだろう……。コマンドラインのパラメタ指定は,コマンド引数で与えるのが主流で,対話形式のアプリケーションは,むしろ少ないですよね。コマンド引数を指定させないから,int main(void) みたいな,変な main 関数が出回るんじゃないだろうか,とも。

うちの会社の新人君にしてもそうなんですけど,なんか変な癖を付けて入ってくる人が結構いる感じ。どこが火種なんだろうと思ってたんですけど,ここなんだろうか。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.