15年間の非常勤講師を終えて

Untitled

先週、長らく務めてきた山陽学園大学での非常勤講師を終えてきました。私の方の事情で、来年度からお受けできなくなったためです。2001年から始めましたので、15年になりますか。週1回、それも半期だけしかお世話にならないのですが、それでもこれだけ長くお世話になると感慨深いものがあります。講義を終えて帰路につく間、妙に感傷的になってしまいました。

私にとって、非常勤講師というのは、本務校での講義よりずっとチャレンジングな体験です。週1回の講義の間しか接点がなく、学生たちの事前情報が何にもないわけです。ここまでどういう講義を受けてきたのか、どんなつもりでこの大学に来たのか、日頃どんな生活をしてるのか、将来どうしたいのか、などなど。講義って学生に対するパフォーマンスみたいなところがあるので、こういう事前情報がないと、学生の反応を見ながらその場で話し方から内容まで、どんどん調整を余儀なくされます。本当、出たとこ勝負です。

この大学は、本務校と違い文系なので、なおさら調整が必要でした。最初は講義の構成もずいぶん思案しましたね。なんせ「情報システム論」でしたから。文系の学生、しかもIT系の科目をほとんど取ってない学生も少なからずいるのに、情報システムの話をしてもなあ、って。

でも、振り返ってみると、ここでの経験がそのあとずいぶん生きている気がします。講義の最中に学生の様子をそれとなく観察して、話の進め方や内容を調整するとか(本来、コミュニケーションは得意ではないので、こういうのはあまり得意ではなかったはず)。通信やインターネット、Webの話を分かりやすく説明する方法もここで編み出しましたし、旬のネタを多く盛り込むようにするのもここでの講義がきっかけでした。昨年末にやらせてもらった吉備創生カレッジの内容も、ここの講義をベースにしてます。

15年間振り返って、かなり好きにやらせてもらったなあ、と思います。にも関わらず、そんなやり方を認めていただいて、さらに(非常勤を減らす方針の中で)ずっと依頼してくださった山陽学園大学の方々には感謝の言葉しかありません。ありがとうございました。

そして、来年度から非常勤講師をやらせていただくことになっている某大学の方、よろしくお願いします。

文字とフォントな楽しい1日

Untitled

情報処理学会の第99回ドキュメントコミュニケーション研究会に参加してきました。

以前HTML5について講演させていただいて以来ずっと登録している研究会でして、連絡委員も務めたのですが、会の性格上東京近辺の方が集客がいいということのようで、地方在住の身としてはなかなか参加できてません。

今回も東京開催だったのですが、それでもあえて参加したのには理由があります。印刷博物館での開催で、博物館の見学ができるというのです。フォント大好き、組版大好きな私としては、これは見逃せません。

楽しかったですねえ。研究会の参加者の中で一番時間をかけて見てたかも。もっとも、この研究会に参加されるような方は一度は行かれたことがあるのかもしれないですね。

印刷の誕生から現代に至るまで、東洋・西洋を問わず展示してありまして、いろいろ興味深い資料を見ることができました。例えば浮世絵の多色刷りの精度の高さに驚いたり、棟方志功が第九を鼻歌で口ずさみながら版を掘っている記録映像に見入ったり。そうそう、レミントン社のタイプライターの実物が見られたのも良かった。

まあでも、一番興味を引いたのはやっぱり文字関係でした。まずはグーテンベルクの42行聖書。レプリカとはいえ、ものとしての実物を見るのは初めてでしたが、存在感が圧倒的でした。テクストゥーラ体の重厚さもあるのでしょうが、それまで手書きだった聖書が印刷によって大量に生産できるようになったことの巨大な影響が、レプリカを通してでさえ伝わってきたのだと思います。

これ以外にも、西洋の古い書籍でのローマン体組版の完成度には目を見張りました。東洋の印刷だと、駿河版銅製活字は結構完成度が高いなんですが、それでも古代の西洋の書体や組版と見比べると見劣りしますね。古代ローマの碑文は偉大だったんだなあ、という当たり前のことを思いました。

あと面白かったのが、写植機の実物展示と仕組みの解説。恥ずかしながら、写植が写真植字の略称だということを知りませんでした。レンズの組み合わせで一つの字形から大きさや縦横比などを変えていくんですね。昔のワープロ文書だと、見出しではフォントサイズを変えるのではなく横長にしたりしてますが、この辺にルーツがあるんでしょうかねえ。

もう一つ、思いがけなく楽しかったのが、研究会の中で凸版文久体に関するご講演が聞けたこと。凸版印刷のオリジナル書体で、以前からある凸版書体の改訂版とのこと。自分のEvernoteを調べてみたら、開発開始のプレスリリースがちゃんと保存してありました。私はヒラギノ大好きなのですが、明朝体での縦組みでは凸版文久体の方が美しいか。これが電子書籍端末に載ってくれたら、気分良く読めそうです。

ともあれ、とても楽しい企画をやっていただいた研究会スタッフに感謝です。

最近嬉しかった話

今年度前期のプログラミング演習でGitとGitHubを触ってもらったという話を書きましたが、その後、とても嬉しいことがありました。

同じ学生さんたちを対象に、後期もプログラミング演習をやっています。今度はRubyを一から始めて、最後はWEBrickを使った簡単なWebアプリケーションを作るのがゴールです。

その一週目、学生さんたちの様子を見ていたら、Bitbucketのレポジトリ一覧を開いている学生がいるのです! ということは、当然、Gitを使ってソースコードのバージョン管理をしているということ。今まで、うちの大学の学部生でGitをこんな風に自主的に使っているのを見たことはついぞありません。いやー、驚きました。

話を聞いてみると、演習の課題などいろいろレポジトリにつっこんで管理してるそうで、公開してもいいものはGithub、そうでないものはプライベートレポジトリが無料で使えるBitbucketと使い分けてるんだそうな。Githubがプログラマにとってのポートフォリオになっていることも理解してました。

さらに、Webに興味があって自分でなんか開発をしてみてるようで、ReactやElixirも当然知ってました。いやー、演習中なのに思わず雑談に花が咲いてしまいましたよ。こんな話は、いまの職場だと、学生はもちろん教員でもほとんど話が合わなくて、WEB+DB PRESSやRebuild.fmでひとり勉強するみたいな感じだったんですよねえ。それもいいんだけど、勉強しても使う機会がないよなあ、という感じだったので、正直、すごく楽しかったです。

こういう刺激がもっと得られるところで働けたら楽しいだろうなあ、と思いましたねえ。

ちなみに、彼ほどではないにせよ、彼以外にもGitを使ってる学生が何人かいるようです。前期の私のプログラミング演習をきっかけに彼らがGitを使い始めたのかはわからないですが、どうあれ、こういう学生たちが出てきてくれたこと自体がすごく嬉しい。彼らが将来社会で活躍してくれることを心から願いました。

Vagrant+Virtuoso-opensource-7のChef Recipeもどきを公開しました

大向一輝先生がVagrantとVirtuosoでローカル用のSPARQLエンドポイントをつくるというドキュメントを公開されたのを知りました。一見して、Chefを使えば作業のかなりの部分が自動化できそうだなあ、と思いましたので、さっくり作ってGitHubで公開しました。

使い方はGitHubに書いておきましたが、Vagrant, VirtualBox, ChefDk, それにvagrant-omnibus, vagrant-berkshelfという2つのVagrantプラグインをインストールして、このレポジトリをgit cloneしてもらえば簡単に使えるようになっています。MacOS Xでしかチェックしてませんが、Windowsでも大丈夫じゃないかと思います。

なお、VMを一つ立ち上げてVirtuosoをサービスとして動かすまでを自動化しており、その意味ではChefのRecipeとは呼べません。Virtuoso関連は一つのサブRecipeにまとめていますので、もう少し頑張ればちゃんとしたRecipeにできると思いますが、とりあえず公開することにしました。

あ、そういや、Serverspecのテストも書いてなかったなあ。まあ、公開するのがまず優先ということで。

2015年度後期の吉備創生カレッジで講座を担当します

公式ページでアナウンスが出たみたいなので、こちらでも告知をしておきます。

2015年度後期の吉備創生カレッジで、講座を担当することになりました。3回の講義形式で、2015年11月26日、2015年12月10日、2015年12月24日、いずれも15:30から17:00を予定しています。場所は山陽新聞社本社ビル(岡山市北区柳町2-1-1)です。

岡山県内の4年制大学や一部短大、岡山県、岡山経済同友会などが運営する大学コンソーシアム岡山という産学官連携組織がありまして、ここと山陽新聞社が共催する生涯学習講座が吉備創生カレッジです。平たく言うと、地域の住民の方に大学の教員が出張講義をします、というような感じです。

実際のところは、コンソーシアムに所属する大学に対して講座提供の依頼が来まして、その結果を集約して開講しているのだと思われます。ですから、期ごとに開講内容も担当教員もまちまちです。うちの学部の場合は、都度、学部長や学科長から声かけ(一本釣り)が行われているようで、今回は見事に釣られてしまいました。

内容は、せっかく聞いていただくならそれなりに楽しんでいただかないと、という、毎度のサービス精神が働きまして、インターネットの仕組みや現状、近い将来としました。リタイヤ後のシニア層が聴衆の中心だということなので、お孫さんがおられる方もかなり多かろうと考えまして、お孫さんとのコミュニケーションの助けになればいいなあ、などと考えています。もちろん、シニアでない方が来ていただいても全然構わないと思います。

受講には事前の申し込みが必要です。定員は50名、受講料2,270円だそうです。詳細は吉備創生カレッジのページをご覧ください。

2015-12-30追記:この講座で使用したスライドを下記で公開しています。

今年度の新講義その2: 全学1年生にSNSとの接し方を話しました

いまさらという感じなのですが、今年度初めて担当した講義の振り返り2つ目。6月3日に、勤務先大学の新1年生全員を対象に、SNSとの接し方について話しました。いわゆる新入生教育の講義の1回でして、他には片岡聡一総社市長も登壇されたようです。

そもそもこういう新入生向けの講義は、聞いてる側のモチベーションは高くありません。さらに、本学での時間割は午後の最初。昼食が終わって眠くなる時間です。

幸い、話題は学生さんには興味を持ってもらえそうです。そこで、幾つか仕掛けを入れて、学生さんのテンションを上げようと考えました。1つめが、この講義用にTwitterのハッシュタグ(#opusns0603)を用意すること。今の学生さんがよく使うSNSはLINEとTwitterであるという話を聞くので、講義の最中でもある程度はツイートしてくれるかも、という期待からでした。2つめが、アイスブレイキングを設けること。特に学生さんに他人事と思わせたくなかったので、インタラクティブなやり取りにしたいと考え、幾つSNSのアカウントを持っているかを挙手してもらう、“SNS”という言葉から連想することを学生さんにマイクを向けて聞いてみる、というものを用意しました。

そしてもう一つ。私から話を押し付けすぎないこと。私もSNSのアカウントは多数持っていますし、普段から使ってもいます。けれど、18歳そこそこの彼らとは、SNSとの接し方も、使い方も、生活に占める割合も、全く違うに違いありません。だから、彼らにとってのSNSを尊重した上で、それでもなお伝えたいことを伝え、彼らに考えてもらうきっかけにしてもらいたい。そんなつもりで話を組み立てました。当日使ったスライドを貼っておきますが、「明学生が考えたSNSのための5つの合言葉」を中心にしました。

そうそう、些細なことですが、私が講堂の壇上で話し、学生さんは客席、という形だったので、なるべくステージの前面で話すようにしました。Steve Jobsのプレゼンスタイルを意識しました。

で、結果がどうだったか、ということなのですが…上記のハッシュタグを見てもらうとわかる通り、アイスブレイキングと思っていたコーナーでタイムラインが暴走してしまい、それ以外ではほとんどツイートがない、という、予想外の方向に進んでしまいました。まあ、寝させない、という意味では成功したともいえますけど、講義としては反省材料が多かったな、と思います。

私もTwitterを講義で使うのは初めてで経験不足、学生さんも講義中に堂々とTwitterを使えるのは初めてでテンションが上がっている、そんな状態のときにランダムにマイクを向けたものだから…暴走はある意味当然でした。

一方で、技術的制限で今回はスクリーンにタイムラインを映すことができず、Twitterのアカウントを持ってない人は暴走に参加できずに蚊帳の外だった点も反省点です。勉強会なんかではタイムラインをスクリーンに映してますが、あれ重要なんだなあ、とよくわかりました。

数人の学生さんから講義後にいい感想のツイートがあったのが救いでした。あとは、学生さんのレポートにどんなことが書かれているかですねえ…まだ手元に来ていないので、期待半分、不安半分で待ちたいと思います。

ACM ICPC国内予選、初めて突破!

前の投稿の続きを書かないとなあ、と思いながら、1ヶ月。ちょっと号外的な出来事があったので、先にこっちを書いてしまいましょう。

さる6月26日に、ACM ICPC (International Collegiate Programming Contest) の国内予選がありました。で、私の勤務先である岡山県立大学のチームが見事、国内予選を突破しました。私が知る限り、うちの大学としては初めての国内予選突破だと思います。

ずっと以前は、腕試しの機会として、研究室の学生に参加を勧めていました。年に1〜2チームは参加していたかと思います。ただ、このコンテストに興味を持っておられる方ならご存知だと思いますが、事前にコンテスト用の対策をしっかりしておかないと、正直なかなか歯が立ちません。教員からの働きかけでは学生さんのモチベーションも上がらなかったのか、あまり対策もしないまま本番を迎え、当然成績は振るわず。そんなことを繰り返すうち、こちらも参加を促すことをやめてしまいました。

そんな中、今年は学生さんから「参加したい」と申し出がありました。他研究室の学生さんでしたので、一旦は、自分の研究室の教員にお願いしたら、とも言ったのですが、結局監督を引き受けることにしました。今思うと、以前のチャレンジの時のやり残した感が残っていたせいかもしれません。

国内予選が始まって驚いたのが、彼らの手の早さ。問題の把握も、アルゴリズムを考えるのも、コーディングも、すべてにおいて、以前のチャレンジの時とは全然違いました。過去問での練習など、自分たちでだいぶ準備をしていたようですが、地力も、うちの大学の学生さんの平均的なレベルからは段違いでした。易しめの問題A〜Cを解き終えた時点で、一時は25位につけていたと思います。これはひょっとしたら突破できるかも、と、こっちが熱くなってしまいました。

結局この後、問題D以降は正解を出せず、終了となったのですが、学生さんの可能性を実感できる、本当にいい体験でした。監督を引き受けてよかった。

11月のアジア地区予選は、まあ思いがけないプレゼントみたいなものですね。7問正解の東大チームに勝てるとは正直思えないですし。

プログラミングに関して指導できることはあまりなさそうだし(もう、ICPCに関しては彼らの方が上だと思います)、彼らが楽しんでいい経験を積めるよう、後方支援に徹して、11月に向けて準備をしてあげようと思っています。

今年度の新講義その1: TCP/IPネットワークプログラミング演習

今年度は、初めて取り組む講義が多い年です。現時点で3つ完了、今後行うものが2つ。長いこと大学の教員をやっていますが、大学が変わっていないのにこんなに新しい企画が多く来るのは初めてです。その中で、ここに書いても差し支えないものについて書いておこうと思います。

まず、2年生を対象にTCP/IPネットワークプログラミングの演習を行いました。いわゆるソケットを用いた通信プログラムの演習です。演習回数は2回、1回あたり2コマ(3時間)、プログラミング言語はCです。

ここ何年か、自分ができる範囲で、通信に関わるプログラミング教育を少しずつ充実させてきました。最初は何もなかったところから、Rubyによる簡単なWebアプリケーション構築、Webを支える技術に関する網羅的な講義を順に立ち上げ、今回、もう一つ下のレイヤ(TCP/IP)まで対象を広げたわけです。やっと情報工学側の教育内容と通信工学側の教育内容との橋渡しが一通り完成したかな、と思っています。

とはいえ、内容の構成にはかなり苦労しました。対象となっている学生は、1年生で一通りC言語の学習・演習を終えたところで、あまり複雑なプログラムを書くスキルは身についていない、という状態です。また、講義についてもちょうど同期に情報ネットワークに関する講義を受けている状態で、通信に関する知識がそれほど身についているわけではありません。このような学生たちにTCP/IPのプログラミングをさせるのは結構難しい。そもそも通信というもののイメージがつかめていない学生が大半でしょうから、多少の説明程度でソケットを扱うプログラムが書けるとは到底思えません。

そこで、プログラミングの課題は2週目のみとし、1週目はその準備をさせることに専念しました。

準備の1つ目は、ifconfig, netstat, dig, telnetなどのLinuxコマンドを通して、TCP/IP通信の概要をわかってもらうこと。これは一緒にこの演習を担当している先生のアイデアで、そのまま採用させていただきました。

2つめは、あらかじめ私が用意したTCP/IPサーバとクライアントのサンプルプログラムを実際に動かして、動作を確認すること。そして、次回への予習として、このプログラムのコードリーディングをさせることとしました。ソケット通信のプログラムでは、彼らがこれまで使ったことのないシステムコールを多用しますので、これらについても自力であらかじめ調べさせることにしたわけです。

ここで、演習内容とは直接関係しない小ネタを少し入れて、今時のソフトウェア技術者に必要なスキルをほんの少しだけ体験させることにしました。一つはGitコマンドとGitHubの利用。学生には、Gitコマンドを使って、GitHubからサンプルコードを取得するようにさせました。もう一つは、オープンソース界隈で当たり前のように使われているGNU configureを使ったプログラムのビルド。サンプルコードを、GNU configureからmakeの流れでコンパイルするようにしておいたのです。いずれも、細かい仕組みを説明するところまではやらなかったので、十分とは言えないのですが、いずれこれらを使う必要が出たときに少しくらいは足しになるかなあ、というつもりです。

2週目は、すでに配布したサンプルプログラムを改良して行う課題を2つとしました。1つは、通信メッセージの内容を少しカスタマイズする課題で、サンプルプログラムの流れがわかれば、基本的なC言語の知識があれば解ける問題。もう1つは、いわゆるエコーサーバの実装です。対象学生にはかなり歯ごたえがある問題でしょうが、サンプルプログラムをちゃんと読めれば、手が届かない問題ではないと判断しました。

提出されたレポートを見ていると、半数以上はエコーサーバまで到達しているようで、友人のプログラムをほぼ借用、というケースはあるだろうことを割り引いても、目標はまずまず達成できたというように思っています。中には、Cプログラミングと通信とが今まで結びついていなかった、という(ある意味衝撃的な)感想もありまして、こういう演習をやる価値を再認識させられました。

研究者のWebページはあまりモバイル対応できていない?

Googleが、モバイルフレンドリーかどうかを検索ランキングの要素として使い始めると発表したので、自分が管理しているWebサイトのモバイル対応を行いました。ほとんどはレスポンシブWebデザインにしてあったんですけど、見直してみると、Google Sitesを使っている自分のメインページに設定ミスがあったりして、見落としてるもんだなあと思いました。

やった作業はたいしたことなくて、自分でCSSを書いているサイトについて、Googleのチュートリアルにしたがって、viewportを設定して、600ピクセルをブレークポイントにしてmedia queryをかけ、簡単にスタイルを設定しただけなので、作業時間は2時間もかかってないです。まあ、本当はデザインを根本的に見直すべきなんでしょうけど、またそれは別の機会としました。

で、これからが本題。ついでに、自分の勤務先の大学内のページとか、同業の研究者のページとかがどれくらいモバイル対応しているか、Googleのチェックツールで調べてみたわけなんですが… ほぼ壊滅でした。大学内では、私が関係しているサイト以外どこもviewportの設定がないような気がしました。情報系やデザイン系の学部があるというのに、どういうことなんでしょう… 同業の国内研究者のページ(Webに関わる研究をやっている情報系の教員ばかりです)も同様でした。1つだけ、WordpressのWPtouchプラグインを導入しているらしきサイトがあったんですけど、このプラグイン、ブログの記事が時間順にトップページに並ぶので、研究室のような静的ページ中心のサイトだとあまり良くないと思います。

さらに、研究者のポータルサイトとして有名なresearchmapというサイトがあるんですが、これもviewportの設定なし。

確かに、研究者がWebにアクセスするのはパソコンが中心でしょうから、自分たちはこれで困らないと思うんですが、さすがに世間のWebの使われ方(モバイルファースト)と乖離しすぎのような気がするんですよね。現に、普段相手をしている学生たちはみんなスマートフォンでWebを見ているわけで、モバイル対応のサイトでないと彼らにアピールしづらいと思うのです。

企業だったら、自分たちがWebデザインに明るくないのであれば外注を考えると思うんですが、大学の研究者だと、 入門書を買って勉強するなり、Webデザインソフトを買うなりして、まず自分たちでやることを考えるんでしょうね。自分も研究者の端くれだから、その気持ちはよくわかる。ただ、それでは最低限のクオリティを維持できないほど、Webの現場の話が複雑になってるということなんでしょう。

あー、もしかして、研究者向けにいまどきのWebデザインの入門を書いたりすると、需要があったりするのかな。需要があるんだったら、やってみてもいいかな。

所属研究室名が変わりました

現職に就いて以来、ながらく「知能メディア工学研究室」という名前の研究室に所属していたのですが、つい先日、研究室の名前が「人工知能学研究室」に変わりました。教授が昨年4月に交代し、研究室として取り組んでいる課題が人工知能寄りに変わったためです。

もっとも、自分が取り組んでいる内容はやっぱり構造化文書やWeb、ソフトウェアで、特に変わるわけではありません。1年間、機械学習ベースの研究の話を聞いてきたけど、この辺はやはり勘が働きません。50歳近くになって乗り出すには畑が違いすぎるなあ、と改めて実感した次第です。

というわけで、関係者の皆様、引き続き宜しくお願いします。