教育用のRuby
基調講演とM17Nについてのセッションの後は、立て続けに教育に関するセッションが並んだ。
これらはいずれも実体験に基づく興味深い内容であったが、ここでは、特に増原英彦氏の『Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば』を取り上げる。
なぜならば、増原氏のセッションでは、Rubyについてこれまでほとんど語られることがない側面が取り上げられていたからだ。
非OOPLとしてのRubyの利用
最初に増原氏は、コンピュータサイエンスの授業でRubyを利用していることを説明した。つまり、Rubyはコンピュータサイエンスにおける諸概念をプログラミングを通して教えるためのツールとして利用しているのであり、Rubyプログラミングを教えているのではない、ということだ。
この観点から、次のようにRubyを利用している。
少ない制御構造
制御構造としては、if then elseとwhile、そしてfor i in min..(max - 1)の3種類の利用に留め、Rubyの特徴であるイテレータは教えない。
オブジェクトをオブジェクトとして意識させない
講義がオブジェクト指向パラダイムに到達するまでは、メソッド呼び出しに「.」を利用した書き方は教えず、関数的な記述か、演算子としての記述のみに限定する。
例えば、絶対値を取るために、Numeric#absメソッドを呼ばせたりはしない。
これらは、講義で教えたい内容以外の要素が入り込むことを避けるための方策だ。
なぜRubyを選択したか
では、なぜRubyなのか? という疑問は当然あるだろう。最初から非OOなプログラミング言語という選択肢があるからだ。これには、次のような複数の理由がある(注1)。
Macに既定でインストール済みの処理系
学生の教育用のコンピュータとしてMacが導入されているのでMacで動作することが大前提である。
自宅で自習したい学生のために、WindowsやLinuxでも簡単にインストールできる処理系
ほとんどの学生はWindowsコンピュータを所持していると考えられるため、簡単にインストールできるWindows版の存在が望ましい。ちなみにWindows版としてはActiveScriptRubyを示されているそうだ。
フリーな処理系
同様に、自習用にインストールする学生のことを考えると、フリーな処理系が望ましい。
配列が利用できること
講義で使うため、組み込みの配列が必要。最初はDrSchemeを考えていたそうだが、この点で脱落したそうだ。
対話型環境
これまでの感触から、ソースファイルをエディット、保存した後に、コンパイルするというのはバリアーになるので、対話型環境が良い。Rubyには、irbという対話型環境があるため、この点を満たしている。
標準ライブラリの充実
Benchmarkライブラリが用意されているため、アルゴリズムと計算量の関係を示すのが簡単。
- 修正履歴
-
- 2008/06/27 03:30 「書く引数」→「各引数」 RubyEndのライセンスについて記述を追加
- 2008/06/26 21:24 selector namespaceが疑似コードであることを明記。usingの誤記修正。 否定の!を~と書いていたバグの修正。
この記事は参考になりましたか?
- 【RubyKaigi'08】詳細レポート連載記事一覧
-
- 【RubyKaigi'08】詳細レポート : 多様化するRuby(続)
- 【RubyKaigi'08】詳細レポート : 多様化するRuby
- この記事の著者
-
arton(アートン)
専門は業界特化型のミドルウェアやフレームワークとそれを利用するアプリケーションの開発。需要に応じてメインフレームクラスから携帯端末までダウンサイジングしたりアップサイジングしたりしながらオブジェクトを連携させていくという変化に富んだ開発者人生を歩んでいる。著書に『Ruby③ オブジェクト指向とはじめての設計...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
