2007.06.17 Sunday
プログラミング実習 (C言語)
放送大学の面接授業に参加してきた。16、17日の2日間で、5枠の授業だ...要するに、1枠2時間15分が5回なので、...16日13:05〜20:30、17日13:05〜17:55...と、けっこうヘビーだ。
授業は、プログラミング実習。 元々、年に1単位くらいは、面接で取ろうと思っていただけで、今学期は特に良いものも無く、以前からちょっと興味のあった物をたまたま見つけて登録してみたまでだ。コレと狙った訳ではなかった。
それに、プログラミングに興味が有る、というわけではなく、特に今回の主題となる、C言語は、世にUNIXシステムが現れてきた頃(20年以上前だね...)から、仕事で接してきた処理系なので、いまさら言語を学ぶというものでもない。どちらかと言うと、僕らの様に仕事で致し方なく学んできた人間とは異なり、学問として学ぶ際にはどのような学び方があり、どのような理解の方法があり、どのようにそれを学生に伝えているのか、という所に興味が沸いたのだ。
担当の先生は、横浜国大の影井先生という方で、「横浜国立大学 大学院環境情報学府・研究院」で「影井研究室」を持っていらっしゃる。
今回の授業内容は、その研究室の学生相手にプログラミングの基礎を教える時に使うカリキュラムのようで、研究室HPにある、情報処理概論(物質工学科) とほぼ同じ内容であった。
放送大学は、2時間15分を5回で1単位としているので、今回の授業はこの情報処理概論の1〜11までを80%ほどの濃度で、2日間でこなすという内容だったので、深いところまでは入って行ける物でもない。
参加人員は、15名ほど。神奈川学習センターの実習室(コンピュータルーム)を7割ほど埋める感じ。年齢は、僕でもさほど上ではない...クラスの平均年齢を押し上げる程の年齢でもない...ようで、逆に若い人は少ない。まぁ、もともと放送大学は若い人が極端に少ないので、致し方ないが。
使用した処理系は、お約束のVisualStudioで、バージョンは最新版ではなく.Net(なので、2003か?)のProfessionalEdition(のおそらくアカデミー版)という辺りは、教育機関らしいそろえ方だ。はじめ、パソコン(WindowsXP)を立ち上げてログインすると、Cygwinが入っていたので、それで授業を行うのかと思っていたけど、予想が外れてちょいとガッカリした。どうも、僕は古いUNIXユーザーなので、学校や研究機関というとUNIXを使っている、という頭があるのは、いけない傾向なんだろう。
さて、その興味の行方だけど、やっぱり言語処理系の教育というのは、先生にとっても不毛な努力のようで、のらりくらりと授業を展開していった。と言って、不真面目と言う訳でないのだけど、問題解決の手法としてのプログラミングの学習は、不毛であるかのような発言がかなりあった、と言うことだ。
当然ながら、僕の業界でも、先生の主催する研究室のような所でも、コンピュータの言語処理系という物は、何かを実現する、もしくは研究する為の手段でしか無い訳だから、その手段を使う方法を学ぶというのもなんだか変な話しなのだ。一般的には、仕事をする為に、方法を何年にも渡って学ばなくてはならない、というのはあまり無い。それがゆえにコンピュータ業界の技術者は、あまり技術者的ではなく、大工のような、職人のような印象が有る。なので本来であれば、その本質を見抜くほどの知識を持っているように思いがちだけど、実際には言語処理系の学習に裂くべき時間なんか、ほとんど無く、深みを知る技術者は少ない。大学生も、このような授業に半年も裂くのはもったいない話しだなぁ、と思う。
要するに、プログラミング言語というのが、歴史的に難しすぎる、と言うことなんだと思う。特に、C言語となると、UNIX発祥の時期から、構造化アセンブラと呼ばれてきたわけで、たとえ現代のVisualStudioのC++言語処理系となったとしても、さほどその性格は変わってはいないので、基本的にはアセンブラを意識しながらのプログラミング作業となる。結果的に、H/Wを知らないといけない。当然ながら、OSやその他の制御構造も知っておかないと、多くの問題解決の場面で、迷宮に迷い込むことになる。
このことを、先生は、「プログラミングの勉強、コンピュータの動作原理の勉強は、きりが無いほど深く、複雑で、広大。よって、判らない事が起きたら、その奥を知る必要は、ほとんど無く、見てみぬふりをする勇気が無いと、目的を達成する事は出来ない。」と、表していたのが、印象的。
まぁ、やっぱり大学でも同じ様な事を考えている事が判った訳で、半分は単位消化のために参加したようなところのある授業だったけど、努力は無駄では無かったかも知れない。
授業は、プログラミング実習。 元々、年に1単位くらいは、面接で取ろうと思っていただけで、今学期は特に良いものも無く、以前からちょっと興味のあった物をたまたま見つけて登録してみたまでだ。コレと狙った訳ではなかった。
それに、プログラミングに興味が有る、というわけではなく、特に今回の主題となる、C言語は、世にUNIXシステムが現れてきた頃(20年以上前だね...)から、仕事で接してきた処理系なので、いまさら言語を学ぶというものでもない。どちらかと言うと、僕らの様に仕事で致し方なく学んできた人間とは異なり、学問として学ぶ際にはどのような学び方があり、どのような理解の方法があり、どのようにそれを学生に伝えているのか、という所に興味が沸いたのだ。
担当の先生は、横浜国大の影井先生という方で、「横浜国立大学 大学院環境情報学府・研究院」で「影井研究室」を持っていらっしゃる。
今回の授業内容は、その研究室の学生相手にプログラミングの基礎を教える時に使うカリキュラムのようで、研究室HPにある、情報処理概論(物質工学科) とほぼ同じ内容であった。
放送大学は、2時間15分を5回で1単位としているので、今回の授業はこの情報処理概論の1〜11までを80%ほどの濃度で、2日間でこなすという内容だったので、深いところまでは入って行ける物でもない。
参加人員は、15名ほど。神奈川学習センターの実習室(コンピュータルーム)を7割ほど埋める感じ。年齢は、僕でもさほど上ではない...クラスの平均年齢を押し上げる程の年齢でもない...ようで、逆に若い人は少ない。まぁ、もともと放送大学は若い人が極端に少ないので、致し方ないが。
使用した処理系は、お約束のVisualStudioで、バージョンは最新版ではなく.Net(なので、2003か?)のProfessionalEdition(のおそらくアカデミー版)という辺りは、教育機関らしいそろえ方だ。はじめ、パソコン(WindowsXP)を立ち上げてログインすると、Cygwinが入っていたので、それで授業を行うのかと思っていたけど、予想が外れてちょいとガッカリした。どうも、僕は古いUNIXユーザーなので、学校や研究機関というとUNIXを使っている、という頭があるのは、いけない傾向なんだろう。
さて、その興味の行方だけど、やっぱり言語処理系の教育というのは、先生にとっても不毛な努力のようで、のらりくらりと授業を展開していった。と言って、不真面目と言う訳でないのだけど、問題解決の手法としてのプログラミングの学習は、不毛であるかのような発言がかなりあった、と言うことだ。
当然ながら、僕の業界でも、先生の主催する研究室のような所でも、コンピュータの言語処理系という物は、何かを実現する、もしくは研究する為の手段でしか無い訳だから、その手段を使う方法を学ぶというのもなんだか変な話しなのだ。一般的には、仕事をする為に、方法を何年にも渡って学ばなくてはならない、というのはあまり無い。それがゆえにコンピュータ業界の技術者は、あまり技術者的ではなく、大工のような、職人のような印象が有る。なので本来であれば、その本質を見抜くほどの知識を持っているように思いがちだけど、実際には言語処理系の学習に裂くべき時間なんか、ほとんど無く、深みを知る技術者は少ない。大学生も、このような授業に半年も裂くのはもったいない話しだなぁ、と思う。
要するに、プログラミング言語というのが、歴史的に難しすぎる、と言うことなんだと思う。特に、C言語となると、UNIX発祥の時期から、構造化アセンブラと呼ばれてきたわけで、たとえ現代のVisualStudioのC++言語処理系となったとしても、さほどその性格は変わってはいないので、基本的にはアセンブラを意識しながらのプログラミング作業となる。結果的に、H/Wを知らないといけない。当然ながら、OSやその他の制御構造も知っておかないと、多くの問題解決の場面で、迷宮に迷い込むことになる。
このことを、先生は、「プログラミングの勉強、コンピュータの動作原理の勉強は、きりが無いほど深く、複雑で、広大。よって、判らない事が起きたら、その奥を知る必要は、ほとんど無く、見てみぬふりをする勇気が無いと、目的を達成する事は出来ない。」と、表していたのが、印象的。
まぁ、やっぱり大学でも同じ様な事を考えている事が判った訳で、半分は単位消化のために参加したようなところのある授業だったけど、努力は無駄では無かったかも知れない。