(農業)情報工学・課題 (2016/12/22)

 シミュレーション入門(1)

今回の講義では、コンピュータ上でオブジェクトを「動かす」シミュレーションを行う。また、班別に分かれてシミュレーションソフトを作成し、その完成度を相互評価する競技(コンペティション)を行う。

What is Scratch
今回は、ブロック型プログラミング言語のScratch(スクラッチ)を用いた授業を行う。Scratchは、2006年にMIT Media Laboによって開発された。もともとこの種の教育用プログラミング言語は、LOGO, Turtle Graphics,そして1980年代に開発されたSqueakの流れを組んでいる。文部科学省が小中学生のプログラミング教育用に特化させた、プログラミンも、Scratchを元にしている。
一方、Google社は、教育用ブロック言語、Blockly(ブロックリー)を開発しているが、このBlocklyもScratchの次期バージョンのVer 3.0に組み込まれ、発展的に融合することになっている。
この種のブロック型のプログラミング環境を見たときには、単に「子ども向け」の環境だと思ってしまうかも知れない。しかし、実際には、プログラミングに関わるタイプミス、括弧の対応、ループの範囲などに関して非常に分かり易くチェックできるようになっている。そのためプログラミングの本来の目的である「アルゴリズム」の実装に傾注できるという大きな利点がある。

Getting to Know Scratch
Scratchの「作る」を起動すると、次のような画面が表示される。
この図に見るように、左上のステージ画面のサイズは480x360、左下にスプライト(画面上で動作するアイコンのようなもの)の一覧表
画面中央部分には、動作内容を指示する「コマンドエリア」、その上の「分類」。
そして、右側のスクリプトエリアがある。
とにかく、コマンドエリアにある動作ブロックを右のスクリプトエリアにドラッグすると、その動作が出来るようになるのである。
動画で見る「チューター」は、沢山用意されているので、それを見ると直ぐに使い方が理解できる。日本語の物は少ない(無い?)ようである。
Just Do It
取りあえず、最初のミッションは、Scratchをはじめようを見ながら、ダンスをする猫と人間を作ることである。(英語の勉強も出来て良い。)
このプログラムを、従来の手続き型言語で作成するのは、結構厄介である。(例えばjavaで書くのはちょっと大変そうです。)でも、Scratchなら、ブロックをドラッグドロップするだけで、結構完成してしまうのである。
どうですか。スクラッチのことが少し分かってきましたか。
Sign-in and Attend the Team(Class)
今回の授業では、受講者を16のチーム(クラス)に分けた。自分がどのクラスに所属するかは、サインインすると分かるようにした。サインインは、スクラッチのページの右上にある。そこで、次のユーザー名とパスワードを入力する。 サインインすると初期設定が求められるが、授業用のアカウントの場合、メールアドレス等の登録は不要である。 なお、今回のユーザー名は、私の授業用に用意したもので、授業終了後(来年3月頃)に削除する予定である。自分の作成したプロジェクト(プログラム)は、手元のパソコンに保存できる。(ファイルメニューから)
チームは、team0〜teamFまである。(16進数)チーム毎の一覧表を見れば、自分と同じチームの人の学生証番号がわかるようにしている。自分と同じ班を見付けて、互いに自己紹介してチーム結成をして欲しい。
Studio, Curator -- What are they?
スクラッチでは、共有の作業スペースとしてStudioというスペースがある。Studioの参加者(これが、Curator)は、Studioに自分のProjectを登録できる。(誰でも登録できる、OpenなStudioもある。)今回は、Team毎に固有のStudioを用意しているので、共有作業スペースとして利用すること。個人個人のProjectは、ファイルメニューから自分のPCに保存、呼び出しができる。
Today's Assignments
  1. Scratchを使ってみること。
  2. プロジェクト(プログラム)の保存、呼び出しが出来るようになること。
  3. サインインして、自分のクラス(チーム)を確認すること。
  4. チーム毎に集まって、以下のことを相談すること。
    1. チーム名(何か考案すること)を決めること。
    2. チームとしての役割分担や取り組む方針を決めること。
    3. チームとして、Studioの使い方を理解する事。
      スタジオに掲載された「最終プロジェクト」を、教員がプロジェクト一覧表に掲載して、最終回のコンペティションで利用する予定。
    4. チーム構成員一覧表を完成させること。(先生に提出)
  5. ITC-LMSで、クリスマスソングのアンケートに回答する。(Scratch採点のための予備実験です。)
    クリスマスソングについては、ここを参照して下さい。

コンペティションのテーマ

Agriculture

(外部リンク:スクラッチのコマンド一覧と関数の作り方(お勧め!)。)