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 のページ 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 再帰的なプログラムの定義。

フラクタル図形を描く

2-2と2-3は、papertに掲載の例題を参考にする。examples: koch snowflake, hilbert curve, spiral

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タイプのブロックを利用した、ビジュアルプログラムに、関数定義、再帰呼び出し、スレッド制御など高度な機能を実装したもの。