2024年10月20日日曜日

高校生のプログラミング試験


高校生にとって「情報」という科目が必要になってきた。

その中でもプログラミングにひとつの山がある。
その山がなかなか越えられない学生がいる。

趣味でプログラミングに取り組んでいる生徒ならまだしも
普通の学生にとっては、色々な勉強の中での一教科だもの、専門に取り組むものでもない。

そこで、基本的な知識を基にして複雑なプログラミングに面することになる。

教科としてのプログラミングは、二つの要素を持っている。

・自分でプログラムを作る能力
・人のプログラムを読み解く能力

さて、エンジニアとして40年間、趣味の時期を加えればそれ以上プログラミングに接してきた私の体験としては、

まず若き日、マイコンを自作し、それに載せるプログラミングを覚えた。
そう、私は自分でプログラミングを作るところから始めた人間である。

そして、他人のプログラムを参考にしながら、そのテクニックを自分のプログラムに取り込みながらプログラミング内容を向上させてきた。

ちなみに、私は20代の頃、プログラミング講師の経験もある。
その時は、自分よりも年上の大学教授などにも教えていたものだ。

そうなると、「なんで動かないんでしょう?」「どうしてこんな結果になるのでしょう?」

そんな質問をぶつけられる。
他人の作ったプログラムのデバッグ作業が求められることになる。

経験者なら絶対に思うはずだ。
「他人のプログラムのデバッグなんて、、、やりたかね~よっ。」
他人のプログラムは、その人のクセのようなものがふんだんに盛り込まれている。

# 自分で作りなおしたい!っていう心の叫び

プログラミングは、絶対にこうでなければならない、というものでもないので
ある意味正しい結果が出れば、とりあえずは正解としていいものでもあると思う。

効率が悪くても、最近はマシンスピードがカバーしてくれるし、
必要に応じて改善していけばいい。

ところが、高校生の情報で取り扱うプログラミング能力とは、先程の後者の

・人のプログラムを読み解く能力

が試される。

そりゃ確かに内容は簡単かもしれないけれど、

# 専門にしてる人にとっては、、、さ。

プログラミングの経験が極めて少なく、机上での知識でその作業をさせるのは、あまりにも酷な気がしてならない。

世の求めているのは、プログラミング思考なの?
人のプログラムを読み解く技術なの?

より大切なのは、私はプログラミング思考の方だと思うんだがな。

いやなに、今日言いたかったこと、、、

プログラムは、“作る”より、“人のプログラミングの読み解く”方が簡単だろ、と思っている人は、大間違いだぞっ!

と私は思うのである。



P.S

まぁ、試験の出題側もテーマを出して、その解答のプログラムを書かれても、きっとすぐに採点できまい。

そもそも採点者側も学生の作った机上のプログラムの中身なんか見たくもなかろう。

で、結局、出題者側のクセのこもったプログラムを読み取れるかどうかの試験となる。

なんだか、、、学生が不憫でならない。