アクティビティ図とPythonのリファレンスカード
(株)武蔵野電波さんが公開しているArduinoはやみ表,これ一枚で基本的なArduinoのプログラミングを進めることができます.うちではA4判用紙に印刷したものをラミネートカードに加工して,Arduino実習装置のセットに組み入れていました.学生さんや教員免許状更新講習の受講者はこのカードを片手にコーディングを行い,評判が良かったです.
時は移って学習指導要領には「アクティビティ図」が登場し ,私の授業で扱うプログラミング言語も高等学校情報Iを見据えてPythonに,実習ハードウェアもmicro:bitに変更することになりました.
A4判用紙に印刷してラミネートカードに加工することで,生徒さんはこれを見ながら処理手順やプログラムを考えることができます.
大判プリンタで印刷して技術室に掲示するのも手です.
PDF形式と編集可能なodt形式のファイルをこちらに置いておきます.各ファイルのライセンスはCC BY-NC-SA 4.0 Internationalです.編集にはLibreOfficeと下記のフォント:
アクティビティ図について補足
中学校技術の教科書には,(非同期)並列処理の「フォーク,ジョイン」を用いた例が 掲載されていますが,どの立場でそのアクティビティを考えているのかをよく考えましょう.
人間の時間尺度では同時並行に動作しているように見えていても,プロセッサの時間尺度(クロック)で動作するプログラムでは{複数のプロセッサで処理,並列処理記述のできるプログラミング言語でプログラミング}しない限り順次・分岐・反復になるはずです.
人間の時間尺度で期待する動作のアクティビティ図とプログラム記述段階のアクティビティ図は,処理内容で変わってくるはずです.先の教科書の例では人間が期待する動作(人間の時間尺度)とプログラム記述レベルでの動作(コンピュータの時間尺度)が混在していますが,そのような混在は避けなければいけません[1].
このような観点から,(中学校技術のプログラミングの範疇で並列処理をすることはないので)アクティビティ図のリファレンスカードには敢えて{フォーク,ジョイン}は入れていません. ただScratchやMakeCodeにある「〇〇が押されたとき」のような割込処理は,(アクティビティ図本来の記述方法とは異なりますが)並列処理で記述する方が理解しやすいかもしれません.業務フロー記述を想定しているアクティビティ図でイベント駆動形プログラムのフローを記述するのは(できなくはありませんが)工夫が必要です.