第1回授業報告(2008.05.30)
古代の自然の脅威に翻弄される人の姿をはなし、自然災害をいかに予測するか、という人のモーチベーションをはなした。
「これから、自然の移り変わる姿をあらわそう!」という一言で、授業をはじめた。
具体的にはボールをキャッチボールすることからはじめ、ボールの位置と時間を設定した後に、速度の定義から、ボールの次の位置を予測する式を導き出した。この式を繰り返し用いれば、ボールの運動を予測することができる。
プログラムを開始する以前に「座標の導入、式の変形、漸化式の計算と理解」という概念的なことを、紙と鉛筆でしっかり行った。
こういった数学的な操作は、「難しい」と思われがちなところであるが、未来を予測する式を手に入れ、かつ、足し算と引き算、かけ算がだけで、世界の全てを記述するというおもしろみを感じてもらえたようである。ボールの運動において、この瞬間と次の瞬間をつなぐ式の意味にまで到達した。ここまでくれば、あとはプログラムの実践あるのみである。
プログラムでは、x=x+1という1行がどのようにボールの運動を記述するのかを考えながら、シミュレーションを行った。コンピュータの実行には、逐次計算と条件分岐があるが、一文に、実際に値を当てはめてみて、ノートに数値を書きながら、プログラムがどのように実行されるのかを、確かめながら、プログラムを書いていった。、プログラミングの基本である逐次計算と条件分岐の理解に到達した。
「ビリヤードをつくろう!」という課題では、境界においてボールが跳ね返るという現象を「if」を使った条件文を書かなければならないが、ボールが跳ね返るということは、なにが変化しているのかを考えるのが、ポイントである。さらに逐次計算と条件分岐を一文のC言語から理解していく、というところに重点をおいた。
今回の授業で学習した内容
・位置と時間の座標
・速度の定義
・式変形
・プログラミング言語の基礎
・C言語の構造(逐次計算と条件分岐)
次回は、地面に鉛直に落としたボールが跳ね返る現象をシミュレーションで実行し、プログラミング上での式の意味、プログラムがどのように実行されるのか、さらなるアルゴリズムの構築を目指す。