拡張Scratch3.0用クラウド連想配列

昨年度末からずっと開発案件に取り組んでいました。

拡張Scratch3.0用のナンバーバンク(NumberBank)と呼んでいる拡張機能の新バージョン開発です。

ネット上に配列(数値を記憶する変数の並び)を確保することができます。簡易なデータベースとして使えば,データ加工や交換をするScratchプロジェクトも作成可能です。

公式Scratch3.0にはクラウド変数という機能がありますが,ナンバーバンクは拡張Scratch3.0用にクラウド変数を提供しているともいえます。

複数端末間でのプロジェクト連携が可能なので,キャラクター(スプライト)を遠隔操作したり,接続したセンサーからのデータを送信したり,サーボモーターを遠隔制御することも,一斉に可能です。

拡張Scratch3.0サイトとして有名な「Stretch3」で利用できます。

また,拡張Scratch3.0サイトが構築可能な「Xcratch」に追加できるモジュールも公開しています。

今回のバージョンアップで,各自が自前で用意するクラウドサーバー(現時点ではGoogle FirebaseのFirestore)をナンバーバンクのデータ保存場所として利用できるようになりました。

各自が用意したクラウドサーバーのAPIキーを預ける場所として新規開発したのがマスターキーバンク(MasterkeyBank)という専用サイトです。

このサイトで,皆さんのAPIキーをお預かりし,ナンバーバンクのマスターキーセットでサーバー情報を適宜提供するという仕組みにしました。

今回のバージョンアップによってブロックの使い方が変わるわけではありませんが,強いて違いを書くなら,マスターキーによって裏側のデータ保存先が変わったり,遅延設定で動作にかかる時間に違いが出るなどがあります。

ご自身がFirebase向けのプログラミングをされるのであれば,他のWebサービスなどとの連係システムを独自に開発することもできます。

中学校では,技術・家庭科の技術分野で〔情報の技術〕を内容として扱うことになっており,その中に「ネットワークを利用した双方向性のあるコンテンツのプログラミングによる問題の解決」という学習事項があります。

この学習事項に関する実践事例が,いま急ピッチで蓄積されようとしています。

中学校技術・家庭科(技術分野)内容「D 情報の技術」研修用教材
https://www.mext.go.jp/a_menu/shotou/zyouhou/detail/mext_00617.html
オンライン講座「中学校技術・家庭科 D情報の技術 -授業実践の手引き-」
https://www.sainou.or.jp/senseimanabi/course/211221.html
2021年度 第5回オンライン授業に関するJMOOCワークショップ 「中学校技術・家庭科 D情報の技術におけるプログラミングの指導」
https://www.jmooc.jp/workshop20220322/
ねそプロ - ネットワークを利用した双方向性のあるコンテンツのプログラミング
http://iwate-manabi-net.sakura.ne.jp/nesopuro/
プログル技術
https://middle.proguru.jp/
中学校技術「利便性と安全性に配慮した双方向性のあるコンテンツ」 - TeReP(集まれ!プログラミング教材データベース)
https://terep.hiroshima-u.ac.jp/technology/298/
開隆堂「ネットワークを利用した双方向性のあるコンテンツのプログラミングによる問題解決」
https://www.kairyudo.co.jp/contents/02_chu/gijutsu/r3/r3gi-souhoukou.pdf
20181220「「ネットワーク」に「双方向」!? 倍増するプログラミングの学習内容に中学校の現場はどう対応するのか」(こどもとIT)
https://www.watch.impress.co.jp/kodomo_it/news/1159054.html

様々なアプローチが出てくることで,それぞれの学校の事情や実態に合わせて事例を参照することがしやすくなります。

ナンバーバンクもそのためのツールの一つになればよいなと思います。

ちなみに,Scratchから制御できる低価格な拡張ボード「AkaDako」でも活用事例の中でご利用いただいているので,いろんなフィジカルツールとの組合せも増えていくと楽しいなと思います。

構想はずいぶん前から描いていましたが,3月あたりから始めて,週末休みや連休はほぼ開発作業でした。おかげで何とか形にはなりました。いまは少し休憩。

次はもう一つの拡張機能であるパソリッチ(PaSoRich)もICカードリーダーの新型に対応する必要があるので,少しずつ作業を始めたいと考えています。

いろいろフィードバックいただけると嬉しいです。よろしくお願いします。

学習指導要領とプログラミング

小学校学習指導要領(2017年改訂)

(第1章 総則 第2の2)
    (1) 各学校においては,児童の発達の段階を考慮し,言語能力,情報活用能力(情報モラルを含む。),問題発見・解決能力等の学習の基盤となる資質・能力を育成していくことができるよう,各教科等の特質を生かし,教科等横断的な視点から教育課程の編成を図るものとする。
(第1章 総則 第3の1) 主体的・対話的で深い学びの実現に向けた授業改善 各教科等の指導に当たっては,次の事項に配慮するものとする。
    (1) 第1の3の(1)から(3)までに示すことが偏りなく実現されるよう,単元や題材など内容や時間のまとまりを見通しながら,児童の主体的・対話的で深い学びの実現に向けた授業改善を行うこと。 特に,各教科等において身に付けた知識及び技能を活用したり,思考力,判断力,表現力等や学びに向かう力,人間性等を発揮させたりして,学習の対象となる物事を捉え思考することにより,各教科等の特質に応じた物事を捉える視点や考え方(以下「見方・考え方」という。)が鍛えられていくことに留意し,児童が各教科等の特質に応じた見方・考え方を働かせながら,知識を相互に関連付けてより深く理解したり,情報を精査して考えを形成したり,問題を見いだして解決策を考えたり,思いや考えを基に創造したりすることに向かう過程を重視した学習の充実を図ること。
    (2) 第2の2の(1)に示す言語能力の育成を図るため,各学校において必要な言語環境を整えるとともに,国語科を要としつつ各教科等の特質に応じて,児童の言語活動を充実すること。あわせて,(7)に示すとおり読書活動を充実すること。
    (3) 第2の2の(1)に示す情報活用能力の育成を図るため,各学校において,コンピュータや情報通信ネットワークなどの情報手段を活用するために必要な環境を整え,これらを適切に活用した学習活動の充実を図ること。また,各種の統計資料や新聞,視聴覚教材や教育機器などの教材・教具の適切な活用を図ること。 あわせて,各教科等の特質に応じて,次の学習活動を計画的に実施すること。
     ア 児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動
     イ 児童がプログラミングを体験しながら,コンピュータに意図した処理を行わせるために必要な論理的思考力を身に付けるための学習活動
    (4) 児童が学習の見通しを立てたり学習したことを振り返ったりする活動を,計画的に取り入れるように工夫すること。
    (5) 児童が生命の有限性や自然の大切さ,主体的に挑戦してみることや多様な他者と協働することの重要性などを実感しながら理解することができるよう,各教科等の特質に応じた体験活動を重視し,家庭や地域社会と連携しつつ体系的・継続的に実施できるよう工夫すること。
    (6) 児童が自ら学習課題や学習活動を選択する機会を設けるなど,児童の興味・関心を生かした自主的,自発的な学習が促されるよう工夫すること。
    (7) 学校図書館を計画的に利用しその機能の活用を図り,児童の主体的・対話的で深い学びの実現に向けた授業改善に生かすとともに,児童の自主的,自発的な学習活動や読書活動を充実すること。また,地域の図書館や博物館,美術館,劇場,音楽堂等の施設の活用を積極的に図り,資料を活用した情報の収集や鑑賞等の学習活動を充実すること。
(第2章 各教科 第3節 算数) (第3の2) 第2の内容の取扱いについては,次の事項に配慮するものとする。
    (1) 思考力,判断力,表現力等を育成するため,各学年の内容の指導に当たっては,具体物,図,言葉,数,式,表,グラフなどを用いて考えたり,説明したり,互いに自分の考えを表現し伝え合ったり,学び合ったり,高め合ったりするなどの学習活動を積極的に取り入れるようにすること。
    (2) 数量や図形についての感覚を豊かにしたり,表やグラフを用いて表現する力を高めたりするなどのため,必要な場面においてコンピュータなどを適切に活用すること。また, 第1章総則の第3の1の(3)のイに掲げるプログラミングを体験しながら論理的思考力を身に付けるための学習活動を行う場合には,児童の負担に配慮しつつ,例えば第2の各学年の内容の〔第5学年〕の「B図形」の(1)における正多角形の作図を行う学習に関連して,正確な繰り返し作業を行う必要があり,更に一部を変えることでいろいろな正多角形を同様に考えることができる場面などで取り扱うこと。
    (3) 各領域の指導に当たっては,具体物を操作したり,日常の事象を観察したり,児童にとって身近な算数の問題を解決したりするなどの具体的な体験を伴う学習を通して,数量や図形について実感を伴った理解をしたり,算数を学ぶ意義を実感したりする機会を設けること。
(略) (第2章 各教科 第4節 理科) (第3の2) 第2の内容の取扱いについては,次の事項に配慮するものとする。
    (1) 問題を見いだし,予想や仮説,観察,実験などの方法について考えたり説明したりする学習活動,観察,実験の結果を整理し考察する学習活動,科学的な言葉や概念を使用して考えたり説明したりする学習活動などを重視することによって,言語活動が充実するようにすること。
    (2) 観察,実験などの指導に当たっては,指導内容に応じてコンピュータや情報通信ネットワークなどを適切に活用できるようにすること。また,第1章総則の第3の1の(3)のイに掲げるプログラミングを体験しながら論理的思考力を身に付けるための学習活動を行う場合には,児童の負担に配慮しつつ,例えば第2の各学年の内容の〔第6学年〕の「A物質・エネルギー」の(4)における電気の性質や働きを利用した道具があることを捉える学習など,与えた条件に応じて動作していることを考察し,更に条件を変えることにより,動作が変化することについて考える場面で取り扱うものとする
(略)

中学校学習指導要領

第8節 技術・家庭
(第2〔技術分野〕の2) 内容
D 情報の技術
    (1) 生活や社会を支える情報の技術について調べる活動などを通して,次の事項を身に付けることができるよう指導する。
    ア 情報の表現,記録,計算,通信の特性等の原理・法則と,情報のデジタル化や処理の自動化,システム化,情報セキュリティ等に関わる基礎的な技術の仕組み及び情報モラルの必要性について理解すること。
    イ 技術に込められた問題解決の工夫について考えること。
    (2) 生活や社会における問題を,ネットワークを利用した双方向性のあるコンテンツのプログラミングによって解決する活動を通して,次の事項を身に付けることができるよう指導する。
    ア 情報通信ネットワークの構成と,情報を利用するための基本的な仕組みを理解し,安全・適切なプログラムの制作,動作の確認及びデバッグ等ができること。
    イ 問題を見いだして課題を設定し,使用するメディアを複合する方法とその効果的な利用方法等を構想して情報処理の手順を具体化するとともに,制作の過程や結果の評価,改善及び修正について考えること。
    (3) 生活や社会における問題を,計測・制御のプログラミングによって解決する活動を通して,次の事項を身に付けることができるよう指導する。
    ア 計測・制御システムの仕組みを理解し,安全・適切なプログラムの制作,動作の確認及びデバッグ等ができること。
    イ 問題を見いだして課題を設定し,入出力されるデータの流れを元に計測・制御システムを構想して情報処理の手順を具体化するとともに,制作の過程や結果の評価,改善及び修正について考えること。
    (4) これからの社会の発展と情報の技術の在り方を考える活動などを通して,次の事項を身に付けることができるよう指導する。
    ア 生活や社会,環境との関わりを踏まえて,技術の概念を理解すること。
    イ 技術を評価し,適切な選択と管理・運用の在り方や,新たな発想に基づく改良と応用について考えること。
(第2の3) 内容の取り扱い
    (4) 内容の「D情報の技術」については,次のとおり取り扱うものとする。
    ア (1)については,情報のデジタル化の方法と情報の量,著作権を含めた知的財産権,発信した情報に対する責任,及び社会におけるサイバーセキュリティが重要であることについても扱うこと。
    イ (2)については,コンテンツに用いる各種メディアの基本的な特徴や,個人情報の保護の必要性についても扱うこと。
    (5) 各内容における(1)については,次のとおり取り扱うものとする。
    ア アで取り上げる原理や法則に関しては,関係する教科との連携を図ること。
    イ イでは,社会からの要求,安全性,環境負荷や経済性などに着目し,技術が最適化されてきたことに気付かせること。
    ウ 第1学年の最初に扱う内容では,3年間の技術分野の学習の見通しを立てさせるために,内容の「A材料と加工の技術」から「D情報の技術」までに示す技術について触れること。
    (6) 各内容における(2)及び内容の「D情報の技術」の(3)については,次のとおり取り扱うものとする。
    ア イでは,各内容の(1)のイで気付かせた見方・考え方により問題を見いだして課題を設定し,自分なりの解決策を構想させること。
    イ 知的財産を創造,保護及び活用しようとする態度,技術に関わる倫理観,並びに他者と協働して粘り強く物事を前に進める態度を養うことを目指すこと。
    ウ 第3学年で取り上げる内容では,これまでの学習を踏まえた統合的な問題について扱うこと。
    エ 製作・制作・育成場面で使用する工具・機器や材料等については,図画工作科等の学習経験を踏まえるとともに,安全や健康に十分に配慮して選択すること。
    (7) 内容の「A材料と加工の技術」,「B生物育成の技術」,「Cエネルギー変換の技術」の(3)及び内容の「D情報の技術」の(4)については,技術が生活の向上や産業の継承と発展,資源やエネルギーの有効利用,自然環境の保全等に貢献していることについても扱うものとする。

高等学校学習指導要領

第2章 各学科に共通する各教科
第10節 情報
第2款 各科目
第1 情報Ⅰ
(第1〔情報Ⅰ〕の2) 内容
    (3) コンピュータとプログラミング コンピュータで情報が処理される仕組みに着目し,プログラミングやシミュレーションによって問題を発見・解決する活動を通して,次の事項を身に付けることができるよう指導する。
    ア 次のような知識及び技能を身に付けること。
    (ア) コンピュータや外部装置の仕組みや特徴,コンピュータでの情報の内部表現と計算に関する限界について理解すること。
    (イ) アルゴリズムを表現する手段,プログラミングによってコンピュータや情報通信ネットワークを活用する方法について理解し技能を身に付けること。
    (ウ) 社会や自然などにおける事象をモデル化する方法,シミュレーションを通してモデルを評価し改善する方法について理解すること。
    イ 次のような思考力,判断力,表現力等を身に付けること。
    (ア) コンピュータで扱われる情報の特徴とコンピュータの能力との関係について考察すること。
    (イ) 目的に応じたアルゴリズムを考え適切な方法で表現し,プログラミングによりコンピュータや情報通信ネットワークを活用するとともに,その過程を評価し改善すること。
    (ウ) 目的に応じたモデル化やシミュレーションを適切に行うとともに,その結果を踏まえて問題の適切な解決方法を考えること
(第1〔情報Ⅰ〕の3) 内容の取扱い
    (4) 内容の(3)のアの(イ)及びイの(イ)については,関数の定義・使用によりプログラムの構造を整理するとともに,性能を改善する工夫の必要性についても触れるものとする。アの(ウ)及びイの(ウ)については,コンピュータを使う場合と使わない場合の双方を体験させるとともに,モデルの違いによって結果に違いが出ることについても触れるものとする。
第2 情報Ⅱ (第2〔情報Ⅱ〕の2) 内容
    (4) 情報システムとプログラミング  情報システムの在り方や社会生活に及ぼす影響,情報の流れや処理の仕組みに着目し,情報システムを協働して開発する活動を通して,次の事項を身に付けることができるよう指導する。
    ア 次のような知識及び技能を身に付けること。
    (ア) 情報システムにおける,情報の流れや処理の仕組み,情報セキュリティを確保する方法や技術について理解すること。
    (イ) 情報システムの設計を表記する方法,設計,実装,テスト,運用等のソフトウェア開発のプロセスとプロジェクト・マネジメントについて理解すること。
    (ウ) 情報システムを構成するプログラムを制作する方法について理解し技能を身に付けること。
    イ 次のような思考力,判断力,表現力等を身に付けること。
    (ア) 情報システム及びそれによって提供されるサービスについて,その在り方や社会に果たす役割と及ぼす影響について考察すること。
    (イ) 情報システムをいくつかの機能単位に分割して制作し統合するなど,開発の効率や運用の利便性などに配慮して設計すること。
    (ウ) 情報システムを構成するプログラムを制作し,その過程を評価し改善すること。
(第2〔情報Ⅱ〕の3) 内容の取扱い
    (4) 内容の(4)のアの(ア)及びイの(ア)については,社会の中で実際に稼働している情報システムを取り上げ,それらの仕組みと関連させながら扱うものとする。
第3款 各科目にわたる指導計画の作成と内容の取扱い 2 内容の取扱いに当たっては,次の事項に配慮するものとする。
    (1) 各科目の指導においては,情報の信頼性や信憑性を見極めたり確保したりする能力の育成を図るとともに,知的財産や個人情報の保護と活用をはじめ,科学的な理解に基づく情報モラルの育成を図ること。
    (2) 各科目の指導においては,思考力,判断力,表現力等を育成するため, 情報と情報技術を活用した問題の発見・解決を行う過程において,自らの考察や解釈,概念等を論理的に説明したり記述したりするなどの言語活動の充実を図ること。
    (3) 各科目の指導においては,問題を発見し,設計,制作,実行し,その過程を振り返って評価し改善するなどの一連の過程に取り組むことなどを通して,実践的な能力と態度の育成を図ること。
    (4) 各科目の目標及び内容等に即して,コンピュータや情報通信ネットワークなどを活用した実習を積極的に取り入れること。その際,必要な情報機器やネットワーク環境を整えるとともに,内容のまとまりや学習活動,学校や生徒の実態に応じて,適切なソフトウェア,開発環境,プログラミング言語,外部装置などを選択すること。
    (5) 情報機器を活用した学習を行うに当たっては,照明やコンピュータの使用時間などに留意するとともに,生徒が自らの健康に留意し望ましい習慣を身に付けることができるよう配慮すること。
    (6) 授業で扱う具体例,教材・教具などについては,情報技術の進展に対応して適宜見直しを図ること。