オープンソースを使うと情報演習はこんなに楽しい
2009/11/14 オープンソースカンファレンス 2009 高知 (プレゼンテーションモードでご覧ください)
情報を教えて20年
- ほぼ、情報処理学会四国支部と同じ
- 1990年(バブルまっさかり)高知大学に情報科学科ができた
- それまで、地球物理/気象学(南極行ったりしてた)
はじめてのCは
- そろそろ BASIC が付録に付かなくなった
- C言語でも教えるか
- M$C でも使うか
- え、ライセンス? ... シーッ
UNIX との出会い
- cc が付いてくるんだ
- gcc もあるんだ
- yacc, lex 便利(学生/付いて来てない)
PostgreSQL を教える
- DB 担当の先生が逃げた
- 授業担当がまわってきた
- まともにやったことのない SQL を教えることに
- PostgreSQL を使ってみるか
テーブルの結合
- 商品/顧客/売り上げ ... 別の世界だ
- 子供が見ているテレビがヒント
- モーニング娘。のハロープロジェクトなんかどうだ
君も つんく♂ になれる
- データベース教材を開発
- 商品ではなく タレント(娘)
- 顧客ではなく ユニット
- 売り上げでなく、メンバー表
例題
- 「モーニング娘。」で「ミニモニ。」でない人を検索しなさい
- 副問い合わせを用いて「プッチモ二」全員の姓・名・血液型を求めなさい
- etc. etc.
- DB の担当ははずれたが、教材は引き継がれている(らしい)
楽しいプログラミング
- DB 担当をはずれて、「専門情報処理演習」に
- (この演習は UNIX に慣れることが目的 ... コマンド使いになること)
- やっぱり、プログラミングを教えなきゃ
- Python と出会う
プログラミングの課題といえば
- データ構造とアルゴリズム
- でも、そのデータ構造がどんなに便利か、体感してないよね
- 占いプログラムで体感する
いちご占い
- 好きなフルーツの名前で占う
- いちごで いい占いが出るのはお約束
- 最初は if / elif / else 分岐
- 次に ディクショナリ に入れてハッシュを体感
- ユーザとのやりとりで、賢くなる占いプログラムにする
- 最後は ファイル入出力 で、データを永続化 (pickle ではないが)
理学部1年進路未定
- 共通教育の情報処理にも Python を入れてみた
- 数学/物理だけでなく、化学/生物の学生も
- パソコンはつついてきたが、プログラミング何それおいしいの?
学生の感想より
- 数字を入れるだけで自動的に計算してくれるところが、とても不思議な感じがした。これをきちんと使えると、とても便利だと思う。
- ちょっとした作業でパソコンがほとんどやってくれるのですごいと思った。
- 円周率が10000桁出た時はすごいと思った。
好感度に調子に乗る
- 次は Sympy を教えてみた
- Symbolic Python ... Mathematica もどき
こんなんとか
- 展開:
In [1]: f = (x + y)**2 In [2]: expand(f) Out[2]: 2 2 2*x*y + x + y
こんなんとか
- 微分:
In [1]: diff( sin(x)*cos(x), x ) Out[1]: 2 2 cos (x) - sin (x)
こんなんとか
- 積分:
In [2]: integrate( cos(x)**2, x ) Out[2]: x cos(x)⋅sin(x) ─ + ───────────── 2 2
学生の感想
- とっても難しかったです↓(;д;)泣
- 難しかったです。さいごまでできなくて残念でした。
- 数学も苦手だし、まだ与えられたものをまねしているだけなので、全然自分のものにできた気がしません。
- ちなみに数IIまでしかやってない 理系 の1年生もいる
反省
- 先生がひとりで楽しんでしまいました。
結論
- 教えたいことについて、必ずツールが見つかります
- オープンソースを使うと情報演習はとても楽しいです