パスワードを忘れた? アカウント作成
18649 story
プログラミング

C言語入門、東京大学情報科学科の場合 193

ストーリー by nabeshin
大学でこのぐらいはやってほしかった 部門より

ultrageek 曰く、

C言語入門、書籍だろうが講議だろうが、この業界なら誰もが通る道ではあるが、 sumiiの日記経由で実に興味深いC言語入門を見付けた。 東京大学理学部情報科学科の学部2年生向けのアルゴリズムとデータ構造演習内でのC言語入門 なのだが、 C入門第1回では、シェルを実装、データを圧縮・解凍するプログラムを実装、スパムフィルタを実装というお題目が並んでいる。 これだけで一瞬ひるんでしまったが、解説PDFを見ると、 「最低でもジョブ管理、リダイレクト、(多段)パイプラインの機能は実装すること」などと書かれている。 UNIXへの理解がかなりないと難しい気がするのだが、これをくぐり抜けてくる学生はどれくらいいるのだろう?

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2008年01月25日 13時27分 (#1286347)
    東大とか東工大とかには『僕が一番プログラムをうまく書けるんだ!』と勘違いしている学生がある程度いるので、そういう勘違い学生の鼻をへし折って更生させるための課題がある。これは一般の学生に出す課題とは別に用意してあり、こういう問題を解かなくても単位は貰えるようにしてある。ここの課題もそういう構成のはず。

    こういうのを余裕で解いてくる奴は本当に力があるし、解けない奴は単なる勘違い野郎だからさっさと現実を見つめ直した方がいいというのがこういう問題を出す趣旨だね。現実は出来ないのに出来るという幻想ばかり持っていると、それが足枷となって伸び悩むからね。

    # 内情を知り過ぎているのでACで。
    # ちなみに、自分も『僕が一番プログラムをうまく書けるんだ!』と勘違いしておりました orz
    • ほんとだ。第2回以降のお題を見るといつもの
      かわいいのが並んでる。

      なお自分の学科ではプログラミング(Fortran)の第一回講義テーマが
      「3x2配列として代入したデータを2x3配列として取り出す」でした。
      なぜそこを突く?    > 担当教官

      --
      AVG anti-virus data base out of date
      親コメント
    • by Anonymous Coward on 2008年01月25日 14時05分 (#1286397)
      隣の学部の似たような学科を10年以上前に出た人ですが、理学部情報系のこの種の課題は私も聞いたことがありました。
      その時に聞いた課題はたしか「ウィンドウシステムを作れ」だったかと。

      #それを聞いて「そんなんできねーよ」とか「あっちはやっぱりスーパーハカーの棲家か」とか思ったヘタレなのでAC

      親コメント
    • by Anonymous Coward on 2008年01月25日 14時24分 (#1286417)
      勘違い学生の鼻をへし折る演習やるなら,勘違い学生の鼻をへし折る講義もやってほしい.
      C/C++/Javaとかはやりのスクリプト系言語以外はプログラミング言語にあらずという若造が最近多い.
      いにしえのスタティックなメモリアロケーションしか出来ないFortranから始まって,LISP,Pascalをはじめとする
      ALGOL系(Wirth系)の言語,Smalltalkなんかの特徴と実装の違いなんかは基礎知識として習得して欲しいですね.
      歴史的な経緯を知らずに,今現在の流行りの言語・開発環境がいかなる局面でも技術的にベストなものだと盲信してほしくない.
      親コメント
      • by Anonymous Coward on 2008年01月25日 20時19分 (#1286605)
        > 歴史的な経緯

        昔々、世の中に言語がひとつしかなかったころの話。
        人は、傲慢にも、天まで届く高い塔を建てようと試みました。
        親コメント
      • 鼻の数・・・ (スコア:1, 参考になる)

        by Anonymous Coward on 2008年01月25日 17時04分 (#1286531)
        本郷に無事進学できた後は、オリジナルCPUをFPGAで作成し、それを載せるボードを作成し、コンパイラを作成し、レイトレプログラムを・・・というのが待っていました。。。

        今のシラバスはこんな感じ [u-tokyo.ac.jp]みたいですね。

        #10年以上前の卒業生なのでAC
        親コメント
    • by Anonymous Coward on 2008年01月25日 16時23分 (#1286505)
      一方、京大情報学科ではメールだすのが課題だった。

      #当然AC。
      親コメント
  • by okky (2487) on 2008年01月25日 13時30分 (#1286350) ホームページ 日記
    私には Unix システムコールプログラミング入門 に聞こえますが…

    内容的には是非やっていただきたい内容だと思いますが…最近の大学は
    「キーボードを打った事がない」
    というレベルの人はもういないと思って良いんでしょうか??
    --
    fjの教祖様
  • 自己解決能力 (スコア:3, すばらしい洞察)

    by Inetpub (20077) on 2008年01月25日 13時06分 (#1286321)
    PDF「課題について」より抜粋

    •実装上で不明な点があれば,まずGoogle やman コマンド等を駆使して,
      自分で解決することを推奨する.もちろん,適当な書籍を調べるのも構わない.
      •すなわち,課題を解答するだけでなく,「分からない事を自分で調べながら
      解決していく」事も課題の一部とする.

    自由課題の難しさだけクローズアップされてるけど
    ”こういうことをちゃんと教えてる”ってのも結構重要な気がする

    #とりあえず自分が提出するなら2-A
    • Re:自己解決能力 (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2008年01月25日 13時49分 (#1286376)
      そうそう、OKWave [google.com]などに頼るんじゃないよ、学生諸君。
      親コメント
    • by Anonymous Coward on 2008年01月25日 20時14分 (#1286600)
      そういえば、非効率なソートアルゴリズムを考えろという
      課題を出されたことがあったな。そんなもん、調べても
      中々出てないんで参った。考えたアルゴリズムに対して
      無い知恵絞って計算量を見積もってレポートしたっけ……

      # 疎な非負整数列を仮定して 1を探して、2を探して…… という
      # レポートを返却した記憶がある。
      親コメント
      • Re:自己解決能力 (スコア:2, 参考になる)

        by jijijiji (30845) on 2008年01月26日 2時37分 (#1286867)
        少しこの問題を考えてみました。

        与えられた数列(大きさ n)を適当に並べたものを1つの文字列とみなします。
        数列の並べ方は n! 通りあるので、全並べ方を考えると n! 個の文字列ができます。
        この n! 個の文字列を辞書式順でソート(*)すると、先頭に来た文字列は
        元の数列のソートされたものになっているので、これを出力します。

        (*)の部分は挿入ソートを使うことにすると、計算時間は O((n!)^2) となります。

        さらに(*)の部分にこのソート法を使う(n! 個の文字列を並べたもの1つの文字列とみなして、
        (n!)! 通りの並べ方を考える)と、O(((n!)!)^2) になります。

        さらに同様のことを繰り返すと、いくらでも遅いアルゴリズムが作れます。
        親コメント
  • by Tsukitomo (22680) on 2008年01月25日 15時36分 (#1286481) 日記
    e-TeXの機能を加えた「e-pTeX」が公開 - 日本語TeXに新時代到来 [mycom.co.jp]
    > 日本語の組版処理をサポートした日本語版TeX (アスキー日本語TeX、pTeX)に、TeXの拡張版としての機能を備える
    > e-TeXをマージした「e-pTeX」が公開された。
    > 東京大学の北川弘典氏が、同大理学部数学科の授業内プロジェクトとしてスタート、変更を加えた部分を
    > 拡張BSDライセンスのもとpTeXのパッチとして公開したもの。

    北川さんは3年生で、『東京大学理学部数学科3年対象の授業「計算数学II」』の課題としてこのプロジェクトを
    おこなっている。
    --
    Your 金銭的 potential. Our passion - Micro$oft

    Tsukitomo(月友)
  • by Anonymous Coward on 2008年01月25日 16時48分 (#1286525)
    http://hagi.is.s.u-tokyo.ac.jp/ade/pre/
    H.19専攻内予算配分.xls とか置いてあるけど良いのか?
  • 環境はどうなんだろ (スコア:2, おもしろおかしい)

    by Anonymous Coward on 2008年01月25日 13時55分 (#1286384)
    この課題をやっつけるためのマシンの台数がふんだんにあって、ちょっとやそっとの駄目プログラム動かしてもビクともしない?
    (学生時代は机上の講義での成績上位○○名のみ計算機使用化&パンチカード以外使用禁止だったのでAC)
  • 圧縮解凍できた (スコア:2, おもしろおかしい)

    by k_izumi (24569) on 2008年01月25日 14時38分 (#1286425)
    int main(int argc, char *argv[]){
    char str[1024] = "gzip ";
    for(int i=1;iargc;i++)strcat(strcat(str,argv[i]), " "));
    system(str);
    return 0;
    }
  • by NOBAX (21937) on 2008年01月25日 15時14分 (#1286465)
    最終的に何屋さんになるんでしょうか。
    ベンダー系のプログラマなら専門学校レベルでも十分そうだし
    ハッカーならわざわざ大学行くまでもなさそうだし。
    で、こういう演習が将来、どの程度役に立つのかと。
    素朴な疑問ですが。
    • Re:この人たちは (スコア:2, おもしろおかしい)

      by Anonymous Coward on 2008年01月25日 15時30分 (#1286476)
      とりあえず、当然のように院に行ったあとは、お好みで
      ・Googleからのお誘いメールを受け取る
      ・ベンチャーでエンジェルから金を引っ張るか、未踏で国から金を引っ張る
      ・さらに上に進み、旧帝早慶その他のアカポスを占領
      親コメント
    • by k_f (18123) on 2008年01月25日 16時34分 (#1286517)
      演習というのは、手に職をつけるためだけにあるのではなく、物事の本質を理解する助けとしての
      「実際に作ってみる」体験の意味も含んでいます。

      こうした演習を(特に有名大学で)受けた人たちが、必ずしも仕事として「プログラムを書く」とは
      限らないでしょう。ただ、上流工程をやる場合でも「プログラミングの本質を理解している」ことは
      極めて重要だと思いますよ。
      親コメント
    • by Anonymous Coward on 2008年01月25日 16時45分 (#1286523)
      院入ってWinOZでも作るんじゃない?
      親コメント
  • by matsu03 (34226) on 2008年01月26日 3時14分 (#1286874)
    この授業は二年生対象であるにもかかわらず、理Iではなく、理学部となっています。
    つまり、行われているのが本郷か駒場かを問わず、専門の授業です。
    こういう授業は、どの学科でもその学科に進学する人を対象にした、駒場生への リクルート授業といいますか、学科の宣伝をかねた授業です。
    だから、対象はただの駒場二年生ではなく、情報工学に進学を考えている、すでに UNIXや計算機に知識のある学生です。どの学科でもこういう駒場に出ばった宣伝授業では、 その学科の特色をいかした、かなり専門的な"さわり"をやります。
    ということでした。ちゃんちゃん。
    • by Anonymous Coward on 2008年01月26日 7時26分 (#1286917)
      今でも変わってないと思うのですが、2年生の前期の終わりに進学先は内定するので、2年の冬学期は既に進学が決まった学生を対象に専門の講義が入ります。なので「宣伝」とか「リクルート」という話ではないと思います。
      親コメント
  • とりあえず自分が思いついたのは
    ・ftpの実装
    ・えせインタプリタの作成
    とかですかね  

    以下、どーぞ↓
    --
    あなたとコンビにふぁみりま~と♪
  • 2年生ならそれで普通 (スコア:1, フレームのもと)

    by funya (14942) on 2008年01月25日 13時15分 (#1286331)
    C言語入門という授業で教えるかどうかはともかく、情報工学系の2年生なら、そんなものです。
    東大でなくても、それぐらいの課題を出しているところは多い。WWWで調べれば良いだけなので、
    楽だし。

    もちろん、学生のレベルに合わせて授業のレベルを下げているところも多いと思うけど。
    • by TarZ (28055) on 2008年01月25日 13時35分 (#1286356) 日記

      課題には、A課題とB課題があります。(課題番号の末尾が種類を表します。) B課題が基礎的な課題で、A課題が発展的な課題となっています。 B課題を全問解くことが、単位取得の目安です。

      単位取得だけなら、A課題の回答は不要みたいですね。A課題は経験者向けではないかと思います。

      情報工学系の学生になるような人なら、入学以前からこのくらいの課題はこなせそうな人もいるでしょう。
      そういう人にとってはB課題は簡単すぎるので、退屈させないようにA課題があるのだと思います。

      # でも、最近は趣味でC言語やっている高校生は少なくなっているんじゃないかな、とは思ったり。
      親コメント
      • Re:2年生ならそれで普通 (スコア:5, すばらしい洞察)

        by TarZ (28055) on 2008年01月25日 13時56分 (#1286386) 日記
        「退屈させないように」についてちょっと補足。B課題とA課題の質の違いに注意する必要があります。これは、単に難易度の差ではありません。

        B課題は、ある動作を目指した、「動作のはっきりと決まっている」問題です。完成したらおしまい。

        対してA課題は、工夫によっていくらでも課題の内容が膨らんでいく問題です。こちらは終わりはありません。
        spamフィルタやデータ圧縮はよりよいアルゴリズム、シェルも使いやすさやスクリプト言語の強力さを追求しだすときりがない。

        B課題を軽く解いてしまう経験者といえども、その能力にはかなりの幅があるでしょう。そういった能力に幅のある学生を全員、講義の期間中ずっと退屈させずに作業させ続けるためには、こういった「終わりのない」課題が必要なのです。
        親コメント
    • by Anonymous Coward on 2008年01月25日 13時25分 (#1286344)
      東大の場合2年夏学期までは教養学部なので、情報工学系でやる最初の授業のはずです。
      親コメント
      • by 335 (4199) on 2008年01月25日 13時41分 (#1286364) 日記
        FFTをカンニングしないで実装しなさいと言われたら、勉強してないとい
        けないけどこういう問題なら実際調べたらやれるでしょうし、やれなくて
        もそれくらい調べてやれるようになれよというメッセージは十分伝わる。

        教養の算数や物理とかを考えたら、そんなもんじゃない?

        #学部1年でやったF77の授業の期末テストで暗黙の型宣言を悪用した
        #問題がいっぱいでて以来Fortranが嫌い。
        親コメント
  • 技術者養成機関である一般の国立大学(電通大とか)ならともかく、
    将来理系エリート、特に技術官僚や技術経営において主導的な立場となることが
    期待されている東京大学のにこういう、ソフトウェア技術的なところで
    頑張らせちゃっても、その後の進路を考えた場合、あまり多くの付加価値を
    生み出すことはできないんじゃないかなあ?
    こういう技術的な勉強に学部の学生の時間を使わせるよりも、
    文科系の研究会やインカレサークル、体育会系の部活などに参加させることを奨励して
    コミュニケーション力やリーダシップなど人間的な魅力を磨くために時間を使わせたり、
    法学、経済学のような他分野の知識を得る機会、それに国家公務員試験などの資格試験
    のために勉強させるってことを意識したほうがいいんじゃないかと思う。

    東京大学で学んでいる人たちがどういう人なのか全然わからないけど、
    少なくとも技術バカや研究バカ、をやるのは、そういうことしかできない人に任せて、
    学部のうちからより高度な社会的能力を得させるほうがいいと思う。
    --
    ごめんなさい。
    • by Anonymous Coward on 2008年01月25日 23時01分 (#1286720)
      国内で一番研究費を使っている大学がどこか知ってますか?
      アジアでトップクラスの研究が出来ると認められている大学がどこか知っていますか?

      それを鑑みれば、東大を官僚養成コースとするのはあまりにももったいない。
      そうは思いませんか?

      > 将来理系エリート、特に技術官僚や技術経営において主導的な立場となることが
      「技術経営」と言っちゃってるところが勘違いです。
      多くの東大生はリスクを好まないのです。
      何でわざわざ他の人が遊んでいる時間に勉強し、きつい受験勉強を突破して、他の一般人と同じリスクが高い勝負をしないといけないのでしょう?
      一般人よりも低いリスクで生きられないと、馬鹿らしくてやってられないと思いますよ。

      > 学部のうちからより高度な社会的能力を得させるほうがいいと思う。
      そういうのこそ、そういうのしかできない社交馬鹿に任せましょう。
      一般人が出来ることと同じ事を彼らにやらせたのではもったいないです。
      親コメント
    • by Anonymous Coward on 2008年01月25日 21時38分 (#1286650)
      インカレサークル(笑)
      体育会系(笑)
      コミュニケーション力(笑)
      リーダシップ(笑)
      人間的な魅力(笑)
      親コメント
typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...