ピクトグラミング Python版 Picthon を公開しました.Pythonのyを90度時計まわりに回転するとicに見えるので,Picthonと名付けました.
Pictogrammingトップページからリンクでたどることができます.
直接アクセスされたい方はこちらです.
2019年8月にSSS(情報処理学会 情報教育シンポジウム)で発表した内容です.
伊藤一成:Picthon(ピクソン)- Pictogrammingを用いたPython言語の学習環境の提案 – , 情報処理学会 情報教育シンポジウム SSS2019, (2019.08.18) (優秀発表賞受賞)
その際はサーバ側で処理する方式を発表しましたが,公開アプリケーションは,全てクライアント側で処理する方式としました.
Picthonの特徴として,Pictogrammingを拡張しており,Pictogrammingとほぼ同じ操作感でPython言語を使いピクトグラムコンテンツを作成できます.またPictogrammingと同様,プログラミングの諸概念を学ぶことができる設計になっています.
Picthonは,入力されたPythonのプログラムをPictogramming形式の命令に内部で変換し実行する方式を採用しています.
- Pictogrammingの操作命令に限定し,プログラム文字列を生成するPythonクラスを定義
- 人型ピクトグラムのポージングや図形描画に相当するメソッドはゴーストメソッドmethod_missing に相当する機能を使用
- Pythonの基本命令は全てPythonプログラムとして実行
- Pictogrammingの機能の追加によりPicthonの機能も追加される
Pythonでは,メソッドの引数はカンマ区切りで与えられ,引数列を丸括弧で囲う記法です.一方,Pictogrammingでは,命令や引数の間を空白文字で区切っています.
Pictogrammingの命令の引数には,体の部位や図形描画のペンタイプを表すラベル文字列がいくつか定義されています.メソッド名にアンダーバー(“_”)が含まれている場合も,空白文字に変換します.例えば,Pictogrammingで PEN DOWNという記述は,Pythonでは, pen(“down”) だけではなく,pen_down()のようにも記述できる.つまり,method1_method2(arg1, arg2, arg3) はmethod1 method2 arg1 arg2 arg3 に変換されます.Pictogrammingで記述する操作命令は,この変換ルールで全て記述可能です.
一方for文,if文の定義文や制御文は,Pythonの文法に基づくものであり,このコードのままPythonで実行されます.よって,ループ展開,手続き呼び出しの展開,条件判定の展開が行われるため,実際に生成されるPictogrammingのコードは異なる場合があります.例えば,下の図の(a)のプログラムを入力して実行した場合,30%の確率でコード(b)が70%の確率でコード(c)が生成され,Pictogramming形式のコードとして実行されます.
高等学校では2022年度からの次期学習指導要領において,情報の科学的理解を基軸とする「情報I」が必履修科目となります.「情報I」では,その四本柱に,「<1>情報社会の問題解決」「<2>コミュニケーションと情報デザイン」「<3>コンピュータとプログラミング」「<4>情報通信ネットワークとデータの活用」を掲げています.Picthonが「<2>情報デザイン」「<3>コンピュータとプログラミング」との関連性が高いのはいうまでもありません.また,ピクトグラムは,社会の諸問題を映し出す,一種の社会の凝縮された写し絵であり「<1>情報社会の問題解決」を考える良い切り口となります.ピクトグラミングでは,インフォグラフィックスの機能も強化しており,「<4>情報通信ネットワークとデータの活用」でも活用も進めています.また,2019年5月に文部科学省から公開された情報I教員研修用資料でも,プログラミング単元の解説にPythonが取り入れられており,時流や政府戦略に沿ったテキスト型プログラミング言語重視の方針が伺えます.大学においても,AIやデータサイエンス分野だけでなく,プログラミング導入教育にいたる幅広い文脈でPythonを用いた授業実践が多く報告されるようになってきました.Picthonがこれからの情報教育の一助になればと思っています.
先日,ピクトグラミングの授業用テキストを公開しましたが,Picthon公開に伴い,Picthon版の授業用テキストも公開しましたので,以下のページからアクセスください.Picthonはデバッガの機能がまだないので,年度末までには実装します.来年度からのご利用ご検討ください.PictogrammingはIE でも動作しますが,Picthonは現状IEでは動作しません(これも可能なら対応しようと考えています).ご了承ください.