小波ゼミのページ


ゼミの内容と目標

小波ゼミでは,さまざまの自然,社会現象に関するシミュレーション のためのプログラムを作成することを課題としています。 まずはプログラミングの基礎から学び,それを適用する課題を 探して,シミュレーションを実現します。

卒業研究では,シミュレーションを中心としたプログラムの作成を 行います。

これらの制作をつうじて,プログラミングのみならず,そのまわりのさまざまな 知識や技術を習得していくことがゼミの教育方針です。 つまりプログラム作成自体は,知的に大きく成長するための 遠くにある山のようなもので,そこに至るまでのたくさんの努力と関連の知識・技術習得, そして自分の力に対する自信を付けて行くことが目標といっていいでしょう。

プログラミング技術の意味について

プログラムを書けるということは,あらゆる情報技術において最低限身につけておかねば ならない技術のひとつです。いわば情報技術の根幹なのです。 たとえばネットワークの管理においては,たくさんの情報をうまくさばく技術が必要です。 人間の力ではとうていできない分量ですから,管理者は簡単なスクリプト(テキスト処理の プログラム)を書いて必要な情報を抽出したりしています 。

ウェブコンテンツを作成する人も,JavaScript のようなプログラミング言語を使ったり,CGI プログラム などで動的な処理をさせています。サーバへのアクセスの解析も Perl やRuby のプログラムで行われます。

最近は特にネットワークの飛躍的な発展にともなって,データベースと連携したウェブサービスの 需要が爆発的に増加しています。各種検索エンジンや 楽天,価格.com などのサービス, Mixi のような Social Network Service (SNS) を考えてみればそのことは理解できるでしょう。 そういうわけで,たくさんのプログラマーが求められている時代なのです。

職業としてのプログラミング技術について

以上のような状況の中で,女性のプログラマーもどんどん生まれています。文系であることは まったくハンディになりません。プログラマーの半分は文系といってもいいほどなのです。 プログラマーの多くが高度な数学を必要としたのは,20年前までの話です。

このゼミの卒業生の中には多くのプログラマーがいます。大手に行って親を安心させている人もいるし,小さい企業でリーダーシップをとって開発に力を注いでいる人もいます。卒業生ではありませんが, 子育てをしながらフリーのプログラマーとして生活を支えている女性もいます。ようするに 技術を習得すれば,性別や経歴に関わらずやっていける職業といっていいでしょう。

情報系の仕事の大きなやりがいは,いくらでも勉強することがあり,力量を高めて行くことができる というところにあると思います。現に小波が代表を務めている Ruby 関西という コミュニティでも,多くの若い人が毎月自発的に集まって互いに 教えあっています。その中には本学の卒業生を含む女性のプログラマーもいて,大きな力を発揮して います。

プログラマーというのは固定的な職業ではありません。知識や技量を高めて関連する分野に動いて行く人も多くいます。システムを開発する上での役割は,マネージメント,顧客との対応,設計文書の作成など多岐にわたり,プログラミングはそれらの共通項として知らなければいけない技術なのです。 したがって,学生のうちに基本的なプログラミングを学ぶことは, IT 関係の職業に必要な 足場を築くことになるわけです。

その他の職業に就いた人もいます

小波ゼミを出て IT 系に就職する人は6割というところで,他の職種に就いた人も もちろんいます。高校の先生,大学院,一般事務,不動産業,小売業などです。 追跡調査をしているわけではありませんが,パソコンにくわしいということ で評価されたりもしているようです。変わったところでは,卒業後ビーズ屋さんに 勤めたものの,仕事がつまらないことに気づいてIT系に転職した人もいます。

いずれにせよ,他人にできない技術を大学のうちに身につけておくことは, 将来何かで役に立つことがあるかもしれません。多くのゼミの活動では 現在の自分の知的好奇心の追求が目的であって(それ自体はもちろん とてもすばらしいことです),それ以上の職業的な意味は持つわけでは ありません。このゼミの特質は,知的追求のための営為が将来のための技術獲得にも 直結するというアドバンテージを持っていることにあると,私は考えています。

私はなぜプログラミングが好きなのか

小波はプログラミングが大好きです。どの趣味よりも多くの時間を費やして, 仕事や遊びのプログラムを書いているはずです。それはなんと言っても創造的な作業であり, 困難と達成感とを常に味あわせてくれるからなのだと思います。仕事としてのプログラミングは 納期に追われて苦しいこともありますが,いったん力を得れば快刀乱麻の働きをコンピュータに させることができる,実にスリリングな刺激に満ちているということが, 多くの人をとりこにしている理由なのです。


共通の連絡

HIKI ページ

ファイルをやり取りしたり,相談したりするための Wiki ページです。

学内からの入り口
学外からの入り口 (ここから入ってから,上の URL にアクセスしてください。)

Ruby 勉強会

Ruby関西主催の恒例の勉強会。隔月の土曜日の午後に開いています。 都合をつけて出るようにしてください。 勉強会案内


卒業研究関係

卒論企画発表

中間報告

場所は S315 教室

3回生も参加してください。 2回生も関心があれば出入りしてかまいません。

卒論を進めるには

夏までは材料を集めたり,理論的な力やプログラミング技術の向上を 図る期間です。試作も必要です。夏休みに作業すべき内容をしっかり詰めましょう。

とにかく本を読み漁ってください。プログラミングなどに関する ドキュメントを読むことも大切です。ひとりで勉強を持続できない人は研究室に 常駐してください。

8月か9月に合宿を行います。このときの中間発表がきちんとしているかどうかが, 成功の決め手です。


演習III-IV

履修にあたって

ゼミ生は「プログラミング演習II」,「数理モデル」も合わせて履修してください。

春合宿と前期講義期間

Javaプログラミングの基本とライフゲーム,セルオートマトン

夏合宿と後期講義期間

いろいろなアルゴリズムを実装しよう(詳細未定)。

★そろそろ卒研のためのネタを集めよう。 本を読もう。人と話そう。勉強会やゼミをやろう。

TeX で論文を書こう

論文やレポートの作成のために,日本語 TeX をインストールしてください。 TeX のインストールの案内


卒研のアイディア

まだ早いんじゃありません?

3回生の終わりまでには卒研のテーマを見つけましょう。

原則として,学生が自分で発案したものは最大限に尊重しています. 自分で思いついたアイディアの実現性が不安なケースについても,話 し合って可能なやり方を探っていくことにしています. 言語に関しても,Java, Ruby が主ですが,C で書いた人もいましたし, たいていの言語は小波の守備範囲に入っているので,好きなものを出していただいて 構いません。ただし,処理系が有償であるとか,もうトレンディでないようなものは お断りしています(これまでCOBOL をやってみたいという人がいましたが,言語としては ほとんど古代物なのでやめてもらいました)。

テーマとしては, とうてい無理なアイディアの場合,たとえば音と動きがばりばりの ゲームなどというのは,あきらめてもらっています.技術 的に未熟すぎることと,それ自体の教育的・研究的な意味が見出せないからです. それ以外には, 単なるウェブコンテンツの作成というのは認めていません。もちろん,Java, Javascript,CGI,PHP,SVG などを使って新しい何かに取り組むのでしたらオーケーです。

どんなふうにして決めてきたか

参考のために, これまでのテーマがどのように決まったか,いくつかの事例を紹介しておきます. なお,これらのテーマがすべて目標を完全に達成したというわけではありません. 未完に終わってしまったものもありますが,それも経験のうちで, その過程を通じて学ぶものがあればよいのです.

免疫系のシミュレーション

これをテーマとした学生は高校の生物で免疫系の仕組みの 複雑さに大きな興味を持ち,T細胞とマクロファージが 共同して侵入者を撃退するようすをシミュレーションで作って目で見てみたいという 希望を持っていました.そのシミュレーションをマルチエージェント システムで実現することにして,Java で動くプログラムを開発しました.

テーマパークにおける親子の行動

「人口社会」の参考書にはテーマパークの中での待ち時間に関する情報提供 の影響とか,「どろけい」遊びの戦術の検討といった研究が紹介されています. そこから,テーマパークの中で親子が歩き,子供が迷子になるようすを シミュレーションで実現しようというアイディアにつながりました.

音楽の好みを調査するためのアプリケーション

このテーマで進めた学生はもともと音楽が大好きで,楽器の演奏にも 熱心でした.やっまた他学科の講義で音楽理論についても 学んだりしていました.プログラミングも楽しいということで, MIDI の規格を勉強してもらい,与えられた長調の曲の音楽データを 短調に変えて演奏したりできるようなアプリケーションを 作成しました.やや高度な課題で結果的には未熟な段階で終了しましたが, 自分のプログラムで音楽を鳴らすことができることにとても感激して, それなりに満足な結果であったようです.

琵琶湖の生態系のシミュレーション

外来魚の侵入によって琵琶湖の在来の魚種の生存が危機に瀕しているという 状況は,環境問題に関心を持つ人はだれでも知っているでしょう. その状況を 考えてみようという 希望があったので,小波が空間発展を取り入れた Lotka-Volterra 方程式による 基本的なシミュレーションのプログラムを 提示して,それをモデルにしながら解析を進めました.

こんなテーマも考えられます

まだ実現していませんが,こんなことをやってみたらどうだろうという アイディアを適当に書き散らしておきます.この線でやってみたいということ であればそれでもいいし, ぜんぜん違うことを考えてもらっても結構です.

社会性昆虫の行動シミュレーション

アリやハチのように社会的生活を営む昆虫の 研究は現在大きな関心を持って進められています. たとえばアリがえさを探索する行動であるとか, アリの集団が資源や環境をめぐって争う様子のシミュレーション というのは,興味のある課題になります

情報伝達や病気感染に関わるシミュレーション

「うわさの伝播のシミュレーション」という卒研を提出した 学生がいます.このように人間社会で情報が伝達されたり,あるいは 病気が広がっていく様子をシミュレーションで解明することは, 実際的にも大きな意味があります.

スモール・ワールド

まったく知らない場所で,間接的な知人に会って驚くことがありますね。 遠くに引っ越して近所に見つけたパン屋の奥さんが,自分の生まれた場所の すぐ近所に住んでいたことがあるとか,大学で初めて会ったクラスメートなのに, 実は共通の友人でつながっていたとか。 それを スモール・ワールド現象といい,コンピュータを使った社会学の分野で注目されています。 この課題にはまだ誰も挑戦していませんが,やってみませんか?

1次元セルオートマトンを進化的アルゴリズムで 成長させる

前期にやった 1次元セルオートマトンは,232通りもの膨大な可能性 を直接的に取り扱うことを避けて,64通りしか現れないような 規則を使って,そのふるまいを調べました. しかし,まともにやればもっと面白い パターンがあったのに,実はそれを見逃しているのかも 知れないのです.特に対称でないケースについての探求は まったくなされていません.
もちろん40億通りもの場合を調べ尽くすことは 不可能ですから,進化的アルゴリズムを利用して,面白い パターンの登場を促すというやり方を考えたいのです.

交通渋滞や火災からの脱出のシミュレーション

最近「渋滞学」という研究分野が注目されていて,高速道路での車の渋滞や 災害時の人の脱出などの群衆の動きをコンピュータで再現して解析することが さかんに行われるようになりました。すでに小波ゼミの卒研でも取り上げて がんばっている人がいます。

気象データの可視化システムの開発

すでに小波が開発して動かしている太陽光エネルギーのオンデマンド可視化システムが あります(太陽光観測プロジェクトのぺージの中を参照 ).
これは未完のプロジェクトであり,たとえば平均気温の推移など をユーザからの要求によってグラフ化して見せるような可視化システムを 作ることは,社会的に有意義なことです.プログラミング上の技術的な課題を 学ぶことも,大いに勉強になるはずです.