情報の授業で、生徒に別々のファイルを配付したい時があります。
例えば公開鍵暗号方式の演習で、秘密鍵のファイルを生徒ごとに作成します。それをGoogleドライブにアップしておいて、個々の生徒に共有するためのGAS(Google Apps Script)を作成しました。
鍵設定ファイル(Googleスプレッドシート)

スプレッドシートのA列にファイル名の一覧、B列にそのファイルに設定したいユーザ名を入れておきます。
下記のスクリプトを実行します
function makeFilesSetShare() {
//設定したいファイルが入っているフォルダのIDを指定
var folder=DriveApp.getFolderById('[フォルダのID]');
//設定シートのデータ範囲を指定
var fileShareRange = SpreadsheetApp.getActiveSheet().getDataRange();
//ファイル設定のデータを配列で取得
var arr = fileShareRange.getValues();
//配列の行数・列数を取得
var row = fileShareRange.getLastRow();
var column = fileShareRange.getLastColumn();
for (var i = 1; i < row; i++){
var fileName = arr[i][0];
file=folder.getFilesByName(fileName).next();
//スプレッドシートで指定したメンバーに閲覧権限を付与します
var j = 1;
while (j < column) {
//空白のセルを飛ばします
if (arr[i][j] != '') {
file.addViewer(arr[i][j]+'@aabbcc.ed.jp');
}
j++;
}
}
}
例えば公開鍵暗号方式の演習で、秘密鍵のファイルを生徒ごとに作成します。それをGoogleドライブにアップしておいて、個々の生徒に共有するためのGAS(Google Apps Script)を作成しました。
鍵設定ファイル(Googleスプレッドシート)

スプレッドシートのA列にファイル名の一覧、B列にそのファイルに設定したいユーザ名を入れておきます。
下記のスクリプトを実行します
function makeFilesSetShare() {
//設定したいファイルが入っているフォルダのIDを指定
var folder=DriveApp.getFolderById('[フォルダのID]');
//設定シートのデータ範囲を指定
var fileShareRange = SpreadsheetApp.getActiveSheet().getDataRange();
//ファイル設定のデータを配列で取得
var arr = fileShareRange.getValues();
//配列の行数・列数を取得
var row = fileShareRange.getLastRow();
var column = fileShareRange.getLastColumn();
for (var i = 1; i < row; i++){
var fileName = arr[i][0];
file=folder.getFilesByName(fileName).next();
//スプレッドシートで指定したメンバーに閲覧権限を付与します
var j = 1;
while (j < column) {
//空白のセルを飛ばします
if (arr[i][j] != '') {
file.addViewer(arr[i][j]+'@aabbcc.ed.jp');
}
j++;
}
}
}
高校教科「情報」の私の授業では、今、コンピュータネットワークについて学習しています。IPやRIP、DNS、暗号化など、さまざまなプロトコルについて教材を使って授業をしています。しかし、そもそもプロトコルとは何かということについては、教科書にはプロトコルの階層構造については書かれているものの、わかりやすく学べる教材がなかなか思いつきませんでした。過去の授業では、人間同士のコミュニケーションとコンピュータでの通信を比較して、プロトコルについて学ぶこともしましたが、何となくしっくりきませんでした。
荻野先生の『実験で学ぶ通信の歴史ver.1.3.2』を拝読していたところ、「LEDで通信してみよう」の授業がプロトコルを学ぶ上でわかりやすいと思い、自分の授業に取り入れてみることにしました。
左が試作したもの。右が今回製作したもの
タクトスイッチと電池ボックスを購入して、学校にあったLEDとカーボン抵抗をブレッドボード上に配置しました。生徒が使いやすいように配線の仕方を試行錯誤して写真の左のようなものを10班分作りました。今週の月曜日の授業では、このボードを利用しました。
授業の流れは荻野先生の授業をまねさせていただきました。生徒たちはよく話し合っていました。速く通信ができた班は1分を切りました。
授業後の生徒の感想は以下の通りです。
私の教員室にユニバーサル基板がちょうど10枚あったので、写真の右のように基板上に回路を作りました。次の授業から使います。
荻野先生の『実験で学ぶ通信の歴史ver.1.3.2』を拝読していたところ、「LEDで通信してみよう」の授業がプロトコルを学ぶ上でわかりやすいと思い、自分の授業に取り入れてみることにしました。

タクトスイッチと電池ボックスを購入して、学校にあったLEDとカーボン抵抗をブレッドボード上に配置しました。生徒が使いやすいように配線の仕方を試行錯誤して写真の左のようなものを10班分作りました。今週の月曜日の授業では、このボードを利用しました。
授業の流れは荻野先生の授業をまねさせていただきました。生徒たちはよく話し合っていました。速く通信ができた班は1分を切りました。
授業後の生徒の感想は以下の通りです。
- 班によって数字の通信手段が様々でおもしろかった
- ライトの色の種類で番号を送信するという作業において、連打することは禁物であることがわかった。点灯の間隔が短いと読み取る側での処理が非常に難しく、余計に時間をくってしまうので、初めから読み取りやすいようにゆっくりやった方が時間効率がいいと考えられた。
- 2班と同じ方法で行ったけど1回で読み取れなくて繰り返したら時間がかかってしまった。方法だけでなく正確に読み取る技術が大事だなと感じた。その点コンピュータはオンとオフが得意だから正確に速くできてすごいなと思いました。
- 正確に情報を伝えるためには誤解のないシンプルなルールを作ることが大切だと感じた。また、区切りを伝える記号を作ることで、情報を伝えやすくなることを実感した。
- 光で数字を伝える上で、1色に5を固定したり、色別に奇数偶然を決めている班があったり、様々なプロトコルが存在し各々メリット・デメリットがあることが分かった。通信では正確性と速さが求められることを体感した。
私の教員室にユニバーサル基板がちょうど10枚あったので、写真の右のように基板上に回路を作りました。次の授業から使います。
今日は第2回次世代育成教育フォーラムに参加しました。オンラインでの開催です。
初めに内閣府「第6期科学技術・イノベーション基本計画」(2021年3月26日)における教育・人材育成「⼀⼈ひとりの多様な幸せ(well-being)と課題への挑戦を実現する教育・⼈材育成」において、初等中等教育段階からのSTEAMについて触れられました。
次に「東京大学グローバルサイエンスキャンパス(UTokyoGSC)」について取り組みを紹介していただきました。プログラムの中の「STEAM型学習」が気になりました。最先端の科学技術をテーマにした動画を検索できる「ONG映像教材検索 ONG STEAM STREAM」は興味深いです。
埼玉県の協調学習の取り組みについても紹介されました。
初めに内閣府「第6期科学技術・イノベーション基本計画」(2021年3月26日)における教育・人材育成「⼀⼈ひとりの多様な幸せ(well-being)と課題への挑戦を実現する教育・⼈材育成」において、初等中等教育段階からのSTEAMについて触れられました。
次に「東京大学グローバルサイエンスキャンパス(UTokyoGSC)」について取り組みを紹介していただきました。プログラムの中の「STEAM型学習」が気になりました。最先端の科学技術をテーマにした動画を検索できる「ONG映像教材検索 ONG STEAM STREAM」は興味深いです。
埼玉県の協調学習の取り組みについても紹介されました。
今日は生徒と一緒に東京・西早稲田にある木組み博物館を見学させていただきました。

たくさんの木組みの見本などが展示されていて、しかもそれを触れて学べる都内では貴重な博物館です。
国営昭和記念公園・歓楓亭(かんぷうてい)が建てられる際の映像を見せていただきました。
以下、生徒の感想です。

たくさんの木組みの見本などが展示されていて、しかもそれを触れて学べる都内では貴重な博物館です。
国営昭和記念公園・歓楓亭(かんぷうてい)が建てられる際の映像を見せていただきました。
以下、生徒の感想です。
- 写真やCGで組み木を分解しているところを見るよりも、自分の手で分解した方が理解がより深まると思った。いろいろな角度から見ることでどのように溝が彫られて、互いの木がはまっているのかわかった。
- パズルや木組みの分解はとても面白かった。木組み以外にも、和釘や彫刻なども展示してあり、様々なものを見ることができた。特に和釘は小学5年生の時に、国語で学んでいたため懐かしかった。実際に見ることができて嬉しかった。
- 木材見本や銅屋根の模型があり、「実際にこれを使用して建物を作ったら…。」という想像や、薬師寺の建築の様子が分かるような写真や、実寸サイズの模型が展示されており、「こことそこが重なって…。」というような、想像ができて楽しかった。
- 建物の建造の様子をDVDで見たが、そこでは多種多様な技術が用いられていて、プロの凄さを感じたし、建物の立派さにも驚いた。職人の知恵と技術がつめられてそう。
- 鎌継なんかは、見ただけではなかなか仕組みが分からないので、四方鎌継などの作りが簡単ではないようなものも、実際に動かせて面白かったです。組まれたものを外していると、やはり「なぜこのような構造を思いつくのだろうか」と考えます。構造が複雑すぎる上、種類もたくさんあるので、わざわざこの構造である必要はあるのかと思いますが、場面ごとで使うほぞなどは違ってくるからあるのでしょう。
- どの作品も断面が非常にきれいで、隙間がなく、丁寧に作られていることがよく分かった。こうした匠の技術が古来から現在にかけての木造建築を支えていることを学んだ。神社や寺などに訪れる機会があった際に今回の体験を思い出すと、見方が変わり、独特の趣を感じることができると思う。
- 日本の建築作りに欠かせない瓦や漆など、普段あまり知ることのできないものも見学できたので良かったと思う。
- 最終的に同じような形になるものも組み方がそれぞれ違って、一つの場面で使われる多くの部品の中にも持っている役割が違ったり、より強度が増すように改良が重ねられた結果なのだろうなと思いました。実際に近くで見て触ることでこの木組が実際に数多く使われてきたという現実感や、受け継がれている技術の重さを感じました。
- 博物館では様々な種類の丸太が並んでいた。それぞれを持ち上げたり、押したりして見ることでその木の柔らかさや重さなどの違いがよくわかった。中にはマルタの中でも太いのに幹ではなく枝なものもあったりした。また木によって樹皮や色がぜんぜん違うことがわかった。
今日は東京大学総長である藤井先生による特別授業がおこなわれました。授業のテーマは「海を知るためのテクノロジー」でした。多数の生徒、保護者が参加しました。貴重な機会ですので、私も一緒に勉強してきました。

藤井先生はなぜ海について知る必要があるのかについてお話されました。地球は約71%が海で、海の深さは平均3,800mもあります。そんな広大な海ですが、わかっている海底地形はわずか20%しかないそうです。月の地形はすべてわかっているのと対比されていました。海の地形を2030年までに100%解明する取り組みが行われているそうです。壮大なプロジェクトです!
藤井先生は、海洋研究に携わるようになったきっかけを教えてくださいました。当時、一番深い海であるマリアナ海溝に潜ったのは2人しかいなかったそうです。それは1960年のことだったと聞いて驚きました。また、藤井先生が大学生の頃、沈没したタイタニック号が発見され、その映像を目にしたそうです。このようなきっかけで、海に興味を持つようになり、「海は月よりも遠い」ためテクノロジーが必要であると考えられたそうです。
藤井先生は、これまで取り組んでこられた研究についてもお話ししてくださいました。国際プロジェクトであるアルゴ計画では、関東平野に1個くらいの割合でしか計測できないということです。そこで、「誰でも参加できるようにすることでより細かく測定できる」とOMNI(Ocean Monitoring Network Initiative)プロジェクトに取り組まれました。また、Design-Led Xや、海洋テロワール構想の概要もお話ししてくださいました。
興味深いお話しばかりで1時間があっという間に過ぎてしまいました。

藤井先生はなぜ海について知る必要があるのかについてお話されました。地球は約71%が海で、海の深さは平均3,800mもあります。そんな広大な海ですが、わかっている海底地形はわずか20%しかないそうです。月の地形はすべてわかっているのと対比されていました。海の地形を2030年までに100%解明する取り組みが行われているそうです。壮大なプロジェクトです!
藤井先生は、海洋研究に携わるようになったきっかけを教えてくださいました。当時、一番深い海であるマリアナ海溝に潜ったのは2人しかいなかったそうです。それは1960年のことだったと聞いて驚きました。また、藤井先生が大学生の頃、沈没したタイタニック号が発見され、その映像を目にしたそうです。このようなきっかけで、海に興味を持つようになり、「海は月よりも遠い」ためテクノロジーが必要であると考えられたそうです。
藤井先生は、これまで取り組んでこられた研究についてもお話ししてくださいました。国際プロジェクトであるアルゴ計画では、関東平野に1個くらいの割合でしか計測できないということです。そこで、「誰でも参加できるようにすることでより細かく測定できる」とOMNI(Ocean Monitoring Network Initiative)プロジェクトに取り組まれました。また、Design-Led Xや、海洋テロワール構想の概要もお話ししてくださいました。
興味深いお話しばかりで1時間があっという間に過ぎてしまいました。
今年は高校3年生の担任なので、生徒の大学出願のスケジュールを把握していなければなりません。11年前に高校3年生を担任したときにつくったAccessデータベースを再利用して、生徒のスケジュールと調査書発行を管理しています。
そのデータをGoogleカレンダーに自動で登録したいと考え、スプレッドシートからカレンダーに予定を登録するGAS(Google Apps Script)を書くことにしました。GASをちゃんと書くのは今回が初めてです。
昨日、下記のサイトを見つけました。
スプレッドシートからカレンダーに連携してスケジュールを一括登録する
昨日はこのサイトのスクリプトを理解するところから始めました。
今日は下記のように進めました。
(1) 上記のサイトのスクリプトを書き換えてみる
(2) Accessのデータをスプレッドシートに貼り付けられる形にするクエリを作成
(3) 貼り付けた表からカレンダーのイベントを作成するスクリプトを記述
(4) スクリプトの実行
勤務先で取得したGoogleアカウントのカレンダーに予定を登録しました。出願期間と選考日はシアン、発表日は緑にしてあります。初めてカレンダーに予定を登録するスクリプトを書いたのですが、意外に簡単でした。便利です。

カレンダー

制作したスクリプト
そのデータをGoogleカレンダーに自動で登録したいと考え、スプレッドシートからカレンダーに予定を登録するGAS(Google Apps Script)を書くことにしました。GASをちゃんと書くのは今回が初めてです。
昨日、下記のサイトを見つけました。
スプレッドシートからカレンダーに連携してスケジュールを一括登録する
昨日はこのサイトのスクリプトを理解するところから始めました。
今日は下記のように進めました。
(1) 上記のサイトのスクリプトを書き換えてみる
(2) Accessのデータをスプレッドシートに貼り付けられる形にするクエリを作成
(3) 貼り付けた表からカレンダーのイベントを作成するスクリプトを記述
(4) スクリプトの実行
勤務先で取得したGoogleアカウントのカレンダーに予定を登録しました。出願期間と選考日はシアン、発表日は緑にしてあります。初めてカレンダーに予定を登録するスクリプトを書いたのですが、意外に簡単でした。便利です。

カレンダー

制作したスクリプト
今日は、雨が降る中、第48回和光中学校・高等学校教育研究集会に参加しました。
中山先生による中学1年1組の技術の授業を参観しました。授業のテーマは「情報に関する技術~目的のプログラムを組む~」です。生徒はmicro:bitを使って方位磁石を作っていました。この授業の目標は、「かつ」「または」を理解するという、中学1年生にしてはやや難しめの内容でした。なかなかうまくいかない生徒もいましたが、答えを見ながら何とか組めていました。
昨年の中山先生の授業を見てから、私も授業でコンパスのプログラムを作る課題を与えています。micro:bitのコンパスセンサの精度があまり良くないので、プログラムがちゃんとできていても、micro:bitに送るとうまく表示されないということがあります。しかし、今回の中山先生の授業ではあまり問題はなさそうでした。
公開授業後の授業検討会には、12名が参加しました。今年は4人グループで自己紹介をしたあと、小中高の「情報教育」について意見交換をしました。時間が50分しかなかったので、十分な議論ができたわけではありませんが、勉強になることも多くありました。
中山先生による中学1年1組の技術の授業を参観しました。授業のテーマは「情報に関する技術~目的のプログラムを組む~」です。生徒はmicro:bitを使って方位磁石を作っていました。この授業の目標は、「かつ」「または」を理解するという、中学1年生にしてはやや難しめの内容でした。なかなかうまくいかない生徒もいましたが、答えを見ながら何とか組めていました。
昨年の中山先生の授業を見てから、私も授業でコンパスのプログラムを作る課題を与えています。micro:bitのコンパスセンサの精度があまり良くないので、プログラムがちゃんとできていても、micro:bitに送るとうまく表示されないということがあります。しかし、今回の中山先生の授業ではあまり問題はなさそうでした。
公開授業後の授業検討会には、12名が参加しました。今年は4人グループで自己紹介をしたあと、小中高の「情報教育」について意見交換をしました。時間が50分しかなかったので、十分な議論ができたわけではありませんが、勉強になることも多くありました。
今日は信州大学ジュニアドクター育成塾(以下、ジュニアドクター育成塾)を見学させていただくため、信州大学教育学部附属次世代型学び研究開発センター(以下、学びセンター)とFabLab Nagano(以下、FabLab)を訪問しました。秋晴れの気持ちの良い1日でした。イチョウが黄色く色づいていました。

信州大学教育学部附属次世代型学び研究開発センター

FabLab Nagano (旧附属学校の校舎を再利用)
ジュニアドクター育成塾は全15回の授業で構成されています。長野市内だけではなく、県内の広範囲の子どもたちが参加しています。今年度の塾生は44人ですが、応募はその倍ほどもあったそうです! ジュニアドクター育成塾では、工学部など他の学部の先生や、地域の企業の方の講座もあり、幅広く先端技術が学べるようになっています。前半は個人制作で、第6回目の10/5に長野図書館で発表会がおこなわれたそうです。学会のポスター発表のように、25分ずつ、4グループにわけて発表をおこなったそうです。
今日はちょうど折り返しとなる第8回目の授業でした。前回の10/26からグループ製作が始まったそうです。中学生と小学5・6年生の4人がグループになり、11グループでそれぞれの制作に取り組みます。通っている学校も学年も違う子どもたちが、協力して一つ課題に取り組むのが特徴です。都合が悪く来られなかった子どももいて、この日の参加者は40名(1名は午後から参加)、うち女子は7人でした。
今日の流れは以下の通りでした。
10:00~10:15 全体の確認
10:15~12:00 チームでの開発
12:00~13:00 昼食
13:00~15:00 チームでの開発
15:00~15:15 個人作品発表(10/5の発表会の欠席者)
15:15~15:30 諸連絡
まず、学びセンターに集合して、村松先生から前回から始まったグループ活動の成果発表会(12/8)と今日の流れについて説明がありました。スライドの作り方を説明されたのですが、内容が大学生の発表のレベルと変わらず、驚きました。スライドのデータはGoogle Classroomのドライブに置いていて、グループのメンバーで同時に編集できるようにしているそうです。
説明のあと、3分間、今日の作業計画についてグループで話し合いました。それぞれのグループが学びセンターとFabLabに分かれて、いよいよグループ制作が始まりました。前回のグループ活動で必要な物品を申請していて、今日までに届いていた物品を受け取っていました。レトロな水道や大中小の水槽、重曹などなど、グループによって様々でした。
学びセンターでは、Scratchでプログラムを制作したり、スライドを作成したりしていました。自分で所有しているRaspberry Piを持ってきて、Pythonでプログラミングしている凄い中学生もいました! 重さを測れる台を作っていました。
FabLabでは、3Dプリンタやレーザー加工機を使って思い思いのものを作っていました。みんなTinkerCADを使いこなしていました。また、太陽電池にテスタをつないで、電力を測定したり、水槽に重曹と水を入れて何やら実験しているグループもありました。

子どもたちにひっぴりだこの信州大学 村松先生
どのグループも子どもたちが真剣な眼差しで取り組んでいたのが印象的でした。最終的にどんな作品ができるのかワクワクしました。12月の発表会も見に行きたくなりました!

信州大学教育学部附属次世代型学び研究開発センター

FabLab Nagano (旧附属学校の校舎を再利用)
ジュニアドクター育成塾は全15回の授業で構成されています。長野市内だけではなく、県内の広範囲の子どもたちが参加しています。今年度の塾生は44人ですが、応募はその倍ほどもあったそうです! ジュニアドクター育成塾では、工学部など他の学部の先生や、地域の企業の方の講座もあり、幅広く先端技術が学べるようになっています。前半は個人制作で、第6回目の10/5に長野図書館で発表会がおこなわれたそうです。学会のポスター発表のように、25分ずつ、4グループにわけて発表をおこなったそうです。
今日はちょうど折り返しとなる第8回目の授業でした。前回の10/26からグループ製作が始まったそうです。中学生と小学5・6年生の4人がグループになり、11グループでそれぞれの制作に取り組みます。通っている学校も学年も違う子どもたちが、協力して一つ課題に取り組むのが特徴です。都合が悪く来られなかった子どももいて、この日の参加者は40名(1名は午後から参加)、うち女子は7人でした。
今日の流れは以下の通りでした。
10:00~10:15 全体の確認
10:15~12:00 チームでの開発
12:00~13:00 昼食
13:00~15:00 チームでの開発
15:00~15:15 個人作品発表(10/5の発表会の欠席者)
15:15~15:30 諸連絡
まず、学びセンターに集合して、村松先生から前回から始まったグループ活動の成果発表会(12/8)と今日の流れについて説明がありました。スライドの作り方を説明されたのですが、内容が大学生の発表のレベルと変わらず、驚きました。スライドのデータはGoogle Classroomのドライブに置いていて、グループのメンバーで同時に編集できるようにしているそうです。
説明のあと、3分間、今日の作業計画についてグループで話し合いました。それぞれのグループが学びセンターとFabLabに分かれて、いよいよグループ制作が始まりました。前回のグループ活動で必要な物品を申請していて、今日までに届いていた物品を受け取っていました。レトロな水道や大中小の水槽、重曹などなど、グループによって様々でした。
学びセンターでは、Scratchでプログラムを制作したり、スライドを作成したりしていました。自分で所有しているRaspberry Piを持ってきて、Pythonでプログラミングしている凄い中学生もいました! 重さを測れる台を作っていました。
FabLabでは、3Dプリンタやレーザー加工機を使って思い思いのものを作っていました。みんなTinkerCADを使いこなしていました。また、太陽電池にテスタをつないで、電力を測定したり、水槽に重曹と水を入れて何やら実験しているグループもありました。

子どもたちにひっぴりだこの信州大学 村松先生
どのグループも子どもたちが真剣な眼差しで取り組んでいたのが印象的でした。最終的にどんな作品ができるのかワクワクしました。12月の発表会も見に行きたくなりました!