記事一覧

2009年頭の体操……だけどこれでいいのか、センターテスト!

今年もセンターテストの時期になりました。

 新聞をスクラップしていると、今年の問題も載っています。

 別項でも書きましたが、「学生の学力は本当に落ちているのか?」「勉強は簡単になっているのか?」を確かめるために、こういった実際の問題をやってみるのも一興でしょう。

 まだ問題が解けるか少し心配でしたが、数学の問題を解いてみました。

 新聞から取り込んだものなので、少し見にくいですが、興味のある方はごらんになってください。
 
 ま、だいたいこんなモノです。

 まず第1問の1ですが、オーソドックスに因数分解ですね。↓

 回答欄で、yの係数が1であることと、数字が1桁(あるいは0)であるのがわかるので、まあ、それほど難しくないでしょう。

 しかし、第1問の2!

 これは参った。わたしは論理思考ができないので、昔からこの手の問題が苦手だったのです。

 二次不等式の解法はともかく、命題の否定はつらい。

 えーと、ド・モルガン?なんて考えながら、なんとか正解できました。

ファイル 315-1.jpg

 第2問は、二次関数のグラフの頂点問題?です。

 昔から、このテの問題と積分を使った回転体体積なんかは大好きでした。

 平方完成すれば、あとは計算力だけですね

ファイル 315-2.jpg

 あと、外接円と三角形で余弦定理などを使う問題があって、最終的なわたしの結論は

「センターテストの数学は数十年前から変わっていない」

でした。

 もう少し、簡単な小問を一番に配した方が良いような気もしますが。

 しかし!

 ひとつ、非常に気がかりなモノを見つけてしまいました。

 最近の高校のカリキュラムについて、わたしは無知なのですが、センターテストの後半、選択問題にプログラム問題があったのです。(たぶんイマドキの常識なのでしょうが)↓

 えー、でも、これってBASIC?

 プログラマがもっとも陥ってはいけない、どこにどうプログラム・フローが流れているか分からなくなる『スパゲッティ・プログラム』の温床、「GOTO文」が堂々と問題に使われています。

ファイル 315-3.jpg

 ところで、みなさん「スパゲッティ・プログラム」ってご存じですか?

 数十年前、わたしがプログラムを始めたころは、ゲームなど、まだテープ・ベースで供給され(ミニ・フロッピィすらまだなかった。石器時代だねこりゃ)、ほどんどのパソコン好きは、雑誌I/Oなどに掲載されるBASIC+マシン語のプログラムを手打ちで入力していました。

 後学のために、入力しつつ、どうなっているのか自分なりに解析するのですが、そこはプログラムを書いているのが大学生や高校生などの素人の悲しさ、処理の流れが、あっちへ飛び、こっちへ戻り、と、まるで皿の上のスパゲッティが絡まるように、すっきりしないものが大半で、あまり勉強にはなりませんでした。

 後に、DELPHI(つまりPASCAL)を知った時、ある処理をまとめ、パッケージ化されたプログラム(サブルーチン)がきれいな塊にまとまらず、その結果、プログラムが「あっちへ飛び、こっちへ飛んで」分かりにくくなる一番の原因は、元の流れに帰ってくることを前提としない、行きっぱなしが可能な「GOTO文」にあることを知りました。

 PASCALではGOTO文を基本的に使わないのです。

 BASICにも、本流に戻ってくる「GOSUB文」はあるのですが、なぜか初学者には説明されません。

 プログラム言語学者の間では「初学者に、安易にGOTO文を教えるべきではない」といわれています。

 ある処理を行ったあと、必ず元の流れに戻ってくるのが、わかりやすい、つまりバグの少ないプログラムを書くための必須事項なのです。

 しかし、センターテストでは、GOTO文が出題されています。

 ということは学校の授業で、それをメインに習っているのでしょう。

 GOTO文って、初心者に教えやすいのかなぁ。

 わたしは、呼び出すと数値を返してくれる「関数呼び出し」の方がわかりやすいと思うのだけど。

 だいたい、GOTO文は、あとあと役に立たないのです。

 たとえば、ある学生が、WEBアートに目覚めてFLASHを使い始める。

 少し凝った動作をさせようとすると、ACTIONSCRIPTを使わなければりません。

 しかし、そこにGOTO文などないのです。

 世の中のほとんどのプログラム言語は、数多く用意された「サブルーチン:関数群」を組み合わせてプログラムを作るのです。

 あとあと役に立たない、しかも、「分かりやすくバグの少ないプログラム」の根幹を揺るがすGOTOコマンドを大学入試問題に使って良いのかなぁ。

 個人的に、わたしは、GOTO文を多用する「BASICの普及」こそは、数あるMicrosftの悪行の代表的なものだと思っています。

 それに、他の選択問題に比べたら、なんだか簡単過ぎるような気もするなぁ。

 かつての共通一次の「倫社・政経」ではありませんが、分野によって難易度が変わるのは、よくないでしょう。

 ですから、高校教育では、一刻も早くBASICをやめ、PASCALやC言語(は、ちょっと偏っているからなぁ)を採用して欲しいと思うのですが、この流れはかわらないかな。

 プログラムについては、「オブジェクト指向」や「クラスの継承」、C言語における初学者挫折のトリデ「ポインタ」などを、この「コンピュータのことども」に、文魂理才(別項にて説明)目線で優しく書いていきたいと考えています。

トラックバック一覧

コメント一覧