TeamMaker

TeamMakerという小粒だがぴりっとしたソフトがある。名簿からランダムにチーム分けをするソフト。

teammaker.gif

外国語の授業では、ペアや三四人で練習させることが多い。そのときにこれを使ってそのつどアトランダムに相手を決めてやるわけだ。そうしないと、クラスメートの中でも、毎回、同じような相手、いつも近くの席にいるような相手としか組まないから、そのうちマンネリ化する。そこでこのソフトを使ってその場でチームを決めてやると授業が俄然「活性化」(笑)する。ありがたいことに作者は無料で提供してくださっている。

あらかじめ名簿を読み込ませておいて、チェック・フィールドでその日の欠席者をはずし、1チームの人数か、チーム数を指定して「振り分け」ボタンを押すと、チーム振り分けが行われる。各チームの男女比をできるだけ均等にするような機能もある。

しかしもともとバスケットボールのチーム分けなどの用途に考えられていて、結果はテキストファイルや html ファイルに書き出すことができるものの、いずれもこのソフトを使ってチームを分けておいて、それをどこかで発表する、という感じだ。授業で使う場合には、Mac の画面をモニタやスクリーンに映し出しておいて、その場で決めるからこそ「活性化」するのだが、そういう使い方には少しなじまないところがある。つまりチーム分けの過程や結果をその場で見せるということはあまり考えられていない。TeamMaker 内で表示される決定チームも、書き出されるファイルも、モニタやスクリーンで見るにはあまり向いているとは言えないのだ。書き出したテキストをその場で整形して Keynote に読み込ませて表示するような AppleScript を書いたこともあるけれど、TeamMaker 自体が AppleScript に対応していないから、どうしても間に手作業が入り、まどろっこしい。あと、細かいことだが、このソフトではなぜかチーム番号が0から始まる。これも日常的な感覚になじまなくて、案外障害になる。

それで、もともと学生のリストと成績の管理に使っていた FileMaker Pro 書類にこのTeamMaker のような機能が組み込めないかと考えた。

外国語のクラスでは、複数のクラスに同一の授業をやっている場合があり、その複数クラスを一つの FileMaker データベースで管理している。だからまずその都度のクラスのメンバーのレコードだけに絞り込み、さらに欠席者をはずしておいて、対象レコードのおのおの(つまりは一人一人の学生)に、チーム番号をランダムに振ってやるスクリプトを書けばいいはずだ。プロから見たら簡単なことだと思うけれど、シロート・スクリプターとしては結構試行錯誤してしまった。

最初、FileMaker スクリプトの Random 関数で生成した乱数(0と1の間の数)を100倍や1000倍して小数点以下を丸めたものをチーム数で割った余りに1を足してチームを決めるというのを考えたのだけれど、これだと各チームの人数が均等にならない。5人のチームもあれば1人のチームもあるような「振り分け」ができてしまう。当たり前か。ともかくこれでは使い物にならない。

次に、チーム数と各チームの人数を割り出して、3人のチーム5つなら、
{1,1,1,2,2,2,3,3,3,4,4,4,5,5,5}
というリストを作り、この各要素をランダムにメンバーにはめていくというのを考えた(単純化のため、人数に余りがでる場合についてはここでは触れない。これは比較的簡単に対処できる)。FileMaker スクリプトではなくて AppleScript。FileMaker スクリプトはそのスクリプト・ステップの一部として、AppleScript を使うことができる(Windows 版 FileMaker での互換性は当然なくなってしまうが)。
リストから要素をランダムに取り出すだけなら AppleScript 特有の some item が使えるのだ。
some item of {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5}
とやると、ランダムにリスト内の項目の一つを抜き出してくれる。抜き出したものを、FileMaker のレコード一つ一つ、つまり一人一人の学生に当てていけばよさそうに思える。
でも、今回の目的には1回使った要素は消さなければならない。ところが、some item で取り出した要素への(それが実際に何番目の要素だったかという)参照はできないらしい。だから使った要素を消すことができない。そもそも、AppleScript では、リストとリストを結合して、たとえば {1,2,3}と{4,5,6}から{1,2,3,4,5,6}を作るのは簡単にできるけれども、要素の一つを消していくというのは案外ややこしいことになる。不可能ではないけれども、消すべき要素が特定できなければ話にならない。

ありがたいことに、ネットを漁ったら、AppleScript でリスト項目をランダムに並べ替えるスクリプト・サンプルを提供してくださっている方がいた。{1,1,1,2,2,2,3,3,3,4,4,4,5,5,5}なら{1,1,1,2,2,2,3,3,3,4,4,4,5,5,5}を、予めランダムに並べ替えることができれば、あとはその要素を順番にFileMakerの一つ一つのレコードにはめていけばいい。これで、チーム分けのスクリプトの大筋はできあがった。

実はかつてはシロートながらにかなり凝ったスクリプトを備えたかなり凝った FileMaker データベースも作っていた。たとえばずいぶん昔、勤め先の大学の僕の所属する学部は他学部にさきがけて、Webでの休講・教室変更掲示板を実現していた。学内でもほとんど知られていないけれど、これは僕がFileMakerで作ったものだ。FileMaker で入力して、ボタン一つクリックすると html ファイルを生成してそのまま ftp でアップロードするというだけのものだが、それを当時「実験実習指導補佐」という名前の安給料のバイト職をしていたTさんが AppleScript の部分をDOSコマンドに置き換えて Windoze 用にポーティングしてくださった。学部の事務室は Windoze ばかりだから、この移植が必須だったのだ。1、2年前、ようやく全学をカバーする同種のシステムが稼働し始めて、これはお払い箱になったが、予想外に長い間現役だった。でも、FileMaker Pro が v.7 で大きく変わって以降は僕は FileMaker にほとんど触っていなくて久しぶりだったので、その点でも苦労してしまった。ver. 6 までは、たとえば table という用語は FileMaker Pro の「用語辞書」には、データベースソフトなのに、なかった。

TeamMaker が備えているような、男女比をできるだけ均等にするというような機能を実装するにはもう一工夫必要だけれども、ようやく何とか使えそうなものができあがったわけだ。FileMaker Pro の Mac 版は、とにかく AppleScript のいうことをよくきいてくれるから、たとえばここから振り分け結果を自動で Keynote に持っていってその場で 見やすく表示することは簡単にできるはずだ。これでまた少し授業が楽しく/楽になりそうだ。

参考:
Marimo さんのサイト
ファイルメーカーPro関数・スクリプト事典
Applescript for Applications (Visual Quickstart Guides)(←少し古くなってしまったが、とても実用的)
Applescript: A Comprehensive Guide To Scripting And Automating on Mac OS X(←850頁の大著。比較的新しく、最近の FileMaker の AppleScript に関するしっかりした記述もある。)

    
  • Google Bookmarks
  • Yahoo!ブックマーク
  • はてなブックマーク
  • del.icio.us
  • livedoor クリップ
  • POOKMARK Airlines
  • ニフティクリップ
  • Buzzurl
  • newsing it!

トラックバック(0)

このブログ記事を参照しているブログ一覧: TeamMaker

このブログ記事に対するトラックバックURL: http://www.tkyabe.com/blog/mt-tb.cgi/348

コメントする

ウェブページ

Powered by Movable Type 4.1

リンク

このブログ記事について

このページは、takuyaがapril 16, 2006 12:34 AMに書いたブログ記事です。

ひとつ前のブログ記事は「海外から Skype で電話する」です。

次のブログ記事は「moodle」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Add to Google
 iTunes Store(Japan)
Apple Store(Japan)