パスワードを忘れた? アカウント作成
3653 story

MSが大学に寄付してC#が必修科目に 213

ストーリー by Oliver
基礎よけりゃどの言語でも構わない 部門より

zozbug 曰く、 "カナダの話ですが、マイクロソフトの子会社が大学に230万ドル寄付し、それと引き替えにC#のプログラミング講座を開設され、必修科目になるとか。ソースはZDNet
教育的立場の善悪を別にして、費用対効果で考えるととても上手い手だと思う。これがダメならサーバーをタダ同然で大学に配ったSUNだって。結果的によりよい教育を受けられるなら寄付歓迎。けど、今のところあまり使いでのない言語が必修なのはやっぱり災難かも。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by mithra (8990) on 2002年08月17日 22時17分 (#147978) 日記

    いろいろまとめてみました。あくまで私見なんで、それぞれ識者のコメントを期待いたします。

    1.C#はMS .NET Frameworkでしか動かないからダメ?

    フリーの.net実装であるmono [go-mono.com]は、Windowsでもlinuxでも使えます。コンソールベースの言語ならこれで十分。
    そもそもWindowsでしか動かないからって*絶対*ダメとは言えないと思います。私なんかはAppleのHypertalkなんてやらされました(授業は、HTMLで十分に代用できる内容でしたが...)。

    2.C#という言語による制約が学生の思考に悪影響をおよぼす?

    もちっと具体的な批判が無いと。同じ事は、対象をCにもC++にもJavaにもlispにしても言えるはずです。C#だけやってるとポインタが理解できないだろうけど、Javaを導入したときは、特に大きな問題にはならなかったと思います(そんなことはない?でもC#になったときに騒ぐ事じゃないですよね)。
    C#は、JavaやC++に比べると、例外的状況を意識させないコーディングが可能ですが(asで例外の発生しないキャストができちゃったり、Javaみたいに内部で発生する例外のcatchが無くても通っちゃったりとか)、これはPerlやJavaScriptでも同じです。 これもやっぱり問題にならないと思います。

    3.企業が大学に寄付した見返りで科目を作るなんて...

    ウォータールーは州立大学なんで、私立大学とは違った角度で物事を語るべきですが、こちら [srad.jp]が正しいとしたら、少なくとも日本では前例のある事になるでしょう。カナダでは問題のあることなのかもしれません。(この辺、日本の事情も含めて識者のコメントを期待)
    ちなみにC#が必須でも、別に大きな問題ではないと思います。

    4.学習参考書が少ないじゃん

    これはけっこう致命的な欠点です(単なる参考書は多いんですがね)。ただ、私は洋書でのそろい具合がどんなもんか分かっていないので、日本とは意識が違うかもしれません。

    5.RADで勉強するのもいいんじゃない?

    実際にはMSの.NET Frameworkだけが使われることは明白です(そのために寄付したわけですから)。そしたら、面白みのないコンソールアプリなんかより、もっとキャッチーなところをネタにすることでしょう(そうじゃないとdelegateとか教えにくいし)。そしたら学生は自宅ではMicrosoftの.NET環境が無いと自習できません。
    # まぁこれはAppleも使ってた戦略です(別に免罪符にはなりませんが)

    さらに、.NET Frameworkなら、まだWin98以降が使える人なら無料で学習できますが、ASP.NETなんかを教えてしまうとWin2000以降が必須になりますし、WinFormsが必須になると、Visual Studio.NETの有無によって勉強に格差が顕れることになってしまいます(MSとしてはVS.NETの販売が大きな目的のひとつなので、これは実に効果的な宣伝になりますね)。これはかなり好ましくない事です。

    6.でも必須科目にしなくても良いじゃん

    これは、5.を肯定する(RAD開発の楽しさを積極的に教える)限りにおいて、全く同感です。

    • > 4.学習参考書が少ないじゃん

      に関して。書籍という面で見れば、他の言語に比べれば少ないでしょう。ただ、英語が使えるなら、.Net Framework のドキュメントが 充実してるし(msdn library [microsoft.com])、onlineでMSのチュートリアル(日本語版 [gotdotnet.com])とかもあるし、ここ [c-sharpcorner.com]と ここ [dotnet247.com]で大抵の疑問は解決するはず。

      ベッドで寝転がりならが読むために活字じゃなきゃ駄目ということになれば、Programming C# [oreilly.com]という本が一応ある。

      っていうか、E&CE 050 という入門の講座でプログラミングのプの字も知らんような奴ら向けだから、まともな本なんてなくたっていいんです。どうせ読まないから。教授が自作で作った本が大学の本屋で売られるに 1 カナダドル。

      computer scienceをしっかりやる奴らは一年の後半から C++ とかアセンブリとか Scheme とか自作の言語とか色々やっていくわけで。 初心者向けなんだから、「Windowsソフトも、ほら、こんなに簡単につくれてしまいます」ってほうが習うほうも楽しいはず。 自分で作ったソフトがそのまま使えちゃう喜びっていうか。 件の大学はどうか知らんけど、僕の大学はWindowsを持ってることを義務付けてるし。

      親コメント
  • それを言ったら (スコア:2, 参考になる)

    by stosh (4158) on 2002年08月17日 15時22分 (#147846) 日記
    6年くらい前に大学生だった頃、某N大学の一般教養課程の
    情報処理の講義で(必須かどうかは自信がありませんが)、
    Fortranを未だに使ってコード書かせていたのにビックリしました。

    実務と教育の世界のギャップは意外に大きいものかも。

    それに確かUCSDではComputer Scienceを専攻した場合には
    Pascalが必須項目だった記憶が。(さすがPascalの総本山)
    まぁDelphiやるならPascalは使えない言語ではないのでしょうけど。
    • by REN (5436) on 2002年08月17日 17時34分 (#147893)
      一般教養課程の講義でも対象者はある程度決まっているはずですよね?
      stoshさんがなにを専攻されていたかわかりませんが、すくなくとも
      物理・化学系の場合、Fortranの資産が膨大にあります。僕はCばかり
      で作ってしまいますが、それでもFortranで書かれたコードは必然的に
      読まざるを得ないワケで・・・。
      ですから、物理系または化学系の学生を対象とした一般教養の講義では
      あながち間違いではないのではと思います。
      (おなじく某N大学でFortranをかじった者より)
      親コメント
    • by Anonymous Coward on 2002年08月17日 15時55分 (#147860)
      C/C++やJavaではなくPascalを使ってるってのは,大変まともじゃ
      ないの? それにUCSDだったらまともな教育してるはずだから,
      学生がたった一つのプログラミング言語しか習得する実力がないと
      いうことはありえないでしょう.

      仕事でプログラミングやってる人間だったらC/C++だろうがPascal
      だろうがLISPだろうがCOBOLだろがSmalltalkだろうが,必要に
      応じて何でも使いこなせて当然だと思うが....(そうでない奴が
      多いのは何故?)
      親コメント
      • by Anonymous Coward on 2002年08月17日 15時58分 (#147864)
        坊やだからさ
        親コメント
    • by Anonymous Coward on 2002年08月17日 16時52分 (#147879)
      >Fortranを未だに使ってコード書かせていたのにビックリしました。

      Fortran で書かれた膨大なライブラリがある場合、扱っていても不思議はありません。
      ただ、一般教養課程で用いるのに相応しい言語かというと疑問に思います。
      C と perl という学校もあるそうですが。
      親コメント
    • Fortranを未だに使って
      FORTRANは(その構造の単純さなどなどゆえに強力な最適化がかけやすく)実際に科学技術計算に必須ですから場合によっては役に立つし、別にいいんじゃないでしょうか。

      それだけとか言われると非常に困りますが。

      親コメント
    • by nayuta (1257) on 2002年08月17日 20時22分 (#147940)
       Pascalはいると思うのはわたしだけでしょうか?出来ないと読めない論文がいっぱいです(笑)。
       というか、なぜいまだにあの世界はPascalなんだろう・・・。まあ、100%パスカルというわけではないし、ちゃんと動くPascalで書いてあるわけでもないですけどねぇ・・・。
      --
      ---------- ------ ISHII Nayuta
      親コメント
      • 確かに論文や教科書(特にアルゴリズム関連)はPascal風の擬似コードで書くことが多いですよね.もっとも最近の論文はCやJava風に書くことが多いみたいですので,もう少しの我慢です.:-)

        以前,論文の中のある擬似コードをLisp風に書いたところ,査読者から「もっとメジャーな言語で書いて欲しい」と言われて悲しくなったことがあります.
        親コメント
      • 普及した構造化言語の最古参だからではないでしょうか?

        これ以前だと、COBOLとFORTRANとPL/Iしかなかったと記憶してます。
        これらと比較した場合、読み易さがかなり違うと思います。
        論理構造がはっきりと記述できれば何でもよいんでしょうけど。
        (この意味では多重継承を許す言語は不適かな?判りずらくなるから。)

        # Occamで記述すると並列処理が簡単に書けていいかも…
        # 読める人の数がLISPの半分だったりして。
        --
        notice : I ignore an anonymous contribution.
        親コメント
        • by moonbear (4602) on 2002年08月17日 22時50分 (#147988)
          古典的な論文や教科書にでてくる一見Pascalに似た疑似コードですが,あれはPascalでなくAlgolのつもりで書いている人も多くいるようです.Algolはプログラミング言語におけるラテン語みたいなもので,現在はどこでも使われていないけど(そもそもまともな処理系がなかった気がしますが)学者と呼ばれる人々はみんな読めたりします.:-)

          ついでに#にフォローしますが…

          OccamはCSPから諸概念を借りてきているので,並行計算の理論的扱いをちょっとかじったひとなら案外読めてしまうと思います.

          最近はCSPよりもCCSやπ-計算的な記法の方をよく見かけますが.
          親コメント
  • by densuke (113) on 2002年08月17日 17時33分 (#147892) 日記
    私は言語がなんであろうと問題ないと思います。
    問題なのは特定の言語に依存してしまうことで(MSはそれを期待してやってるはず)、基本的なアルゴリズムや物事の考え方といったものをきちんと伝えることが重要でしょう。

    だから、授業の中でアルゴリズムが重要なところでなにげにフォームビルダでどうこう、とか教えるというのはしないでほしいです。

    C#、使いたいならCUIでね(笑)
    --
    -- やさいはけんこうにいちば〜ん!
  • 寄付。。? (スコア:2, 興味深い)

    by j3259 (7093) on 2002年08月17日 19時55分 (#147927) ホームページ 日記
    タレコミで「寄付」となっていますが、どっちかって言うと話が逆で、 「授業で使ってくれるなら.NET環境をMSで提供します」って 話だったと思う。無償だったか、割引だったかは失念。 元記事でも「大学支援基金」となってるし。

    僕の学校では一年に全員に必修でJavaやらされたけど、 同じようなものではないでしょうか。
    VS.NET 使えば C# ほど面白い言語もないと思うんだけどなぁ。RAD環境って素人が object-oriented な感覚を養うのにちょうどいいと思うんだけど。CUIで作ればHello Worldみたいなとこから始めていけるし。
    正規表現、XMLパーサとかなんでも .NET でそろってるのがおいしい。画像と音関係がまだないけど。動的に型を発見したり、リモートでオブジェクト作ったり面白いですよぉ。

    C++ Builder -> Delphi -> C#と使ってきてるんで、意見に偏りがあるかもしれませんが。

    # 今は趣味でC#でゲームとか人工知能(のようなもの)書いてます。
    # で、できあがったら条件付GPLにしてる。うけけけ>ゲイツ

  • by yu_raku (419) on 2002年08月17日 15時23分 (#147847)
    こういうのは、寄付って言わないのでは?
    「見返りに・・・」っていうのがあれば、商談が成立したってことのような・・・
  • 普通のやつらの上を行け [dreamhost.com]を引き合いに出すのが妥当かどうかは微妙ですが、
    そこまで言わないにしても、教育的「効果」の良し悪しってのものは、無視するわけにはいかないかも。

    どれだけ「良い」言語で勉強させるか?によって、出来上がる(^^;学生の質は
    結構変わってしまったりしないだろうか?ということです。

    心配するのはやっぱり、「言語は思考を規定する」という意味での、言語の影響力ですね。
    変な面のある言語で刷り込まれてしまうと、痛いわけで。
    たとえば往年の行番号BASICに刷り込まれた人々ってのも、それだったかなと。#そういやあれもMS由来だったなあ。

    そういう意味では、引き合いに出されてるSUNのサーバーのほうがまだしも罪(^^;は軽いかと。
    思考を規定する度合いは、鯖よりも言語のほうが「深刻」だと思いますので。

    #ということは、むしろ心配なのは、今実際に巷の多くで学ばせさらてるらしきJava言語かな。
    #この場合、もともとのライセンスが無料であるかどうかは別問題です。

    使いでが無いかどうかは、むしろ学生さん段階ならば、あまり拘り過ぎないほうが良いと思います。
    仕事で仕方なく使わされる糞言語の類(どれとは言いませんが)に、学生のころから耽溺しちゃったら、
    そりゃもう痛々しいっす。使いでの無さだけで「よい教育」かどうかを決めるのは、たぶん的外れっす。

    で、C#ですが…どうなんでしょうね?(^^;
    まあ仕様から察するに言語の潜在能力自体はJavaより上かも知れないけど、
    その潜在能力をMSの実装がきちんと過不足なく出しているかどうかは別だし。

    あと、開発統合環境の問題もあるかな。
    環境も結構、思考を規定しちゃうので、あんまり変なもので刷り込まれてほしくない。
    C#のMS実装は指一本触れたことがないんで判らないんですが、その↑へんがどうなのかは、識者のコメントを期待します。

    ん?そういやC#の非MSな実装は、どんなのが有るんでしたっけ?

    あ。あと重要なものがひとつ。開発したソフトを動かすターゲット環境に対する刷り込みも、問題ですね。
    APIとかさぁ。
    てゆーか、そのまんま.NET必須っすか?
    .NETの世界オンリーで脳が漬物になった学生さんって、その後どうなるんでしょう?

    目に触れたものをそのままじゃなく、いったん抽象化して理解することが出来るくらいにまで成長した後ならば、
    なにをどう触れようが良いんですが、それ以前だとどうなんだろうな?

    #文中でしばしば仕事という言葉を使っていますが、趣味だって同じことだと思います。
    #糞言語に耽溺するのは、趣味だとしても、ハタから見てて痛々しい。
    ##フリーソフト作者で時折、自分がなじんだ(糞)言語の選択の自由(「この言語を使うのは俺の自由だ、
    ##なぜならこれは趣味だからだ」)を叫ぶ人が居ますが、自由かどうかと貴賎が無いかどうかは別問題です。
    • > 心配するのはやっぱり、「言語は思考を規定する」という意味での、言語の影響力ですね。

      プログラミングを独習するには10年かかる [neweb.ne.jp]でも書いてあるが、
      プログラミング言語は複数学ぶことが必要だろう。
      そのうちの一つがC#であっても、何ら問題は無いと思われ。

      # 個人的には Lisp が必須だと思うが
      --
      # mishimaは本田透先生を熱烈に応援しています
      親コメント
      • >プログラミング言語は複数学ぶことが必要だろう。

        それもそうですね。少なくともどれか1つしかやったことが無い人ってのは
        「話にならない」感じがすることがしばしば有ります。
        言語の数だけ概念が有る(という言い方でもなお過小評価だが)わけだから、
        言語にかこつけて(^^;それらを片っ端から知っておくのは、損はなさそう。

        ただ、

        >そのうちの一つがC#であっても、何ら問題は無いと思われ。

        C#の実力とか、逆に「毒度」とかが、どうなってるか次第だと思います。
        なにごとも経験とはいっても、あんまり変な言語が「そのうち」に入っていると、ちょっとねえ。
        C#が変かどうかはさておきますが。

        ># 個人的には Lisp が必須だと思うが

        そうらしいですね。経験してないので、今ごろ困って(ってゆーか…)います(^^;
        親コメント
        • 言語の数だけ概念が有る(という言い方でもなお過小評価だが)わけだから、
          言語にかこつけて(^^;それらを片っ端から知っておくのは、損はなさそう。

          同意. 少なくともその言語を作った人は「既存の言語ではだめ」と思って作ったわけですし. プログラム言語をいじることによって,その言語の作者の思想に触れる,というのはあると思います.

          で,更にプログラミングの概念の歴史的変遷,というのも見えてきますね.

          親コメント
          • by moonbear (4602) on 2002年08月17日 22時07分 (#147971)
            複数の言語や実行環境によるプログラミング学習は必須だと思います.

            現状でも,情報系の学科・コースでは複数の言語を扱っている所がほとんどなのですが,それらの間の諸概念の関連を(理論的内容もある程度含めて)きちんと扱っている授業は案外少ないようです.その辺を理解していないと,多くの学生さんは結局メジャーとされる言語(例えばCなど)だけわかっていればいいと思ってしまうようです.

            Cなどによる初歩的なプログラミングの講義を受講した学生を対象にHaskellやStandard MLを使った講義をしたことがあります.後でまたCのプログラムを書く際,プログラムの見通しがよくなってバグが少なくなったと報告してくれた学生が複数いたのがちょっとうれしかったです.

            あと,言語だけでなく仮想機械やミドルウェアのような実行環境もいろいろ経験するといいのでしょうが,大学の講義や演習ではなかなか全てをカバーしきれませんね.教えられる人も限られてきてしまいますし.
            親コメント
    • >で、C#ですが…どうなんでしょうね?(^^;
      >まあ仕様から察するに言語の潜在能力自体はJavaより上かも知れないけど、
      >その潜在能力をMSの実装がきちんと過不足なく出しているかどうかは別だし。
      いまだに普通の環境でまともに動く統合開発環境すら出してくれない sun に
      比べたらMSの方がよほどマシです。
      forte と VisialStdioの差を見れば明白です。
      フリーとか有償とかはこの際問題ではありません。
      まともに動くということが大切です。

      >ん?そういやC#の非MSな実装は、どんなのが有るんでしたっけ?

      BSD(これはMSらしいが)
      Linux(mono project)
      などがあります。
      --
      by rti.
      親コメント
    • まあ、よく言われてはいるが、

      あ。あと重要なものがひとつ。開発したソフトを動かすターゲット環境に対する刷り込みも、問題ですね。 APIとかさぁ。 てゆーか、そのまんま.NET必須っすか? .NETの世界オンリーで脳が漬物になった学生さんって、その後どうなるんでしょう?
      C# != CLI != .NET Frameworkではあるはず。

      なので洗脳されるかどうかは大学のカリキュラム(と自己学習)しだい。むしろ、開発/実行環境が特殊になってしまう言語よりかはいいかなと思うんだけどなぁ~。

      #個人的にはSunも好きくないので、*BSDなCLIでプリミティブに開発を勉強しなおしたいな(笑)

      --
      M-FalconSky (暑いか寒い)
      親コメント
    • >あと、開発統合環境の問題もあるかな。
      >環境も結構、思考を規定しちゃうので、あんまり変なもので刷り>込まれてほしくない。

      (統合環境の是非はともかく)
      C#はコマンドラインでも使えますよ。
      親コメント
  • JAIST とかでも確か企業からの寄付の講座というのはあったと思います.

    ということを考えると,この話でアレなのは「必修」になっちゃってるあたりなのかなぁ.

  •  C#のプログラミング講座ってどんなですかねぇ?C++の代わりにって書いてあるし、「C#プログラミング言語」だったらばぜんぜんかまわないんですが、C#.NetとしてのC#だったらえらいことになっちゃうかも・・・。個人的にはC#という言語にそれほど問題があるとは思わないのですが(そんなこといっちゃったら他の言語だって問題だらけだし)、やっぱりJavaなんかと同じようにC#もいまだその周辺のライブラリ(この場合.NET)と一緒くたに捉えられちゃう傾向があるんでそこらへんが気になります。だいたいMicrosoft協賛だしさあ・・・。

    # ライブラリって言うと、とてつもなく広い言い方ですが、そこらへんは推し量ってください(笑)。「Cのstdio.hもらいぶらりじゃないか!」とかいわれても困ります^^;。こういう場合はなんていうのが適切なんですかね?

     そういう意味では、CとかC++とかのほうが断然有利ではありますね。ある程度プラットフォームから切り離されて存在してるし、それなりの教科書もたくさんあるし。C#はまだまだ.Net本ばっかりだし、Javaもそういう意味ではある意味似たような状況にある気がします。

     欲を言えば、複数の言語をやってほしいですね。C#やるんだったらあとCとか、PerlでもLispでもかまわないですが。VBはちょっといただけないですね。プラットフォームから切り離せないし・・・。

    # オフトピックですが、VBの言語は何なんでしょうかね?(笑) なんか、VBが他の言語と比べてどうだという話を見てるとJ2SEはC++と比べてこうだ、といってるようにしか思えないんですが^^;。なんか、VB.NETでは言語体系がオブジェクト指向化(っていうの?)されてObjective Basic(笑)みたいなことになってます。みてみると面白いかも。
    --
    ---------- ------ ISHII Nayuta
typodupeerror

日々是ハック也 -- あるハードコアバイナリアン

読み込み中...