アンプラグド:関数とクレイジー条件文

教材

  • 鉛筆
  • 紙 (もしくはインデックス・カード)

Inputs process outputs

コンピュータ・プログラミングでは、アルゴリズムはひとまとまりの命令語のことを指します。

アルゴリズムは、コンピュータに対して入力をどのように処理するかを指示し、さらに出力がある場合はどのような出力するかを指示します。

算数のクラスで「関数マシーン」というものを見たことがあるかもしれませんが、それもアルゴリズムの1例です。

Inputs function output

関数マシーンは入力情報を取り入れて、それを処理し、出力を生成します。

入力をx、出力をyで表す「入出力表」に、入力と出力の情報を記録することが出来ます。例えば:

入力 (x)   出力 (y)
======================
    1           2
    2           4
    3           6
    4           8

特定の出力結果を得るために、入力がどのように処理されているかを判断する、というのは算数のごく一般的な問題です。 上の例の場合、それぞれの入力値は2倍(2を掛ける)になっていることがわかります。

入力(x)          処理 =>       出力 (y)
======================================
    1            * 2             2
    2            * 2             4
    3            * 2             6
    4            * 2             8

アンプラグド: あなたは何の関数?

このアクティビティでは生徒はプレイヤーAとプレイヤーBとして二人一組のペアで行います。ペアのひとりが関数マシーンになって、もう片方のパートナーからの入力を処理します。

生徒に、処理結果の記録の仕方を指導します。 鉛筆と紙を使うやり方でも、紙の代わりにインデックス・カードを使用するやり方でも構いません。 紙に書く場合は、入力と出力の値が表になるように記録していきます (上の例を参考にしましょう)。 インデックス・カードを使う場合はプレイヤーAがインデックス・カードの表に入力の値をひとつ書いた後、プレイヤーBに渡します。プレイヤーBはその裏に出力の値を書き込みます。

始め方:

  • まずプレイヤーBは、プレイヤーAから渡される入力を処理するための、算数の関数または簡単な数の操作をあらかじめひとつ選びます。
  • プレイヤーBは使用する関数(もしくは数の操作)を別の紙に書いて、プレイヤーAからは見えない場所に置いておきます。
  • プレイヤーAはプレイヤーBに処理する数を伝えます。
  • プレイヤーBはその数に処理を加え、結果を出力としてプレイヤーAに返します。
  • 次に、プレイヤー A はプレイヤー Bがどのような関数(もしくは数の操作)を使って、与えられた入力から出力を生成したのか当てようとします。1回の入力と出力を1ラウンドとして、ラウンドにつき一度だけ挑戦できます。
  • プレイヤー Aが正しく言い当てることが出来たら、プレイヤー B はそれまで隠しておいた関数を見せて正しいことを確認し、役割を交代して新しいゲームを始めます。
  • プレイヤー A が当てることが出来なかった場合は、プレイヤー Aは新しい別の入力をプレイヤー Bに与え、プレイヤー Bはそれを処理して出力を返します。
  • プレイヤーBがどんな関数(もしくは数の操作)を使っているかを、プレイヤーAが出来るだけ少ないラウンド数で言い当てることがゴールです。
  • 最低でも1回、それぞれの生徒が関数マシーンとしてプレイしたら、時間の許す限り多くのラウンドをプレイします。

追加情報:

  • 使用できる関数の難易度に関しては、教師と生徒と話し合ったうえであらかじめプレイ開始前に決めておきます。 それ以外の方法としては、プレイヤーが自分で作成するかわりに、教師がランダムに選んだ関数カードを生徒たちに配るというのもあります。
  • 入力データを与える役割のプレーヤーは勘に頼って関数を言い当てはいけません。なぜ与えられた入力がそのような出力になるかをきちんと説明できなくてはなりません。
  • 簡単な関数の例: > [ ] 8を足す > [ ] 6を引く > [ ] 3を掛ける > [ ] 2で割る
  • より複雑な関数の例: > [ ] 2を掛けて、1を引く > [ ] インプットを2乗する > * [ ] インプットの20%を返す

アンプラグド: クレイジーな条件文

このインタラクティブで楽しいアクティビティは、コンピューター処理としての条件文とイベント ハンドラーを生徒たちに紹介するのに適しています。 アクティビティ全体を読んで、あなたのクラスや教室の必要に応じて調整しましょう。

準備

  • 印刷した条件文が別々の札になるようにバラバラに切り取ります。
  • いくつかの条件文は複数の生徒に与えられますが、別のいくつかの条件文は生徒ひとりにだけ与えることが出来ることに注意してください。
  • 最初に使う ‘BEGIN’ 以外の条件文を、印刷面が下になるように配ります。
  • ‘BEGIN’条件文と’STOP’条件文とは別に、少なくとも 2 つの異なる条件文を各生徒に与えます。 このレッスンで生徒たちは、多くの条件文を取り扱うことがとても大変であると実感するでしょう。コンピューターにとっては大したことはないですが! : )

注意点:

  • いくつかの条件文は複数の生徒に与えられますが、別のいくつかの条件文は生徒ひとりにだけ与えることが出来ることに注意してください。
  • 専門的には、これらの条件文はイベント ハンドラーと呼ばれます。生徒たちは行動の引き金となるイベントが発生するのを待っているのです。
  • 特に指示がない限り、学生は話しをしたり、アクティビティ中に大きな音を立ててはいけません。

拡張/バリエーション:

  • AND、OR、またはその両方のステートメントを条件文に加えてみましょう。
  • 入れ子になったIF条件文を作成してみましょう。
  • 生徒たちにIF条件文を作らせてみましょう。
  • Relate this activity to a system and have the students create the conditionals that would end in a product of some kind or the completion of some task. Give these 2 conditionals to all students.
  • These 2 conditionals will be triggered only once.
  • These conditionals start and stop this activity.
  • Give the first ‘BEGIN’ conditional to the students PRINT SIDE UP. IF the teacher writes the word ‘BEGIN’ on the whiteboard,
    THEN flip over the conditionals in front of you and follow the directions. IF you see the word ‘STOP’ on the whiteboard,
    THEN sit back, cross your arms, and look at the teacher (smile!).

=================================================================

Give these 6 conditionals to multiple students.

  • These 6 conditionals may be triggered more than once.
  • Walk around the classroom during the activity to trigger some of these conditionals.

IF the teacher says the word ‘popcorn’,
THEN stand up and say ‘Pop!’ once and sit back down. IF any student stands up for any reason,
THEN clap 3 times. IF anyone writes on the whiteboard with a GREEN marker,
THEN get up and touch something GREEN in the room and sit back down. IF anyone walks past you while you are seated,
THEN snap your fingers 3 times. IF someone snaps their fingers AND you have the letter ‘e’ in your first name,
THEN select a book from the bookcase and sit back down. IF anyone writes anything on the whiteboard,
THEN get up and turn around in place one full turn and sit back down.

Give one student each of the following 7 conditionals.

  • These 7 conditionals will be triggered only once and set in motion the spelling of STOP on the whiteboard. IF the teacher picks up a book,
    THEN get up and write the letter S on the whiteboard and sit back down. IF someone writes the letter S on the whiteboard,
    THEN go open and close the classroom door and sit back down. IF someone opens and closes the classroom door,
    THEN get up and write the letter T (after the letter S) on the whiteboard. IF someone writes the letter T on the whiteboard,
    THEN get up and turn the lights on and off and sit back down. IF someone turns on and off the lights,
    THEN get up and write the letter O (after the letter T) on the whiteboard. IF someone writes the letter O on the whiteboard,
    THEN get up and sharpen a pencil. IF someone sharpens a pencil,
    THEN get up and write the letter P (after the letter O) on the whiteboard.