プログラミングでは、教科の学習や身近な問題を考えるときに使える、次のような考え方があります。 |
|
・物事の手順をカメの動きで考えます。【メタ思考】
・大きな問題を小さないくつもの手順に分解して考えます。【分解】
・一連の活動を実現することを手順として考えます。【手順】
・小さな手順と小さな手順をまとめる手順に分けて構造的に考えます。【構造化】
・繰り返し処理で、一連の活動の中に繰り返し処理があるかを考えます。【ループ】
・条件分岐で、一連の活動の中で、作業の流れを変える条件を考えます。【条件分岐】
・カメの動きをクリックや衝突などイベントから考えます。【イベント】
・問題を分析して、命令語やアルゴリズムとの関連を見つけ一般化します。【一般化】
・手順を関数として扱い、一連の活動の大事なことを明確にし抽象化して考えます。【抽象化】
・再帰処理で、一連の活動の全体の繰り返しを考えます。【再帰】
・変数の値や文字の受け渡し、変化を考えます。【変数】
・プログラムの動作を確かめ、間違いを減らす工夫や間違いの原因を探るための考え方をします。【デバッグ】
・カメをプログラムを持つオブジェクトとして使い、活動の流れを時系列の並列処理で考えます。【オブジェクト】 |
▲TOP
【メタ思考】 メタ思考.mwx
物事の手順を考えるとき、カメになった見方で動きで考えます。
「次のようなジグザグの迷路を通り抜けるプログラムを考えよう」という課題で、カメになってジグザグの迷路を進む命令を考えます。
カメになって、前へ 100 右へ 90 左へ 90 の命令を実行すれば良いことがわかります。
下(コマンドセンター)に書かれた命令語の上でEnterキーを押すと命令が実行されます。
▲TOP
【分解】ジグザグに進む.mwx
ジグサグを抜けるという問題を小さないくつもの手順(命令)に分解して考えます。
前へ 100 右へ 90 左へ 90 という命令語をジグザグ迷路を抜けるように並べて実行します。
下(コマンドセンター)に書かれた命令語の上でEnterキーを押すと命令が実行されます。
▲TOP
【手順】 手順.mwx
一連の活動を実現することを手順として考えます。日常会話で使う手順とは別に、プログラミングでの手順は、関数と同じ意味で使うことがあります。ジグザクの迷路を進む手順をLOGO言語の「手順は ~ 終わり」という手順(関数)でプログラミングしてみましょう。
カメを迷路のスタート位置に置いてから、「迷路を進め」のボタンを左クリックすると、迷路を進みます。
▲TOP
【構造化】 構造化.mwx
迷路を進む手順は、前へ進む手順と横へ進む手順を集めた手順と考えることができます。このようにメインの手順とサブの手順で組み立てて考えることを構造化と呼んでいます。
カメを迷路のスタート位置に置いてから、「迷路を進め」のボタンを左クリックすると、迷路を進みます。
▲TOP
【ループ】 ループ.mwx
繰り返し処理で、一連の活動の中に繰り返し処理があるかを考えます。迷路を進むプログラムでは、同じ命令が2回繰り返されているので、繰り返す 2 「 」 を使ってプログラミングします。
カメを迷路のスタート位置に置いてから、「迷路を進め」のボタンを左クリックすると、迷路を進みます。
▲TOP
【条件分岐】 条件分岐.mwx
条件分岐で、一連の活動の中で、作業の流れを変える条件を考えます。
カメが下の色を調べ、下が緑色になったら、右へ曲がり、下が青になったら、左に曲がります。
下が赤になったら終了します。
カメを迷路のスタート位置に置き、「迷路を進む」のボタンを左クリックすると、迷路を進み、赤で止まります。
▲TOP
【イベント】 イベント.mwx
カメの動きをクリックや衝突などイベントから考えます。カメが緑色、青色、赤色の上に乗ったときには、曲がる命令を実行させます。
色の上で左クリックして、カメにイベント命令を書いてOKボタンを左クリックします。
カメを迷路のスタート位置に置き、「迷路を進む」のボタンを左クリックすると、迷路を進み、赤で止まります。
▲TOP
【一般化】 一般化.mwx
問題を分析して、命令語やアルゴリズムとの関連を見つけ一般化します。
このジグザク迷路を抜けるには、右、左、右・・・と繰り返して、曲がります。ダンゴムシが移動するときの動き方です。また、奇数で右に曲がり、偶数で左に曲がると考えることもできます。これをどう一般化して考えるかがプログラミングの楽しさです。
カメの向きを毎回180度回転させると、右、左と交互にすることができます。
カメを迷路のスタート位置に置いてから、「迷路を進め」のボタンを左クリックすると、迷路を進みます。
▲TOP
【抽象化】 抽象化.mwx
カメが迷路を抜けるときの進み方を抽象化して、いろいろな大きさでジグザクがかける「ジグザグ」という名前の手順にします。
「ジグザグ 100 2」のボタンを左クリックすると、ジグザグの線がかかれます。
▲TOP
【再帰】 再帰.mwx
手順の中で、自分の手順を呼ぶと、繰り返しの処理になり、これを再帰処理と呼んでいます。
デザイン の手順の中で、デザインを呼ぶと、無限にジグザグをかきます。
▲TOP
【変数】 変数.mwx
変数を使って値や文字の受け渡し、変化を考えます。カメがジグザグを書いたあとで、元の位置に戻るように 元 という名前の変数を使います。
「デザイン」ボタンを左クリックすると、カメがジグザグの線を書き、最初の位置に戻ります。
▲TOP
【デバッグ】 デバッグ.mwx
プログラムの動作を確かめ、間違いを減らす工夫をして、間違いの原因を探ります。
デバッグするために、青字の命令は、カメの位置を確かめいます。
赤字の文字は、手順の説明しています。
▲TOP
【オブジェクト】 オブジェクト.mwx
カメは、中にプログラムを持つことができるオブジェクトで、それぞれのカメが独立して並列処理をすることができます。
カメの中に命令を書き、無限に にチェックを入れることで、3匹のカメが独立した速さで図形をかきます。
|