■「きまぐれロゴ講座」更新中

 プログラミング言語Logoは、MITでシーモア・パパートが中心になって開発された教育用言語です。スクラッチのルーツでもあり、オブジェクトであるカメが主人公になっています。対話型のコマンドセンターを持ち、日本語でも英語でもプログラミングができるので、子どもから大人までカメと対話し、試行錯誤をしながら思いを実現していくのには最適な言語です。
 また、パパートは、著書マインドストームの中で、「プログラムするという考え方は、タートルに新しい言葉を教えるという比喩を通して導入される。」と述べていますが、この講座でも「プログラムするとはどういうことなのか?」ということをテーマにできるだけ体系的に紹介します。「きまぐれ」となっているのは、簡単な例を示しながら楽しめるものにしたかったので、そのことを優先したからです。
 子どもたちは小学校から授業の中でプログラミング体験をすることになり、また、高等学校では教科情報でプログラミングがキーワードになります。指導される先生方も大変だと思いますが、ぜひプログラミングの全体像を体験されてから、必要に応じて授業の中に取り入れていただければと願っています。(山本恒)

 この講座では、Logoの中でも比較的新しいマイクロワールドEX日本語ロゴを使って紹介していますいます。体験版がありますので、次のURLからダウンロードしてご利用ください。インストールしないで利用できますので、USBからでも起動します。
 【 マイクロワールドEX日本語Logo体験版 https://microworlds.jp/



1.ようこそタートルグラフィックの世界(Lesson1-15)

 ロゴと言えば「タートルグラフィック」、カメで絵を描くツールだと誤解されるぐらい「タートルグラフィック」として有名ですが、実はロゴはいろんなことができる完成された言語です。しかし、処理の結果がカメの動きとして可視化されるので、プログラミングの入門には最適なのかもしれません。
 この章では「タートルグラフィック」で正多角形から花、そして花畑を描きならが、プログラムするとはどんなことなのかを紹介します。
 Logoを開発したシーモア・パパートは著書マインドストームの中で「プログラムするという考えは、タートルに新しい言葉を教えるという比喩を通して導入される。」と述べています。作った手順の名前が、新しい言葉になってカメがどんどん賢くなっていくことが実感できれば、この章の目的は達成されたことになります。


2.可視化変数と処理の流れの制御(Lesson16-28)

 プログラミングでは最初に変数に遭遇して頭がこんがらかってしまうことが多々あります。そして、処理の流れを制御するIF文と言われるものが登場します。頭の中で想像して考えなければならないので、ここで挫折してしまう人が多いです。
 小学校4年の算数で「ことばの式」という学習がありますが、この章では「可視化変数」という目に見える変数を扱います。また、ロゴのインタプリタが返す「ほんとう」、「うそ」というメッセージから処理の流れを変えるIF文を紹介します。
 再帰と言われる無限に繰り返すループから、IF文を使って「分岐処理」や「ループから抜け出す」ことができれば、この章の目的は達成されたことになります。


3.アニメーションとその他のオブジェクト(Lesson29-36)

 ロゴには簡単なアニメーションを作る機能があります。複雑な数字の世界ではなく目に見える楽しい世界は興味付けには最適です。
 この章では犬を散歩させる動きをとおしてアニメーションの作り方を紹介します。また、同じ動きをさせるプログラミングでも方法が多様にあることを説明します。さらに、メロディーなどの他のオブジェクトも紹介します。
 音楽が流れる楽しいアニメーションを作ることができ、同じ動きでも異なるプログラムが書けたら、この章の目的は達成されたことになります。


4.データの加工(Lesson37-49)

 アニメーションを深く追求することもいいかもしれませんが、コンピュータは元々データの加工が得意で、プログラミングではこのことを避けることはできません。ロゴにはリストというデータの形式があります。さらに、マイクロワールドEXには、Excelと連携したりテキストを編集したりする機能があります。
 この章では、並んだ数値を昇順に並び換えるデータの加工を中心に、Excelを使う場合とリストを扱う場合についてその方法を紹介します。また、プログラムでテキストの中を散策したりすることも紹介します。 ロゴは教育用言語なので基本的な用語だけで便利な命令は用意されていません。自分でそのアルゴリズムを考えて作りだすことが大切です。
 Excelではデータを入れ換えたり、リストではリストを加工して意図した要素を削除したり追加したりする手順を作る方法が理解できるとともに、文章の検索や置換ができれば、この章の目的は達成されたことになります。


5.カメのオブジェクトに手順を書く(手順を持ったカメ)(Lesson50-60)

 Scratchではプログラムはオブジェクト自身に書くようになっていますが、マイクロワールドEXでもカメのオブジェクトに書くことが出来ます。 今まではグローバルな手順エリア(すべてのオブジェクトを操作できるエリア)にプログラムを書いてきましたが、この章ではカメのオブジェクトにプログラムを書く方法を紹介します。カメのオブジェクトにプログラムを書くことで、オブジェクトは人格(カメ格)を持つことができ、独立したオブジェクトを交換したりすることが可能になります。
 複数のカメを同時に動かしたり、条件が満たされるまでオブジェクトの実行を待たせたり、オブジェクトを合体させてセンサー付きのオブジェクトを作りそれを利用することが出来れば、この章の目的が達成されたことになります。


6.ファイル処理と校内LANによるコミュニケーション(Lesson61-69)

 子どもたちはプログラムの中でデータを保存したり読み込んだりすることは、はじめての経験で戸惑いがあります。 しかし、これができるようになるとプログラムの世界が広がります。マイクロワールドEXでは、テキストファイルを入出力する基本的な命令があります。 基本的用語しかないので例えば「上書き保存」するにも一苦労しますが逆に保存する仕組みが見えてきます。
 カレントディレクトリの概念とディレクトリ移動やファイル名の取得ができ、エラー処理をうまく利用してテキストデータの保存と読み込みができ、 学内LANで共有ディスクを使ってデータをやり取りしてコミュニケーションを体験できればこの章の目的が達成されたことになります。


7.コンピュータ・シミュレーション(Lesson70-83)

 コンピュータを使って2次関数の最大値を求める場合、最大値を求める公式を使って求めることもできますが、最大値の仕組みを理解しておれば公式を使わなくても、シミュレーション的な方法で近似値を求めることが出来ます。これは大変興味深いことで楽しいコンピュターの世界でもあります。
 ここでは、例えば乱数を用いて円周率の近似値を求めたり、順に値を調べていって方程式の解を近似的を求めたり、カメ自身を動かしてその軌跡を可視化したりする方法を紹介します。
 それぞれの考え方が理解できて、面白いなと感じることが出来ればこの章の目的が達成されたことになります。


8.マイクロワールドEXの変数(Lesson84-90)
更新中
 今までは、変数については「可視化変数」と称してテキストボックスを利用してきました。しかし、プログラムの中で変数を作るのが一般的です。
  変数を作るということは、入れものを作ると同時に、中に値を入れる必要があります。ここでは、ローカル変数とグローバル変数の2種類の変数とオブジェクトの中に作ることができる状態変数について紹介します。
 グローバル変数とローカル変数を使い分けることが出来るようになることと、変数にリストを使ってデータを上手に整理したり、キーボードからのデータの入力が出来るようになればこの章の目的は達成されたことになります。

   

9.アウトプットのある手順(Lesson91-101)

 Logoの基本用語の中には、「まえへ 100」や「むきは 90」のようにカメを動かしたり状態を変化させたりする仕事をコンピュータにさせる一般的な用語だけでなく、「むき」や「四捨五入 53.5」のように値や計算結果を調べて報告してくれるレポータ的な用語がありました。これと同じように値を報告してくれる、すなわちアウトプットのある手順を作ることができます。
 ここでは、アウトプットのある手順の作り方に焦点を当てるとともに、Logoには用意されていないwhileなどの関数を作る方法についても紹介します。
 アウトプットのある手順の便利さや、再帰処理による返り値の作り方などが理解できるとともに、基本用語しか用意していないLogoの教育的な意図を納得していただけたらこの章の目的が達成されたことになります。                                      

   

10.プレゼンテーション(Lesson102-)
更新中
 最後の章になりました。まだまだ紹介したいことはたくさんありますが、マイクロワールドEXでは、プレゼンテーションのための機能が準備されています。単なる静止的なプレゼンに、プログラミングによって動的なプレゼンができます。
 ここでは、ページめくりやアニメーションなど発表資料を作るために必要な技術と命令を紹介します。今まで学んできたマイクロワールドEXによるプログラミング体験の中で「どんなことを学びどんなことに興味がわいたか」など集大成として資料を作ることに挑戦していただければこの章の目的は達成されたことになります。