上田研究室 Q&A集

新B4の皆さま向けに、当研究室への質問についてお答えします。

目次に戻るときは画面右下に現れるボタンを押してください。

 上田研究室のプロフィール(新4年生向け紹介資料)に戻る

目次

質問と回答

女子にこの分野は向いているのですか?

世界的には、ソフトウェアの基礎分野の女性研究者は多数います。たとえば、2015年に上田がプログラム委員をつとめた一流国際会議を陣頭指揮したプログラム委員長はイギリスの女性大学教授でした。ソフトウェアの基礎に関する良い仕事をしている女性は特にヨーロッパには多く、アメリカに行くとシステム系の元気な女性研究者もいます。

ソフトウェア系の研究室に来る女子学生はアプリ系と比較して多いとは言えませんが、上田研で学士・修士をとった女子学生のほとんどは男子学生と混じって良い研究をして社会に出て活躍しています。

どのような人が向いていますか?

以下の一つ以上に該当する人はぜひ見学に来てほしいと思います。特に、各ソフトウェア系研究室の分野やアプローチの違いを知りたい人は話を聞きに来てください。

なお、開発する側だけでなく、開発したソフトウェアを使う側の人も我々は必要としていて、歓迎します。

どのようなプログラミング言語を使うのですか?

多様です。研究室のミッションの一つは、先進的なプログラミングの考え方・言語・処理系を開拓することですが、そのためにはいろいろなプログラミング言語の考え方や書き方にふれて眼を養うことが重要です。

一方、その高性能な処理系を作るにはC, C++, Javaなどのメインストリーム言語を使います。またプロトタイピングにはLisp系の言語が多く使われています。

学生諸君が最近研究等で使った言語は以下の通り: C, C++, CHR (Constraint Handling Rules), Coq, Erlang, Java, Mathematica, OCaml, Prolog, Python, Reduce, Ruby, Scala, Scheme 等(もちろん、これらをすべての熟知している人はいませんからご安心を)。

プログラミングが不得意だとやっていけないでしょうか?

とりあえず嫌いでなくて、うまくなりたいと思っていればOKです。プログラミングスキルは個人差が大きいですが、これは、いま下手でも上達の余地がものすごく大きいということを意味しています。例年、配属される全員が達人というわけではないですが、達人が必ず1名か2名はいるので他の人が(指導教員も!)そこから大いに学ぶことができます。

また我々は大量のコードベース(先輩たちのソフトウェア資産)をもっており、そこから学ぶこともきわめて大です。

難しいことをやっているという感じがしますが大丈夫でしょうか?

我々のミッションは、人々がより高度なソフトウェア作りに取り組めるように、プログラミングやソフトウェア開発を易しくシンプルなものにすることです。

高度なことを難しい数学や複雑なプログラムなどの腕力でこなすのでなく、できるだけシンプルかつエレガントにこなすのは、大変難しくチャレンジングなことですが、物事を多面的にとらえて一歩一歩(他人が考えなかったところまで)突き詰めてゆけばそのうちできることだと考えています。

どのような実力がつきますか?

など。これらを高いレベルで備え、かつ現状の情報技術への問題意識や夢をもっている情報系の卒業生こそが日本や世界の情報技術の牽引役で、そのような人材を輩出することを大きな目標にしています。

また、我々の研究は開拓的なので、一生懸命取り組むことで、特定分野の知識能力だけでなく地頭(じあたま)がつくのも大きな特徴だと思います。

ソフトウェア系の研究室がいくつかある中で特徴は何でしょうか?

などだと思います。

世界レベルで見たナンバーワンやオンリーワンは何でしょうか?

大学研究室で、先進的なプログラミング言語のきちんとした処理系を自分で構築できる拠点は世界的にも非常に少ないです。特に日本では、このような開発拠点は学生数の多い私立大学だからこそ実現できたと考えています。

個人のレベルでは、Prologに代表される論理型言語の枠組みを並行並列プログラミングの枠組へ展開させたGuarded Horn Clausesの一連の仕事が世界的に最も評価されていると思います。これが遠いルーツとなって現在の諸研究テーマにつながっています。

〇〇(例:ロボット・人工知能 etc.)に興味があるのですが、やっていますか?

相談してください。我々は新たなソフトウェア技術をいろいろな分野に展開・適用することを目指しているので、研究室紹介文に書かれていないような隣接分野との接点を見つけて開拓することには興味があります。

たとえば、我々の開発しているサイバーフィジカルシステムのための言語HydLaの重要な用途として、ロボットの制御系の設計や検証があります。

人工知能との接点で言えば、我々の対象としているソフトウェアや言語は人工知能分野で培われてきた技術(制約処理、探索、自動定理証明等)と大変深い関係にあり、人工知能とプログラミング言語の接点で仕事をしていると言っても過言ではありません。実際に人工知能学会でもよく論文発表を行っています。

実は数学が好きなのですが活かせますか?

はい、ソフトウェアやプログラミングの基礎研究は、ものごとを数学的にきちんと定式化することから始まるので、数学のスキルはとても役立ちます。これまでコンピュータサイエンスの数学というと離散数学や論理学が中心でしたが、サイバーフィジカルシステムが出てきて、連続系も非常に重要となってきました。

実際、我々の研究室には最近数学科からの大学院進学者がいましたが、情報をバックグラウンドとする学生と互いに良い刺激を与え合って、情報の観点から非常に良い成果をあげました。

企業は関心をもってくれていますか?

我々と同じ研究分野(言語処理系、検証系等)に取り組んでいるのは、企業ではトップ企業(IBM, Microsoft等)の研究開発部門です。

一企業が新たなプログラミング言語を提案することはめったにないということは想像つくと思いますが、それに関連する技術は重要です。たとえば米国Googleの幹部の方は、一番大事なのはアルゴリズムやデータ構造のような基本科目をマスターしていることだと明言しておられました。

ソフトウェアの検証については、日本の企業もようやく問題意識と関心をもつようになってきたので、我々との共同研究が始まっています。ソフトウェア検証技術がわかる人材は非常に不足しています。

料理が盛んという噂をききましたが?

料理とプログラミングには多くの共通点があるので、宴会でも手造りに挑戦します。先日の宴会のカレーも、単品スパイスの配合から始まりました(自分で作ると原理がよくわかるところもプログラミングと共通)。

調理器具は、合羽橋で調達した寸胴鍋や一升炊きの炊飯器をはじめとしてしっかり揃っています。EWE100周年と合わせた大OB会を研究室でやったときは、約60人前の料理(ビーフシチュー)等を振る舞いました。

配属学生の中にときどきすごい料理人がいて活躍してくれます。昨年いた一人は本当に料理業界を就職先に選びました。

研究テーマは自由に選べるのですか?

どの分野で何の研究をしたら世界最先端の成果が出せそうかがわかっている人がいたら、邪魔しないでその研究をさせてあげるのが一番ですが、皆さんが普通に見聞きする分野で普通に思いつくアイデアは、普通はだれかがすでにやっています。

なので、研究にとって、テーマ選びはすでに研究の重要な一部であって、容易なことではありません。研究室の役目は、最後は皆さんに最先端のことをやってもらうとしても、それに近い地点まで道案内をしてあげることです。

どの研究室もいくつかのプロジェクトをもっています。我々の各プロジェクトはキーワードこそ開発中の言語名を冠していますが、システムソフトウェアはそれぞれが相当に多面性をもっているので(理論基盤やアルゴリズムからユーザインタフェースまで)、お互いが深く関連しつつも各人がそれぞれ異なる研究を推進することになります。

研究設備や図書は買ってもらえますか?

気軽に相談してください。有効に使ってくれそうなものは前向きに考えます。

国内外の重要な学術書は研究室に多数備わっています。

なお、情報系の研究室としては、3Dプリンタをはじめとして、機械工作や電子工作のための機械器具を多数保有しています。Make というタイトルのベストセラーを知っていますか? ソフトウェアだけでなく、ハードウェアを自由自在に作ることも我々の守備範囲です。

先輩は助けてくれますか?

先輩の面倒見が良いのは研究室の伝統になっているように思います。

卒業して就職したOBも、在学中のプロジェクトのページをときどき見ては自発的にコメントを残してくれたり、バグ修正に協力してくれたりします。本ドキュメントの初版を書いていた日も、Githubに在学生があげたIssueにOBからの反応がありました。

ゼミの日程は?

例年、全体ゼミが春学期は月曜と火曜の午後(4限以降)、秋学期は火曜と水曜の午後(4限以降)にスケジュールされます。春学期の月曜日のゼミは輪読が中心です。他は各自の研究発表が中心です。

このほかに、研究グループごとに進捗報告や議論のための班ゼミを行っています。

海外出張はできますか?(逆に、義務でしょうか?)

もちろんできます。義務ではありませんが、海外に出かけるチャンスを活かすことを勧めます。

学会出張と研究出張(海外との共同研究)があり、後者にも毎年誰かが参加しています。今月は、M1+M1+上田でスウェーデンのHalmstad大学に行って研究室OBの大学教員と合流し、現地の大学教授3名や大学院生等と一緒に一週間ひたすらゼミ(全員研究発表と討論)をやりました。

修論や卒論にはいつごろ着手しますか?

卒論は5月中にグループを決め、春学期末にキックオフ発表、秋学期半ばに中間発表というスケジュールです。

修論は、M1の終わりにしっかりした研究計画書を書きます。

所属グループや研究テーマであまり迷わないことが大事で(これらを決めた後の選択の幅がいくらでもあるため)、早めに進めると、最後に苦労しなくてすみ、在学中の対外発表のチャンスも増えます。

修論や卒論はどのくらい多く書く必要がありますか?

上限も下限もありませんが、修論は結果的に全体で50ページを超える場合がほとんどです。付録を入れると100ページ前後までゆく人もいます。卒論もそれに近いところまで行くことが多いです。

アルバイトなどをしながらでもやっていけますか?

教員が個別チェックや管理はしませんが、各人の判断と見識で、やる人はやっています。スキルがある人はかなり高い時給がもらえる職があるはずなので、(15年以上前ですでに時給3000円という例がありました)、自分の時間と能力を安売りせず、自分のためになる仕事を選ぶよう勧めます。

進学後の就職を考えていますが、研究室でのどのような活動がアピールになりますか?

学会発表等はどの研究室も共通ですが、公開品質の大規模システムソフトウェアの開発にたずさわった経験は、それによってプログラミングのみならず、OS,ソフトウェア工学、チームワークなど実に多様なスキルが蓄積されているはずなので、大きなアピールポイントになるはずです。また、研究室のシステム管理をやってくれる人は、コンピュータシステムの管理能力もアピールポイントになります。

先輩の就職先はどのような会社や業種が多いですか?

やはりソフトウェア関連の仕事をする人が多いです。メーカー、NTT系、ウェブ・ソーシャルネットワーク・ゲーム系などいろいろですが、自らコードを書く(書ける)仕事を選ぶ人が多いのと、大手電機やNTT等の研究開発グループに配属される人が比較的多いのが特徴だと思います。

B4配属で就職活動がこれから本番ですが、並行して研究を行えるでしょうか?

過去のB4配属の人は実に手際よく就職活動をこなしていました。昨今は年によって活動のタイミングが変化しますが、先輩を見習えば大丈夫と期待します。