わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

二人羽織プログラミング

プログラミングにおけるコミュニケーション能力を向上させる方法を,考えてみました.
その名も「二人羽織プログラミング」です.

共通ルール

「タイプする人」と「指示をする人」の2人からなります.それと別に「審判」を置くことにします.なお,うまく運用すれば,「指示をする人」が「審判」を兼ねることも可能です.
「指示をする人」は,「審判」から,紙に書かれたソースコードを受け取ります.
「タイプする人」は,キーボード(やマウス)を操作して,効率よく入力をしていきます.画面を見ることも当然できます.しかし,紙に書かれたソースコードを見ることは,できません.
「指示をする人」は,紙に書かれたソースコードのほかに,「タイプする人」が操作するパソコンの画面を見ることはできますが,キーボードは操作できません.
「審判」の見ることができる範囲は,「指示をする人」と基本的に同じです.まあ,紙に書かれたソースコードは,コピーを取っておき,「指示をする人」と「審判」がそれぞれ持つべきでしょうね.
アクセス可否について,表にしてみます.

参加者 画面 キーボード ソースコード
タイプする人 ×
指示をする人 ×
審判 ×

協力型

よーいどんで開始.「指示をする人」の指示をよく聞き,「タイプする人」がタイプしていきます.
「指示をする人」は,タイプされるたびにその画面と紙のソースコードとを見比べ,違っていたら,すぐに修正を促します.
完成したら,コンパイルして,正しく動作するかを確認します.
正しく動作したか,修正箇所はどれだけあったか,所要時間などをもとに,「審判」が総合評価をします.

対決型

「指示をする人」と「タイプする人」で対決するルールも,作ってみました.
よーいどんで開始の前に,「指示をする人」には作戦タイムが与えられます.「審判」が用意するソースコードは,正しく動くものですが,指示をする人は,意図通りに動かないよう,いくつか偽の指示を出します.しかし指示する途中で即興的に出すのでは,後で判定ができないので,作戦タイムのときに,あらかじめどこをどのように指示するかを,書き込んでおきます.紙を2部作るのなら,書き換え箇所を同じにするのを忘れずに.
よーいどんで開始します.「指示をする人」は,書き込んだ箇所には書き込んだ内容を伝えます.もちろん,書き込んだ箇所にせよ,書き換えていない箇所にせよ,指示と異なるコードを「タイプする人」が書いていたら,指示通り書くよう指示します.
もちろんそれで終わってしまうと,「タイプする人」は,動かないプログラムをタイプしただけとなり,ゲームになりません.途中,またはタイプ終了時に,「タイプする人」は,ここは偽ではないかと指摘することができます.それがアタリなら,「タイプする人」に1ポイント.ハズレなら,「指示をする人」に1ポイント.

実用性について

ここまで簡単に「指示」と表現してきましたが,実際のところ,どのように指示をするか,つまりソースコードに含まれる特殊な記号や言語特有のキーワードをどのように言うかについて,何も書いていませんでした.
これについて,「二人羽織プログラミング」は,ペアとなる「指示をする人」と「タイプする人」とでプログラミングに関して会話できるよう,表現や技法について共通認識を得ることを目的にするといいと思います.なので,具体的な言い方については,「指示をする人」次第ということです.
おそらく,「指示をする人」は「タイプする人」よりも,そのプログラミング言語に親しんでいて,いわば手ほどきをするやり方がいいでしょう.そして協力型で3回もやれば,まあ使用するソースコードにもよりますが,共通認識を得るには十分だと思います.
「指示をする人」と「タイプする人」を交代して,コミュニケーションをとるのなら,対決型のほうがいいでしょうね.

参考にしたもの