« 学校のプライバシーポリシー | トップページ | SPAMフィルタリング »

2005年7月29日 (金)

プログラミングについて

初等中等情報教育におけるプログラミングの扱いが悲惨な状態にあることは、多くの研究者には知られている。だが、実際の学校の先生方はどのように思っているのだろうか?もし、プログラミングを教えなさいということになれば、改めてそれを学ばなければならなくなるので、面倒だと思うに違いない。

もし、高等学校でプログラミングを教えてくださいということになったとき、いったいどんな言語を用いればいいだろうか?マイクロソフトしか使ったことない人は、VBを本格的に学ぼうということになるのだろうか。あるいはエクセルのVBマクロを学ぼうという話になるかもしれない。

昔からプログラミングの入門として常識的だったBASIC言語であるが、いまは処理系を入手することが簡単ではないといわれているし、仮に入手できたとしても、プロテクトモードで動作しているPCの一つのメモリ環境の中でのインタープリタでしかないから、いわば「まねごと」のような環境でプログラムを作らざるを得ないということになる。それでも、やらないよりはずっとましかもしれない。

さて、いったい何のために高校でプログラミングを学ぶのかということを考え直してみると、その理由の一つに「アルゴリズムを理解するため」というのがあることがわかる。もちろん、アルゴリズムを学ぶことは非常に重要である。しかし、プログラミングの例に限らず、しばしば多くの教育者が誤った道をたどる。それは「Aを学ばせたいときはAを教えればいい」というものである。教育はそんなに簡単なものではない。学んでほしいことをそのまま教えることよりも、学んで欲しいことの準備を教えてモチベーションを高めることの方が近道だと思う。アルゴリズムを教えるとアルゴリズムが身に付くというものではない。

話を元に戻そう。

アルゴリズムを学ぶために最適な言語って何だろうか。PrologとかLispも魅力的ではあるが、一方で、BASICのような安直系言語も捨てがたい。僕はBASICで数千行のプログラムを自力で書いた。それは、N88BASICで動く通信ソフトである。通信ソフトを買うお金がなかったので、自分で作った。そのときに、変数管理、変数スコープ、簡単なスタックを配列で実現する、漢字コード変換、ハードウェアbusy時の対応、ファイル保存IO、モデムとのハンドシェークプロトコル、エスケープシーケンスなどいろいろなことを独学した。(当時、僕は数学科の1年生でした。)でも、いまは JavaScript が初心者向きなのかな。

ま、ここは研究「雑」報なので、こんなところで今日はおしまい。

|

« 学校のプライバシーポリシー | トップページ | SPAMフィルタリング »

コメント

Commented by 中西 at 2005-07-30 00:03
BASICの安直さは魅力だと思います。本校では去年はOOoのマクロの空所補充的なことをさせましたが,今年はyabasicで普通にBASICしました。

Commented by ttmtko at 2005-07-30 22:42
>>中西さん
BASICなら、高校生くらいなら楽勝…って予想するんですが、いかがでしょうか?

Commented by 中西 at 2005-07-30 23:01
そうでもないです。BASICがどうということよりもアルゴリズムの部分で,たとえば単純な変数の値の交換にしても説明してるときには一応了解はしたものの自分では書けないという者も多いです。だからこそせめて余計なことを考えずに済むBASICがいいな,と。

Commented by だきわ%原稿かけん at 2005-07-31 09:14
文書処理と情報の表現の文章が書けないです。だめだこりゃ。

雑感ですが、高校生で楽勝だと思う生徒はC#とか使える生徒です。全員に教えるのであれば、確かにいろいろ考えなくてもいいのはCよりはBASICだなあ、と思います。Windowsであれば、処理系は簡単に手に入りますし、書籍も結構出ています。
#文系の生徒でも(だからこそ?)数学Bの教科書に載っているぐらいだとすごく興味があると言ってくる生徒もあります。

Commented by ttmtko at 2005-07-31 09:25
>>中西さん
自分も昔BASICを教えたことがあるのですが、変数を「数学と同じように」扱うととまっちゃいますよね。「変数とは『箱の名前』」を教えると、わりとついてきてくれた記憶があります。

>>だきわさん
文系でも「興味がある」と言ってくる生徒がいるんでしょ?やっぱり、楽勝じゃないですか〜。

全員が楽勝ってことはあり得ないとは思います。

それより、原稿よろしくです。(って、なんの原稿?)

Commented by だきわ at 2005-07-31 21:05
ええと、○善の辞典の原稿です。完成を遅くしているのは私です。ごめんなさい。原稿半分書けました。あと6時間で4000字です。まあ大丈夫?
文系でも彼は硬式野球部なので夏が終わらないと興味持ってくれないのです。
ちなみにもう夏は終わったのですが,如何せん授業がないのです。

Commented by ttmtko at 2005-08-01 09:43
>>だきわさん

そうですか。僕もサイ○ス社の情報倫理本が、なかなか原稿進まない状況です。お互い、締切と床屋にだけは追いかけられたくないものです。(意味不明)

Commented by だきわ%都内某所 at 2005-08-01 12:50
締め切りはもうこりごりです。
都内で某センターの研修会に参加者として出ています。
何とか徹夜して朝無理やり変なところもあるけど完成としました。やっぱり追い詰められないとやらない性分というのはあかんですね。
#これから大きな直しが入ると思います。○善に夕方から行ってきます。

奥さんから東京に行く前に床屋に行ってこいと突っつかれました。(行ってませんが)

Commented by だきわ at 2005-08-14 08:27
http://dbp.cool.ne.jp/program/purebasic/purebasic.htm
http://d.hatena.ne.jp/Fio/20050814
ひょんなことからPureBasicというのを知りました。今まで知らなかったのが悔やまれます。いきなりDLLを呼び出せたりと、VBよりもかなり安直なソースを書ける感じです。専門「情報」辺りで使ってもいいかな、と思いました。

Commented by ttmtko at 2005-08-14 09:34
PureBasic って、僕も知りませんでした。たしかに機能が高そうですが、よくみると59ユーロなんですね。個人で使うのならいいんですが、学校でたくさんのPCにインストールして使うには、どうすればいいのかなぁ?とか思ったり…。

僕は、最近知り合いに TinyBASIC を勧めました。
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/index.html

MS版しかないのが残念ですが、処理系そのものは良さそうですよ。

投稿: 中西, だきわ and me | 2005年10月 9日 (日) 10:31

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/140645/6317679

この記事へのトラックバック一覧です: プログラミングについて:

« 学校のプライバシーポリシー | トップページ | SPAMフィルタリング »