[ピクトグラミングシリーズ] 2021-10-03 タートルグラフィックスの機能に関して泳ぎメタファを導入し,「ピクトスイミング」と以後呼称いたします.

posted in: 更新情報, 開発者ブログ | 0

ピクトグラミングシリーズには,タートルグラフィックスの機能があります.

ピクトググラミングシリーズ独自の特徴として

1. 移動や進行方向の変化に時間の概念を取り入れ可能

2. 人型ピクトグラム回転,移動命令と同じく,「待ち」命令を取り入れている.

があります.

 

ブロックピクトグラミングを例にあげます.タートルグラフィックス関係のブロック(命令)は以下のとおりです.

 

 

ピクトグラミングでは,以下の通りです.第2引数に時間を指定できるようになっています.また,後ろにWをつけたFDW,BKW,RTW,LTW命令もあり.Wが付くか付かないかの挙動は,R,RW命令やM,MW命令と同様の対応関係になっています.Picthon(ピクトグラミングPython版)やJavaScpict(ピクトグラミングJavaScript版)でも同様になります.

 

命令の様式 処理
FD arg1 [arg2] 人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
BK arg1 [arg2] 人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
RT arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
LT arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
FDW arg1 [arg2] 人型ピクトグラムを進行方向にarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
BKW arg1 [arg2] 人型ピクトグラムを進行方向と逆向きにarg2 秒かけて距離 arg1 だけ等速で進める.移動が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
RTW arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.
LTW arg1 [arg2] 人型ピクトグラムの進行方向をarg2 秒かけて反時計回り方向に角度 arg1 だけ等角速度で回転する.回転が終了するまで次の命令は実行されない.arg2 が 省略された時は,arg2 に0が入力されているものとして取り扱う.

 

また各言語の表記は以下の通りです.

英語表記 英語 日本語 にほんご
FD Forward
fd
前進 ぜんしん
BK Backward
bk
後進 こうしん
RT RightTurn
rt
右回り みぎまわり
LT LeftTurn
lt
左回り ひだりまわり
FDW ForwardWait
fdw
前進待ち ぜんしんまち
BKW BackwardWait
bkw
後進待ち こうしんまち
RTW RightTurnWait
rtw
右回り待ち みぎまわりまち
LTW LeftTurnWait
ltw
左回り待ち ひだりまわりまち

 

 

今回,以下の変更を行いました.

1. タートル描画に関する命令を使った場合,自動的に大きさ0.1, 線の太さ1, 体に対する描画がonになる.

2. 描画中は人型ピクトグラムが進行方向を向く.

 

1.は,ピクトグラム作成が主題ですので,大きさや線の太さはデフォルトにしています.よってタートル描画をする際,大きさや線の太さを変更する命令を記述することが最初に必要でしたが,これを省略し,描画に集中できるようにしました.

また,ピクトグラミングシリーズは正面からの視点でした.タートルグラフィックスでは上からの視点が望ましいです.2.は,プールや海の上で泳いでいるのを上からの視点で表示しているイメージを想像してもらうために進行方向を向くようにしました.人型ピクトグラムは顔や衣服などがないので,このような泳ぎメタファの導入によって正面視点と上から視点の両方の切り替えが可能となりました.

 

ブロックピクトグラミングを使った例を示します.

まずは正五角形です.

”待ち”のあるなしと時間をうまく組み合わせることにより様々な図形を描画できます.

 

 

今回の変更はピクトグラミングシリーズ全てが対象です.ピクトグラミングのPython言語版Picthonの例です.同じくWと時間をうまく組み合わせることにより様々な図形を描画できます.

for _ in range(4):
    pic.FD(200 * math.pi * 1/4, 2)
    pic.RTW(90, 1)
    pic.LTW(90, 1)
    pic.RT(90)

 

ブロックピクトグラミングのブロックカテゴリ名も,「タートル」から「泳ぎ」(英語版 Swimming)に変更いたします.

 

またタートルグラフィックスの機能に関する名称に関しましても,ピクトグラミングシリーズでは以後,説明で参照する場合を除き,この機能に関しては「ピクトスイミング」という名称を使っていきたいと考えております.これまでも,「私は人型なのになぜ”タートル”なのか」と人型ピクトグラムから常に言われておりました.やっと肩の荷が降りました.このアイデアは,すっとこさまよりいただきました.ありがとうございました.

 

再帰と視点

posted in: 更新情報, 開発者ブログ | 0

関数や手続きの中で自分自身を呼び出す処理を再帰呼出しといいます.

プログラミングを学習する際,この再帰の概念でつまづく人も少なくありません.

 

懸垂を10回するプログラムを例に再帰について考えてみたいと思います.


図 (1)

 


図 (2)

 

これを再帰を使わずにブロックピクトグラミング(ピクトグラミングブロック版)で作成した例です.回数を引数指定して懸垂をする関数(実際は手続き)「懸垂」,図(1)の状態にする手続き「初期状態」と,図(1)→図(2)→図(1)の状態変化をアニメーションで表現する手続き「1回曲げ伸ばし」が定義されておりこちらは折りたたんで表示してあります.人型ピクトグラムとは異なる視点である第三者視点だと,繰返しを使った表現が思いつくでしょう.

 

次に再帰を使って,記述してみます.こちらは関数(実際には手続き)「懸垂」の中で「懸垂」を呼び出しています.皆さん1回懸垂をしては,あと何回だ!がんばろう!と繰り返し念じた経験はないでしょうか?もちろん懸垂以外の,腕立て伏せ,トラック一周,漢字の書き取り…..など繰り返す処理であれば同じことが言えます.これは,実際に懸垂をする人型ピクトグラムになりきって考えた視点と考えられるでしょう.

再帰の考え方を教えるのにご苦労されている先生方多いと思います.ハノイの塔だったり,再帰図形だったりと色々工夫されたりしますが,一度こういうのからスタートするのはいかがでしょうか?いかなる人も反復的な身体動作に関する身体知は有していると思います.

 

スマートフォン版使い方_ピクトッチ

posted in: 更新情報 | 0

 

画面の説明

 

画面は大きく分けて二つの部分から構成されます.上は,ピクトグラムを表示する「ピクトグラム表示領域」,下は,プログラムを記述する「プログラムコード入力領域」です。

プログラムコード入力領域にプログラムを入力することで,人型ピクトグラムのポーズを変えたり動かしたりすることができます。ピクトッチでは,ブロックを組み合わせてでプログラミングできます.

 

ピクトグラミングではプログラムの作成途中において3つの機能をオンオフできます.

画像(名称) 説明
(座標系表示) 画像の右に表示されているチェックボックスをオンにすると,座標系が表示されます.座標はXY座標系(X方向とY方向の値,両方を組み合わせて位置を表現する)です.横方向がX座標で左端の-320から右端の320まで,縦方向がY座標で上端の-320から下端の320までをとります.つまり,中心が(0,0),左上が(-320,-320),右上が(320,-320),左上が(-320,-320),右上が(320,-320),つまりX軸正方向が右,Y軸正方向が下となります.数学の座標軸とY軸だけ逆方向なので注意して下さい.
(ドラッグ不可)*標準でオフ 画像の右に表示されているチェックボックスをオフにすると,人型ピクトグラムは「ピクトグラム表示パネル」上でピクトグラムの体の部位を直接ドラッグすることででも操作することができます。また線分や楕円などの図形もスマホ操作で描くことができます.
(再生ボタン押下時のみ再生)*標準でオン 画像の右に表示されているチェックボックスをオンにすると,「プログラムコード表示領域」に改行コードを入力した(エンターキーを押した)場合にはプログラムを実行せず,「初めから再生」ボタンを押したときのみ実行されます.

 

ピクトッチでは再生・停止などのコントロールは,コントロールボタンから制御します.

画像(名称) 説明
(初めから再生) はじめから再生する.
(早送り) はじめから早送り再生します.全体の実行時間が長い時に,概略を知るのに便利です.
(一旦停止) 停止します.
(停止位置から再生) 停止している状態から再生します.
(すべてクリア) プログラムコード入力領域に記述されているプログラムをすべて消去します.消去前に確認のダイアログボックスが表示されます.

作成したコンテンツのダウンロードは2通りあります。

 

[1. ショット画像のダウンロード]

(1)画像ダウンロードボタンを押すと,作品名.png の名前でショット画像が保存されます.

[2. アニメーションのダウンロード]

(1)動画ダウンロードボタンの右側にあるチェックボタンをオンにします.

(2)一度最初から最後まで実行します.ゆっくり実行されますが,内部的にはアニメーション画像が動的に生成されています.

(3)動画ダウンロードボタンを押すと,作品名.gif の名前でアニメーション画像が保存されます.

 

 

命令セット一覧

 

画面右上のプログラムコード入力領域にブロックの形状の命令を組み立てて定義します.

動き命令一覧

 

図形命令一覧

その他命令一覧

タートル命令一覧

 

構成部品の節点の名称

 

ピクトグラム表示領域でのスマホ操作と処理の対応

ピクトッチでは,ピクトグラム表示領域上における様々なスマホ操作により,対応した命令を自動的にプログラムを記述する領域に追加できます.

タップする場所 スマホ操作 処理
人型ピクトグラム 1本指でドラッグ 人型ピクトグラムの対応する部位を回転
2本指でドラッグ 人型ピクトグラムの平行移動
人型ピクトグラミング以外 ドラッグ 線分の描画
ピンチイン/ピンチアウト 楕円の描画

 

 

2021-08-29 ブロックピクトグラミングにいくつかの機能を追加しました(1. 反転表示,2. 線画オブジェクトのグループ化と移動,3. 文字列入出力).

ピクトグラミングのビジュアルブロック版である,ブロックピクトグラミングのPC日本語版とPC英語版を更新しました.

主に追加した機能は

1. 反転表示

2. 線画オブジェクトのグループ化と移動

3. 文字列入出力

です.

1. 反転表示

ピクトグラムというとサイン用途で使われるものが有名ですが,コミュニケーション用途で用いるピクトグラムのデザイン指針を定めたJIST0103(コミュニケーション支援用絵記号デザイン原則)およびISO19027(Design principles for communication support board using pictorial symbols)では,サイン用途の配色と反転した,黒背景に白字のピクトグラムが推奨されています.そのため,「マークを設定するブロック」に「反転」も指定できるようにしました.「マークを設定するブロック」は「図形」カテゴリの一番上にあります.

 

 

 

2. 線画オブジェクトの移動

ピクトグラミングシリーズでは,人型ピクトグラム以外のオブジェクトは基本図形(線分または円)の集合で描きます.従来からフレーム単位の描画(Processingで採用されているような描いて全て消すの繰返し)をすればオブジェクトを移動させる(ように見える)ことはできました.しかしより簡便で理解しやすい方法を実装しました.

一つ以上の基本図形から構成されるオブジェクトを定義できるブロック,定義されたオブジェクトを表示するブロック,定義されたオブジェクトを等速直線移動するブロックの三つを「図形」カテゴリに追加しました.下に例を示します.「物体を定義するための囲みブロックを使い「りんご」というラベルを設定して定義しています.囲みブロックの内部には,円と線分を描く二つのブロックがあります.これが構成要素となります.さらに「実行ボタンが押されたとき」の囲みブロックの中に,りんごを平行移動する命令があり,これにより「りんご」が等速で落下します.単に定義したオブジェクトを,定義した際の位置に表示するだけであれば,「物体〇〇を描く」ブロックを使います.オブジェクトの作成を通じて,複数の命令をまとめラベリングする手続き化の処理に慣れ親しんでもらいます.

 

等速直線運動以外の動きをしたければ,変数を設定して微小時間ごとに変化量を変えれば,実現できます.これは人型ピクトグラムを移動,回転する場合も同様です.次のプログラムは「りんご」が自由落下します.

 

3. 文字列入出力

ピクトグラミングでは,これまでも吹き出しの形で文字列を一定時間表示したり,ピクトグラムの構成要素として文字列を設定する機能はありました.しかしこれからはいずれも付加的な機能としての位置付けです.

一方,汎用プログラミング言語を用いた初学者向け学習では,文字列入出力をベースとするプログラムが題材になります.今回,カテゴリ「入出力」を追加し,ダイアログボックスを表示し値を特定の変数に格納するブロックと,画面上に小型化した人型ピクトグラムをカーソルに見立てて文字列を整列して逐次表示するブロックの二つを用意しました.この機能はすでにピクトグラミングPython言語版であるPicthonおよびJavaScript言語版であるJavaScpictには実装されていましたが,今回ブロック版にも実装しました.下の例は,高等学校情報科「情報Ⅰ」教員研修用教材でも紹介されている利子を計算するプログラムの例です.同一クラス内で学習者の習熟度に応じてテキスト型とブロック型の言語を併用する運用も想定できます.ピクトグラミングシリーズは基本静止画またはアニメーションピクトグラムを作成するのが目的の仕様になっているため,入力を要求するブロックはプログラムの最初に配置するようにしてください.途中に配置しても最初にダイアログボックスが表示されますので注意ください.

ブロックピクトグラミングPCひらがな版および各種スマートフォン版は順次新バージョンに変更していきます.

また,しばらくの間,各ページのフッタに旧版のブロックプログラミングのアプリケーションページへのリンクは残しておきます.旧版の利用が必要な場合,そちらのリンクを辿って利用ください.

次回の全体のアップデートは2021年年末を予定しています.特に高等学校「情報I」のデータ活用,中学技術科「情報分野」での授業での利用を想定した機能を中心にいくつか追加する予定です.

 

 

2021-08-21 ピクトグラミングトップページをリニューアルしました.

ピクトグラミングのトップページをリニューアルしました.

アクセスしたデバイスにより自動的に表示するトップページを変更するようになっています.

アクセスしたデバイス用の4通りのアプリケーション(Pictogramming, Block Pictogramming, Picthon, JavaScpict)と使い方へのリンクのみで構成されるシンプルかつ軽量なページです.それ以外の例えば,学習用テキスト,作品例等の関コンテンツへのリンクは全てフッター部分に集約しました.

今後は定常的に,トップページ以外のサイト構造やページをより使いやすいサイトをすべく随時更新していきます.今後ともピクトグラミングシリーズをよろしくお願いいたします.

 

(1) PC,タブレットでアクセスした場合のトップページです.

 

(2) スマートフォンでアクセスした場合のトップページです.

 

[ピクソン] ピクトグラミングPython版であるPicthon(ピクソン)で,共通テスト「情報」で採用予定のDNCL2をサポートしていきます.

ピクトグラミングの派生アプリケーションの一つであるPicthonで,共通テスト「情報」で採用予定のDNCL2をサポートしていきます.

まずは,共通テスト「情報」サンプル問題Q2で提示されているプログラム程度は動作するように実装しました.

 

人型ピクトグラムが頑張って地面に文字列を描いていきます.

画面下のプルダウンで「DNCL2」を選択すると,DNCL2の基本命令がボタン入力できます.今のところ共通テスト「情報」サンプル問題で使われている最低限度の命令のサポートのみですが,正式なDNCL2の仕様は今後公開されると思います.

DNCLは読むために最適化された記述言語なので,それで読み書きすることの一長一短もあるのですが,検討の余地があると考えて,研究,調査も含め開発していきます.

 

 

[ピクトグラミーティング #3] 2021-03-13(土) 9:00-10:00 1名,10:00-11:00 1名 開催します.

ピクトグラミーティング #3 を2021年03月13日の午前に開催します.

ピクトグラミーティングは,ピクトグラムとミーティングを合わせた造語です.

一応ピクトグラム関係(含むピクトグラミング)をテーマとしますが,教育一般や授業関係のことでも結構ですし,雑談でも結構です.1対1でzoomでお話しさせていただければと思います.

9:00-10:00 先着1名,10:00-11:00 先着1名

でお願いします.

ご希望の方(小学校から高等学校の先生限定でお願いします.)いらっしゃいましたら,Twitter のダイレクトメッセージで @kazunariito2 まで,ご連絡ください.

[ピクトグラミング] 情報処理学会 情報教育シンポジウム SSS2020において,題目”ピクッと-ピクトグラム作成を通じた状態遷移モデルの学習環境 -”が優秀論文賞を受賞しました.

情報処理学会 情報教育シンポジウム SSS2020において,題目”ピクッと-ピクトグラム作成を通じた状態遷移モデルの学習環境 -”が優秀論文賞を受賞しました.

概要:筆者は,ピクトグラムコンテンツ作成環境「ピクトグラミング」を提案している.ピクトグラミングは,プログラミング学習環境の側面も有し,様々な文脈で利用されている.人型のピクトグラムを変形する命令,線画によるオブジェクト記述のための命令,セーフティーマーク記述のための命令を併用することで,短時間でピクトグラムのデザイン指針に準じたアニメーション効果を含む多様な作品を作成できる.同時にプログラミングの諸概念が学習できるのが特徴である.また,Python言語,JavaScript言語,ビジュアルブロック言語により記述できる派生環境もインターネット公開している.ピクトグラミングおよび派生環境は,手続き型 のプログラミングパラダイムをベースとしている.ピクトグラミングの資産を活用しつつ,ピクトグラムの状態とその状態遷移を状態遷移図で表現するピクトグラムコンテンツ作成環境「Picuit(ピクっと)」を新たに開発した.本論文では,その実装方式を中心に論ずる.

 

 

論文PDFはこちらから入手できます.

「ピクッと」は,論文では状態遷移を状態遷移図で表現する方式となっていますが,これとは異なる仕様で,Pictogrammingシリーズと同様にWeb公開する予定です(2021-01-31現在).

 

 

[ピクトグラミング] ブロックピクトグラミング ひらがな版(ピクトグラミング ブロック版のひらがな版)の学習用テキスト(58ページ)を公開しました.

ブロックピクトグラミング(ピクトグラミング ブロック版)ひらがな版 の授業・自学習用テキスト(58ページ)を公開しました.

 

ブロックピクトグラミング日本語版のテキスト をひらがな分かち書きにしたものです.

以下のような構成になっています.

・にちじょうせいかつ に おける ピクトグラム(1章)… ピクトグラムとは何か.ブロックピクトグラミングの基本的な使い方.

・ちくじじっこう,へいこうじっこう(2章) … 命令を決められた順番に一つづつ実行する.複数の命令を同時並行で実行する

・にたような しょり を まとめる(3章) … 複数の命令を繰り返し実行する場合について.

・からだ の ぶい を うごかして え を えがこう(4章) … 体の部位を動かす命令を考えことで様々な図形を描きます.

・あるいて え を かこう(5章) … 人型ピクトグラムの歩行で図形描画する(タートルグラフィックスに相当)テーマで復習する

・じっこう ごとに ことなった しょり を する(6章) … 条件によって実行する命令を変える

・ただしく つたえる むつかしさ を しる(7章) … デザイン指向のピクトグラムを作成するテーマで総復習する

各章の演習問題の解答例も巻末に掲載しています.

 

こちらからダウンロードできます.

BlockPictogramming(ブロックピクトグラミング) ひらがな

BlockPictogrammingがくしゅうようテキスト(7しょう 20201213ばん)

 

また,学習用PDFコンテンツのページ から,他の各種テキストもダウンロード可能です.ご活用ください.

今後も様々な視点からの研究・実践報告をして,その視点に応じた教材を順次提供していく予定です.授業用スライドがご入用の方はご相談ください.また,学習内容に応じた別のテキストや教授用スライド,クイズプリント等も用意しておりますので,ご関心のある学校の先生方は個別にご相談ください(こちらのページの連絡先からコンタクトください).