2010年9月10日金曜日

英語6年、数学3年、プログラミングはわずか1年

であきらめてしまう。
学生は中学高校と6年間通じて英語を学ぶが、それでも英語は習得できない。
それにはいろいろな理由が挙げられているが、理由はともかくその認識は広く普及している。
英語で話す内容がないのであって、話せないわけではないという反論もあるが、実際話せない人は非常に多い。
むしろ話せる人の方が例外といえる。これは実態であり、現実だ。
英語が6年かけて出来ないことを、なぜ半年か1年のプログラミング言語ならすらすら書けるようになると思うのだろう。
もちろん授業を受けている学生にはプログラムを書くという夢があり、そのために授業を受ける。
しかも大学も書けるようにするために授業をする。しかし、実際にはなかなか上達しない。
プログラミング言語も英語と同じだ。上達するには訓練が必要だ。
しかし、今のプログラミング教育では文法を教えるだけに終始してしまう。
正確には基礎教育としてのプログラミングは文法の習得にとどまる。
本来、そこから次のステップとして専門教育としてのプログラミングが始まる。
しかし、その過程が抜け落ちている。いきなり座学になったり、他の専門科目の片手間になる。
応用問題は分野や科目ごとに異なるので片手間であっても、それぞれに任せる必要があるだろう。
しかし、一般的な手法まで抜け落ちているのが実情だ。
話が脱線したが、問題は期待と実際のギャップが大きいことだ。
英語だって最初は勉強すれば話せるようになると信じていただろう。
しかし、やってみるとかなり難しいことが分かり、6年続けてあきらめの境地に達したのだろう。
もっとも中学はともかく、少なくとも高校で行われているのは受験英語であり、話すための実用英語ではない。
これはある意味で免罪符となっている。それでは大学で実用英語に切り替わりすぐに話せるようになるかといえば、それはない。
実際、できる人はますますできるようになり、できない人はさらに忌避するようになる。
6年間の間に適性がはっきりしてきてしまったのだ。あるいはやる気がうせてしまったかだが、やる気が維持できることも適性の反中だろう。
6年かけて判断した適性を、プログラミング言語に関してはわずか半年で判断して、見切りをつけてしまうのはどうしたことだろう。
中学に入学して初めて英語を習った時、半年で何ができたか考えてみるとよい。
ここまでプログラミングと英語を比較してきたが、どちらかといえば数学のほうが近い。
数学に関しては中学の3年で見切りをつけ、高校では文系と理系に分かれる。しかし、これもあきらめがよすぎる。それを社会も助長させている傾向がある。あまり感心できない。
実際には、文系の経済学部で下手な工学部より高度な数学が使われることもある。数学の試験のない経済学部などありえないだろう。
文法主義の英語では、教わった文法に合わせて意味の通る文を構成する。このような方法ではリアルタイムに話すのは難しい。
このような構成法は英語よりむしろ数学でこそ使われる。
数式で問題の意味を表現する。この方法が実はプログラミングそのものといえるほど近い。特に関数型プログラミングではほとんど同じといってよい。そこにアルゴリズムを少し加えればプログラムになる。
表現された数式から答えを導くために中学・高校の6年間が費やされている。
特に受験数学では正確な導出が要求される。
この過程はプログラミングではアルゴリズムに該当する。問題の解き方がわからないとき、6年かけて解き方を習ってきた。
大学入学時にはある程度の解き方の技術が身に付いているはずだ。しかし、問題の解き方とプログラミングのアルゴリズムはなかなか一致しないようだ。
もちろん人間の思考法と機会に与える手順の差はある。
それでも簡単な問題に対しては自分で解き方を導く訓練は受けてきたはずだ。それが応用できていない。
つまり本質は応用できないことだ。
これは受験数学に明け暮れ、文章問題をおろそかにしてきた付けだろう。新学力基準で日本が国際的な水準から遅れてきているのはそのためだ。
これがプログラミングにも影響している。
つまり、プログラミングは実際に答を導出する過程ではなく、問題を表現する過程であるからだ。これは文章問題に他ならない。
そして実社会の問題はほとんど文章問題だ。
この根深い欠陥を1年で矯正できるはずがない。したがって、1年であきらめるのは早すぎる。
総合的なレベルアップが必要だ。

0 件のコメント: