矮小

井の中の蛙

klisのプログラミング環境

これは klis Advent Calendar 2014 の12月21日の記事(始まってから7日目)(間に2つ空白があるので5本目)の記事です.これにてアドベントカレンダー童貞卒業です.

About Me

klis12*1のYousackです.無芸なので前期入試です.知識情報システム主専攻にいます.自然言語を対象にした機械学習人工知能を扱う研究室に仮所属しています(何もなければ本決まりの予定です).研究室ではまだ何もしてません(この前初めてのゼミに行ったら「皆さん試験とかレポートで忙しいでしょうから次は1月に集まりましょう」と言われました).

という話もありましたがまあ去年放映の大人気*2アニメ「メガネブ!」についてはまた来世ということで.klisなんてメガネ学類(これは割と本当です)なんだし共通点あるからいいだろ! とか言ってゴネようかと思ったけど僕は真面目な人間なのでちゃんとklisに関連した記事を書きます.

klis内輪ントカレンダーではありますが,タイトルからも分かる通りたぶん既にklisにいる人が見るよりこれから入ろうかどうか考えてる人とかklisじゃない筑波大生が見たほうが得るものが多いかもしれません.

ちなみに最初は「klisに入って出来るようになったこと」という記事を考えていたのですが,この前の月曜日に出稿表明してから今日まで考え続けた結果僕が出来るようになったのはプログラミングぐらいしかなかった(あとは深夜アニメを見るようになった)のでこの内容にしました.

本編

全国でもあまり例を見ない「図書館情報学」を扱うklisですが,名前に「情報」と入っているからには情報科学関連の話やプログラミングの教育とかをしないといけないわけです.ではklisに入ってからのプログラミングの環境は一体どうなっているのでしょうか.

1年生の春Cモジュール(旧2学期前半,7月いっぱい)から,「プログラミング演習Ⅰ」という授業が始まります.次の年でOPAC(詳しくは後述)を作るための基礎になる授業です(ぶっちゃけプロ演Ⅰの時点でこの事をもっと主張してほしい).教える言語はRubyです.図書館関係に情報科学が割り込んだ学問領域のため,文字列処理をしやすい方がいいということで最近はRubyに落ち着いています.ちなみに過去はPL/IとかC言語とかを使っていたというのは内部生ならどこかの授業で聞いたことがあるでしょう(というかPL/Iの時代からこの授業があるのが凄い).作業環境はWindows 7/Meadow 3です.Linux(全学計算機にはUbuntu 12.04 LTSも入っている)ではありません.Windowsです.Emacsではありません.Meadowです.テキストは微妙です.「each」とか書いてあります(当時はこの書き方の間違いに気付けなかったけど).もしGithubでテキストを管理していたらプルリクエストが確実に数件は学生から飛んでくると思います.

「情報基礎実習」は分からないなりに言われるがままにやっているだけでそこそこな能力が身に付く良い授業なのですが,「プログラミング演習」はその対極に居ると言えます.というか逆に大学の授業で教えるにはプログラミングの世界が広すぎなのが悪い(?)のですが.ただ他の環境が紹介されることもなく,WindowsはまだしもMeadowを使えと言われるのは2014年の授業にしてはかなり厳しいのではないかとは思ったりします.Meadowに関してはそもそもなぜ未だに全学計算機にインストールされているのかという話ですが(Windows向けのEmacsならGNUWindows向けのバイナリを配布している).だいたい担当教員はプログラミングや情報科学の専門ではなかったりするし,学類の性質上プログラミングに全く興味が無い人も多い(むしろ多数派?)というのも要因ではあると思います.テキストの間違いについては,話を簡単にするために難しい部分を隠ぺいするのは時には必要だとは思いますが,だからと言ってよりにもよってこの1文字のタイポにも厳しい世界で間違った記述をするのはかなりマズいのではと危惧しています.そこら辺のプログラミングが出来る学生に金を払ってテキストを改善しろと言えば余裕で飛びついてきそうな気はします.ちなみにそういうことをボランティアでやろうとした結果が Yousack/rubylearn · GitHub (最終更新が1年前)なのでやっぱりお金が関わるというのは大変なことだなと思いました(授業にしても学生の授業料がかかっているわけだし).

ただ打開策はあります.大きく分けて2つ.

1つは,とにかく調べまくること.プログラミング入門者がぶち当たる壁の解決法はおそらくほぼ全てどこかのブログやQ&Aサイトに記述されているわけです.例えば「Meadowって使いづらいな」と思ったら「windows エディター」とか調べてみる.「あれ? Windowsにはインストールできないぞ?*3」となったらLinuxを使ってみる.「Linuxでこのエディターってどうやって使えばいいんだ?」と思ったらまた調べてみる.とか.ただ如何せん初心者なので限界があります.その時の打開策が次です.

この学類はなぜか毎年1-2人,大学に入る前からプログラミングが出来る人間が迷いこんできます.まずその人の存在を知ることが大事です(僕はクラスが違ったので冬口にようやく知りました).そこで「何なんだこいつは」で終わるか「この人は一体何をやっているんだろう?」と純粋な疑問を持つかが分かれ目です.後者になった人はおそらくプログラミングの沼に沈むでしょう.きっとそこには大学の(少なくともklisの)授業では得られない光景が広がっていると思います.前者になっても別に死ぬわけではありません.klisにはいろいろな道が用意されています.僕も図書館のことを勉強するぞ〜と言ってこの学類に来て「図書館概論」という授業を受け,「あれ,図書館意外と面白くないぞ……?」という印象を受け,当初の入学理由から一転してプログラミングの世界に転げ落ちて今に至ります.僕以外にも,当初は図書館マンだと思っていたのに気付いたらVimを使いこなしていた*4とか仕事でWebアプリケーションを書いていたとかそういう人がたまに居ます.

まとめ

  • klisのプログラミング環境はぶっちゃけあまり良くない
    • そもそも担当教員はプログラミングの専門ではない
      • こういうことは大学ではままある
    • プログラミングはプログラムと実行結果が全てなので,Meadowの使い方を紹介するのはいいが他のエディタの存在も示した方がいいのでは
  • ただプログラミング関連の話題はWeb上に腐るほどあるので,自分で調べるということは出来る
    • 調べ方(の基礎)は「情報基礎実習」で教えてもらえる
    • どれだけ調べても万策尽きたら「このklisプログラマーが凄い」を調べてその人に教えてもらう

もともと思い付きで書き進めるくせがある上に久しぶりに長い文章を書いたのでかなりダメな記事なってしまいすみません.他にもklisには「知識情報演習」とか「データベース技術」とか「知識情報システム主専攻実習」とかいろいろありますが,どうもこの調子だととても長くなりそうなのでこの辺で…….他の話が聞きたければ Yousackの墓 (@antefest) | Twitter まで一報を.

明日はkng830さんです.音声で会話できる Droid -音声アシスタント - Google Play の Android アプリ,いわゆる「ドロイドちゃん」の開発者で,「このプログラマーが凄い!klis12」の一翼を担う彼の明日の記事に乞うご期待.

*1:筑波大学 情報学群 知識情報・図書館学類 2012年度入学生.klisはKnowledge and Library Sciencesの略

*2:第1巻BD売上473枚

*3:全学計算機のWindowsは管理者権限がないとインストーラが役に立たないというパターンが割とある

*4:Meadowを使わされるのが嫌になってVimに走る人をたまに見る