5. Logo
1960年代の昔から、教育用のプログラム言語として親しまれてきLOGOを紹介する。
LOGOの特徴である、タートルグラフィックスによる図形・模様の描画を課題とする。
Wikipedia LOGO
LOGOの与えた影響の項目に注目。LOGOを源流ともいえる様々な教育用言語の展開について記述がある。
ちなみに、LOGOが影響を与えた、初期のオブジェクト指向言語の代表例 Smalltalk は、iOSアプリ開発で知られる Objective-C にも影響を与えている。
Wikipedia Smalltalk
Wikipedia Objective-C
Smalltalkのメッセージ式 と Objective-Cのメッセージ式
recv sel1: 123 sel2: 789 .
[obj sel1: 123 sel2: 789 ];
今回の演習では、ブラウザ上で動作するLOGOのシステム、papertを利用する。papertは Javascript で記述されている。
Papertの紹介記事 グラフィックスにチャレンジ!JavaScript製のLogoインタプリタ「papert」
Papert のページ http://logo.twentygototen.org/
講義用資料 http://prezi.com/7nlkmyfzro2i
Papert のLOGOコマンドのコマンドリファレンスを一部、日本語化して掲載
課題:
1.LOGOのタートルグラフィックスのコマンドを練習。
1-1 図形を描く。三角形、☆など。
1-2 画面の消去、タートルの移動コマンドの確認。
1-3 Penup と Pendown で離れた場所に、別々の図形を描く
2.新規にコマンドを作成する。 repeat コマンドや、引数の利用。
2-1 講義用資料のPrezi に掲載の2つのコマンドを作成
squrea
polygon
利用して、位置を移動させながら、複数の図形描画を描画。
2-2 再帰的なプログラムの定義。
螺旋を描く
2-3 再帰的なプログラムの定義。
フラクタル図形を描く
3.オリジナルのプログラム作成
画面を埋め尽くす様な、模様を描くプログラムを作成する。
再帰や、繰返しを活用すること。
提出:
1.papertのサイトの share this program のボタンから 共有用 URL を入手。講義用の掲示板へ、学籍番号とともに掲載。(HTML用コードではない。link_to_itやブラウザのURL欄からコピー)
2.課題提出用HTMLファイルに、share this program で提供されるHTML用コードを入手し、組み込む。
応用課題:
先回続き、
1.Lua のメタオブジェクトプログラム機構を利用した、オブジェクト指向プログラムの実装、の部分の動作確認。
2.SNAP!に挑戦。 http://snap.berkeley.edu/ Scratchタイプのブロックを利用した、ビジュアルプログラムに、関数定義、再帰呼び出し、スレッド制御など高度な機能を実装したもの。