Archive for the ‘e13’ Category

(不定期コラム) 学外イベントに参加して今後の検討材料にしよう

金曜日, 7月 5th, 2013

今週末はイベントがあるようなので、今のうちに紹介しておきます。

個人面談とか機会がある毎に話しているつもりですが、自分から時間作って「(できるだけ)目的を持って」参加してみよう。初めてのイベントなら「面白そう」とかで参加するのもありですが、目的の有無で得られるものも変わってきますので、できれば目的を立てて参加してみよう。先日の穂苅先生講話でもあったように、「動機付け」が学習を形作るためには必要なので。


ということで不定期コラム11回目はイベント紹介です。

イベントその1、オープンソースカンファレンス。もう10年以上になるかな? 年1回の「オープンソース」をキーワードにしたお祭りの沖縄サイトという位置付けイベントで、参加してる組織はほぼ決まってるような気もしますがこういう世界があるんだというのは見ておくべきでしょう。

イベントその2、りゅうぎんアントレプレナー支援セミナー。運営のリバネスさんは沖縄事業所があって、サイエンスショーとか人材育成、共同研究等手広く「いろんな所と手を取り合って」頑張ってるという印象があります。起業するかどうかはどういう人がどういうことしてるのかに触れてみるという意味で、一度はリバネスさん絡みのイベントに参加してみることをお勧めします。

(不定期コラム) アドレスの意味と、C言語でありがちなミスを観察してみる例題 / プログラミング1

土曜日, 6月 8th, 2013

m_2013060811582951b29dd5a1782 m_2013060815265051b2ceaa69125

写真はピーノ・ヴィーノの牛肉とキノコのボラーニャ風手打ちパスタ。パスタ本体はともかく、ともかくこういうソースを作れるようになりたいなー。

プログラミング1でポインタ周りの話に突入したらしい。ポインタ虎の巻とか参考になる情報源もいろいろありますが、代表的な鬼門だということで例題記事を一つ書いてみます。


ということで不定期コラム8回目は「アドレスの意味と、C言語でありがちなミスを観察してみる例題」を眺めてみます。

ソース: address.c

コメントやprintf()が多いので長く見えますが、char 型変数のメモリサイズを確認(step1)し、各変数のアドレスを確認(step2)、値を代入して出力確認(step3)、配列の範囲外にアクセスしてみる(step4)、範囲外も含めてアクセスした箇所のアドレスを再確認(step5)しているだけです。

環境によって実行結果も異なりますが、私の環境では以下のような結果になりました。

step1: char型変数のサイズを確認。
size: c=1

step2: 各変数のアドレスを確認。
address: &c=0x7fff5b7a8487, &d[0]=0x7fff5b7a8485, &d[1]=0x7fff5b7a8486

step3: 素直に各char型変数に値を代入して出力してみる。
char: c=1, d[0]=2, d[1]=3

step4: 用意した配列の外側にアクセスしてみる。
char: c=4, d[0]=2, d[1]=3, d[2]=4

step5: アクセスした変数のアドレスを一通り確認してみる。
address: &c=0x7fff5b7a8487, &d[0]=0x7fff5b7a8485, &d[1]=0x7fff5b7a8486, &d[2]=0x7fff5b7a8487

実行結果だけでは分かりにくいので適宜ソースとにらめっこしながら眺めて欲しいですが、ここで問題なのは step4 で d[2] へ値を保存した結果、変更していないはずの c の値が変わってしまっている(上記赤字箇所)ことです。

ここで確認しておきたい点は次の3点です。
(1) char型変数は1バイトで保存されること。
(2) 配列は連続したアドレス空間(メモリ空間)を確保すること。
(3) 配列確保時の個数を越えてもアクセス自体はできてしまう(アドレスによってはアクセスした時点でプロセスが死んでしまうこともある)こと。
この3点のためC言語プログラミングでは、step4のような「不適切なアクセス方法」が実行出来てしまい、それが原因となって想定外の結果を引き起こしてしまうことが少なくありません。

上記を踏まえて、クイズです。

  • このようなミス(予め確保した領域外へのアクセス)を防ぐ、もしくはミスに気づき易くするためにはどのような方法が考えられるだろうか?
  • char型変数は1バイトで保存されるが、int, float 等他の型では何バイト必要だろうか?
  • (発展課題) メモり空間上はバイト単位で区切る敷居と値を保存する領域が用意されているだけで、どこにも「char型変数を保持している」とか「int型変数を保持している」という情報は残されていない。例えばcahr型変数を1バイト、int型変数を2バイトで保存するとした場合、「連続したメモリ空間上の0x00から始まる2バイトの領域」にchar型変数が2個保存されているのか、int型変数が1個保存されているかを直接区別することはできない。C言語においてはどのように対応しているのだろうか?

(不定期コラム) 何をやるにしても体が資本

土曜日, 6月 1st, 2013

m_2013060112464851a96ea8a8cd3 m_2013060112483551a96f13a1fc3 m_2013060113433851a97bfa2d3dd

先週の個人面談ウィークで先輩主催のプログラミング補習にお世話になってる1年生が結構いるらしいということで、お礼を兼ねて話を聞いてみるべく主な主催者を集めてもらって馬之助で食べてきました。趣旨としては、去年先輩にお世話になって助かったので「何らかの形で今年は教える立場で」、「(同学年間でも一緒だけど)互いに教え合うことで一緒に乗り切ることを伝えたい」ということで授業の復習的な位置付けで課題設定したり、習ってる所までの復習をテーマにあれこれ検討実施ししているようです。イイネ!

一方、1年生に限った話ではないですが、体調崩してる人がちらほらいるらしい。


ということで不定期コラム7回目は、シンプルに「体を労ろう」というお話。

おじさん目線からは「若い頃は多少無茶しても少し休めば何とかなってたけど、今のうちに健康管理できるようにしてた方が」みたいな話になっちゃいますが、それでもたかだか入学して高校生活までと食生活やら居住空間やらの変更で大きく体調崩しがちな人もいるのも事実なのでやっぱり体は労った方が良いですよという結論。好き嫌いせずに適度にバランス良く食べよう。それなりに体動かそう。座ってるだけじゃ絶対に体が錆びるし。そしてなるべく夜更かしは避けて規則正しい生活で過ごせるようにスケジュールしてみよう。

自分自身の問題だけじゃなく、外的要因(ホコリ/カビ/etc.)も十分あり得るので身の回りにも気を配ろう。勿論共有の自習室等は皆で綺麗に保ってください。

(通常と違って)体調不良がやけに長引いてるとか、原因が良く分からない場合には病院なり保健管理センターなりで相談してみよう。自己判断だけで長期間放置するとそれだけ悪化してしまうこともあるので、体のためにも時間を作って労ってあげよう。

課題があるから、とかでも無理のし過ぎで体を壊してしまっては本末転倒です。そういう時には個別に担当の先生と相談してみてください。必ずしも考慮してくれるとは限りませんが、自分からそういう相談をすることも含めて社会勉強です。

ど忘れしてる学生を呼びだしたりしながらオープンキャンパス調整

金曜日, 5月 31st, 2013

m_2013053112035451a8131ad0572 m_2013053115154551a840118b009

e13個人面談でまだ連絡が無い学生に対してまずは個別にメールを送ってみた結果、数時間ぐらいで数人は反応。2名は今日で面談実施まで終了。今の所反応が遅れてる学生については「単に忘れてた」ケースしかないです。そういうのも含めて意図的に今の時期にタスク盛り込んでたりするので、今回の件でスケジューラなりを使うようになってくれれば良いかな。まだ連絡が無い学生については数日待ってみてから電話呼び出しの予定。そっちの方が早いんだけど、それじゃ「最終的には電話してくれる」という局所解に陥っちゃうので基本的には最終手段です。真の最終手段は「実家に凸」だけども。

オープンキャンパスの調整が始まりました。今回はやや体験ツアーの内容に変更が入りそうな雰囲気です。学科としては何度か「祭り出店方式(各会場でどういう出しものしてるかをまとめたマップを配って、参加者は自由にあちこち見てもらう)」にしたらという話は出るのだけど、どうしても学部としてまとめようという方向が強くてどうにもならないのは残念。学科毎の都合があるのもわかるから他学科に強要するつもりは無いけど、同じ理屈で勝手なことやらせて欲しいんだけどなぁ。ということで、全体の流れとしては数年前の模様と様変わりはしない予定です。2008年の様子とも大きくは変わらないか。ここら辺の写真に写ってる「参加者」の中に、今情報工で頑張ってる人もいたりするのかしら。

そうそう、メインで使ってる複雑研webサーバ(evaドメイン)が繋がりにくい状況ですが、サーバ移行作業のためここ数週間はまだ不安定です。ご了承ください。

1年生のヘルプで微妙に悩む

水曜日, 5月 29th, 2013

m_2013052912521751a57b7107c16

今日は会議も授業も無く、1年次のプログラミング相談対応と研究室学生の研究相談してた以外はずっと実験準備をしてました。明日はクラスタリングと3次元プロットの演習がメインで、空き時間次第で自然言語処理入門をやる予定。その延長でscipy.sparseさんを使った疎行列も例に挙げようかなと思いつつ、どこまでやれるかは状況次第か。

午前中は「読み込んだ文字列を暗号化するプログラムと、元に戻すプログラム」という課題(C言語@プログラミング1)が出されているらしい1年次からのヘルプ対応。少なくとも話を聞く限りではまだポインタor配列習ってないっぽいのだけど、途中まで書いてたプログラムを眺める限りではgetchar()さんで1文字ずつ読み込んでホゲホゲという流れで、確かにポインタとか使ってないコードになってる。ただし、暗号化の流れ次第では「1文字が複数文字に対応」する形を避けられないため、苦労しているという感じ。長ったらしく書けばポインタ無しで書けそうですが、fgets()さんsscanf()さんにご登場してもらってあれこれアドレスとかの話をしながら対応することに。「インデントはtabキーで揃えて〜」とか突っつきながら。

それはそれで良いとして、デバッグのこと考えたら最初から Eclipse なり統合環境使わせた方が良さそうなんだけど、そうしてないのは何か理由があるのかしら。個人的にはテキストエディタの存在を植え付けたいぐらいの理由しか思いつかない。。

データマイニング班でもテキストエディタ使ってたりしますが、別に強制はしてないし最初でAptanaさん使った方がデバッグなりオブジェクトの値参照なりは楽だよとは言ってるし。(と言いつつ、私自身も普段はターミナル&エディタがメインで詰まった時だけしか統合環境使わないですが)

(不定期コラム) 興味のあることはどしどしやろう

土曜日, 5月 25th, 2013

m_2013052512030551a029e93878c m_2013052513181351a03b85e84ba

写真のカレーは那覇高校向かいにあるゴカルナです。オススメ!

今週は、入学したばかりの学生e13に対する個人面談ウィークでした。まだ実施できてない学生もいますが、話を聞いて感じたことは「興味のあること/やってみたいことはあるけどまだ具体的には行動してない」層が結構いるという点。4月に入学してきたばかりではあるので、高校生活とは違う環境での修学スタイルに慣れるとか諸々の事情で時間が取れてない学生も少なくないらしい。けど、一方では「具体的に何か取り組んでみようか」という方向に意識が向いていないというか「やれることがあることに気づいていない」だけのケースも多々あり、面談では「その目標に近づくためにどう歩んでみたら良いか?」という話をやってました。


ということで不定期コラム6回目は、情報工学科に入学した学生なだけあって多くの学生がなんとなく興味があるプログラミング関係、中でもゲーム開発やモバイル端末でのアプリ開発についていくつか紹介してみます。なお、面談を通して少なくない学生が金曜夜に先輩が開いてくれてる補講/勉強会に助けられてるらしいことが分かりました。(誰か分からないけど)ありがとうございます。

ドットインストールは「無料の3分動画でマスターできる、初心者向けプログラミング学習サイト」とある通り、いろんな分野のプログラミング初学者に向けた動画チュートリアルです。動画なだけあって「必要に応じて止めたり遡って話を繰り返し聞いたり」ということはし易いですが、文字テキストじゃない分探したい場面に戻るというのはし難いかもしれません。1年次のC言語について予習/復習したいならC言語入門もありますし、簡単なiPhoneアプリを作るiOSプログラミング入門もあるようです。

iOSのゲーム開発チュートリアルの例としては、例えばiPhone / iOS開発者とゲーマーのためのチュートリアルではCocos2Dを使ったサンプルが多数紹介されているようです。なお、「Cocos2dxでiOS/Androidの2Dゲーム開発を始めるには」を読む限りではCocos2dxだと複数環境で動作するようです。

課題ベースの例としてはCodeIQや、CodingBatみたいなものもあるようです。CodeIQは偏ってはいるかもしれませんが、企業から「こういうことができる人材を求めている」というような課題が出ることもありますので、そういう方面での情報収集としても使えなくはないかも。

ちょっと変わった例としては、web関連技術の一例であるCSSがどのように関わってるかを可視化するのが出てるらしい。気になるデザインのサイトについてCSS調べてみる際には便利かも。開発モード付きのブラウザ使えば十分かもしれないが。

ここで列挙してみたのはあくまでも一例です。他にも山程ありますし、英語の勉強兼ねて国外のチュートリアル探してみるのも良いでしょう。例えば40+ Fantastic Game Development Tutorials From Across the Webとかいうサマリもあるようです。プログラミング関連技術に限りませんが、世の中には良くも悪くもいろんな玉石混淆な公開資料がありますので、自分がやりたいことについては貪欲に収集して手をつけてみよう。入学時に購入してもらったノートPCは皆さんの武器(ツール)です。購入費用以上のことを得るためにも、使い倒そう。使うことが目的になると元の木阿弥なので、興味のあることについて貪欲になろう。

濃霧で包まれたキャンパス

水曜日, 5月 22nd, 2013

m_20130522123614519c3d2e7e595 m_20130522182603519c8f2b74a4d

午前は個人面談。午後は会議。以上。

個人面談は「xx時〜yy時は学籍番号aa~bb」みたいに割り振りつつ、実際の順番は早く来た順にやるというやり方。かつ、一人あたりの時間がのびのびになってるので中盤ぐらいから扉の外で待ち行列生成されちゃってるんですが、それを見かねたのか隣室の岡崎先生が椅子を準備してくれていたらしい。ありがとうございます。

帰宅する頃にはこの季節にはちょくちょくある濃霧で包まれたキャンパスになってましたが、地上からはまだ少し霧が濃いなぐらいで殆どは中空がメインだったっぽい。逆に言えばもっと酷い状況があるということですが、そのうちなるんでしょう。

合間に明日のデータマイニング班準備をしてますが、明日はスペシャルゲストが登場する予定です!

個人面談の約半数が終了

火曜日, 5月 21st, 2013

m_20130521184007519b40f7132da m_20130521184551519b424faa32d

昨日から始まった個人面談もそろそろ半分(31/66)が終了です。木曜日までで第一陣が終わり、今回の面談に来れなかった/欠席した学生は来週呼び出します。一人あたりの時間がやや延び気味で、7-8分かかっちゃってるかな。それでもやや足りてない(話したいことをカットしてる)ですが、今の時期に俯瞰することを優先してるので仕方ない。後日であれば個別に十分時間取れるし、終了時に「また来ても良いですか?」と聞いてくる学生もいるので、短時間とはいえこちらから関係を迫る()ことに意味はあるんだと思います。

割とお疲れモードなんですが、日に数十人とか面接なりしてる人はタフだなー。

[複雑研全体ゼミ補足記事] 5/20, テキストの意味や意図、マンガ推薦 / e13個人面談開始

月曜日, 5月 20th, 2013

m_20130520123458519999e26e915

今週はe13の個人面談ウィークです。1対1で対面式で話をするという機会の提供でもあるし、早めにテコ入れした方が良さそうな学生の発掘でもあるし、どんどん先に進んで欲しい学生へのアドバイスをする機会でもあるつもりですが、一人あたり5分+αぐらいしか取れてないので何かしらの切っ掛け提供以上のことにはなってないかも。それでも「何となく情報工学科入学した」とか「こういうことに興味があるけど具体的には行動してない」から一歩前進する切っ掛けになれば。

初日から一部来てない&連絡も無い学生が既に居ますが、ま、そういうもの。そういう学生は後日呼び出し対応するしかない。

以下は複雑研全体ゼミを終えての補足記事です。


来週で1巡目が終了になります。
再来週からはゼミの目的を変更し、トピック毎に掘り下げて基礎〜応用について皆で勉強するということを主題にします。各学会誌の特集記事や、専門書等から複数人でグループを組み、分担して説明できるように準備してください。リソース(特集記事や専門書等)についてはいきなり確定するのではなく、事前に候補として提案してください。問題無ければそのままそれを担当してもらいます。

以下、今日の全体ゼミ討論中に出てきたキーワード
 ・松田昇悟: [1] テキストの意味や意図
 ・平良浩嗣: [2] マンガ推薦
での関連話を補足します。
(NAL研MLでピックアップ済みが多いです)

[1] 文間関係認識のための構造的アライメント, 言語処理学会 第16回年次大会 (NLP2010), E3-7
[2] マンガの概要に基づく作品推薦システム, 第11回情報科学技術フォーラム (FIT2012), N-013


>テキストの意味や意図

2つの文間関係を判別するというタスクにおいてアライメントを用いた一例として [1] を紹介していたかと思いますが、このような文間関係を使って談話を理解しようとする試みの一つが「修辞構造 (rhetorical structure)」や「修辞構造理論 (RST)」と呼ばれています。

NLP2013からの例では、[3] は単一文書要約に、[4] は論理構成の整然さ評価に、[5]は応答文生成に、というように応用例の幅は広いです。どういう応用を見据えるかによって、その基礎を積み上げていくかも変わっていきますので、何かしら具体的なタスクを想定しておくと良さそうですね。

[3] 談話構造に基づく単一文書要約, 言語処理学会 第19回年次大会 (NLP2013), A5-1
[4] 文章構造解析に基づく小論文の論理構成における整然さの自動評価, 言語処理学会 第19回年次大会 (NLP2013), B3-1
[5] 対をなす二文書間における文対応推定および応答文生成への応用, 言語処理学会 第19回年次大会 (NLP2013), B3-3


>マンガ推薦

技術的には情報推薦に興味があって、その一例としてマンガにも興味があるということで [2] を紹介していたかと思いますが、自身でも疑問に感じていたように「そもそもストーリーを表現できているのか」「ストーリー特徴だけで推薦できるのか」という点では不十分な点もあるようですね。

「ストーリー」をどう捉えるかという点では、物語生成の分野で「プロップ理論」に基づいた事例がいくつか出ているようです[6,7]。

ストーリー以外の要素として、[8] では「スピード線」の違いが知覚に及ぼす影響について調査したようです。[9]は概要しか見れませんが、マンガ教材における影響について討論しているようです。同じグループらによる別の発表が [10] で公開されてますね。

[6] プロップに基づくストーリー生成機構と状態管理機構との結合, 言語処理学会 第19回年次大会 (NLP2013), P1-14
[7] 『物語の森』ー物語生成システムの統合的応用の一試行ー, 2012年度日本認知科学会 第29回大会, P1-29
[8] スピード線描写の違いが速さ知覚に及ぼす影響, 2012年度日本認知科学会 第29回大会, P3-14
[9] マンガ教材学習における登場人物の視覚的特徴が印象に与える影響, 第6回エンターテイメントと認知科学シンポジウム 資料
[10] マンガ描画技法が学習者に与える印象の分析ーマンガ教材の品質改善に向けてー, JSiSE 2012, http://www.jsise.org/taikai/2012/program/contents/pdf/E4-1.pdf

(不定期コラム) 「情報」って何だろう?

土曜日, 5月 18th, 2013

m_2013051819403451975aa25c67e

梅雨最中の貴重な晴れ間という一日で外出しやすい日でしたが、気温的には20度前後が過ごしやすいので早く冬が来ないかなという思いで綴る不定期コラム5回目は、大分古いですが「新世紀デジタル講義」からの引用出題です。10年以上前の情報教育関連講義をまとめた文庫本ということもあって古いキーワード/トピックもありますが、「積極的に拾い読み、トバシ読みををすすめるのは、それが、情報が氾濫する現代社会において、情報リッチに生き抜いていくためにまず身につけなければならない情報摂取の基本ワザであるからだ(同書, p.17)」など、現在でも通用する内容も豊富です。

ということで、書籍紹介を兼ねて宿題を引用してみます。

 情報学講義の最初の講義として、そもそも情報とは何なのかという問題を考えてみたいと思います。しかし、実はこれは大変むずかしい問題なんです。むずかしいけど大事な問題です。
 情報の確立された定義はありません。ーーということをまずしっかり認識してください。
 宿題を提出してください。

[宿題が三題提出されている]
 (1) 今日の日経新聞朝刊を読んで、何らかの意味で情報に関係がある記事を赤ペンで囲ってみる。
 (2) 情報という言葉がちがう意味で使われている短文を五つ考える。情報を含む四字熟語を五つ考える。
 (3) 自分なりの情報の定義を考えてみる。

 宿題は、本当にやったかどうか知りたいだけで、内容をチェックするようなことはしません。
こういう作業を自分でやってみることが大事なんです。目的は、情報という概念の広がり、情報と社会の接点の多さ、情報という言葉の定義のしにくさを知ってもらうことです。

(「新世紀デジタル講義」, pp.89-90 より引用)

この宿題は、第1章の講義「情報原論」の導入部分で出てきています。「情報」についての多数の定義例や歴史的背景を踏まえ、情報理論、デジタル、ノイマン型コンピュータ、人間という情報マシン、非ノイマン型、物質・エネルギーと並んで自然を構成する二大要素としての情報、、、と話が進み、「情報原論は、情報というものをこれくらい深くとらえるところからはじめるべきです。」と結んでいます。

斜め読みで構わないので一度は読んでみると良いんじゃないかな。>e13の皆さん