B3-3

IoT 時代に資する「ものグラミング」教育のための授業開発と実践～ 2016 年度大学コンソーシアム石川における実践～

Development of a New Course on the “Mono-Gramming” Based Education
for the IoT Generations
中村和敬*1，石山雅三*1，松浦智之*1，當仲寛哲*1，北口善明*2，森祥寛*2，大野浩*2
NAKAMURA Kazutaka*1, ISHIYAMA Masami*1, MATSUURA Tomoyuki*1, TOUNAKA Nobuaki*1, KITAGUCHI
Yoshiaki*2, MORI Yoshihiro*2, OHNO Hiroyuki*2*1 ユニバーサル・シェル・プログラミング研究所，*2 金沢大学総合メディア基盤センター*1 Universal Shell Programming Laboratory Ltd. *2 Informational Media Center, Kanazawa University
Email: jrp-usp-info@ml.kanazawa-u.ac.jp
あらまし：筆者らは，情報科学技術分野の専門教育を受けたことのない人々に，IoT システムからビッグデータシステムに至るさまざまな情報システムに触れる機会を提供し，受講者の情報システムに対する理解を深めるための教育プログラムを，「ものグラミング」というコンセプトに基づいて開発している．本発表では，2016 年度前期に大学コンソーシアム石川で行った 2 つの授業について，教育プログラ
ムと実践内容を報告する．
キーワード：ものグラミング，POSIX 中心主義，ユニケージ開発手法

1.

はじめに

近年，情報科学技術はさまざまな分野で活用されている．これに応じて，情報科学技術に関する深い知見を持ち日常の問題解決に活用できる人材の需要は高く，そのような要請に応える情報科学技術教育プログラムもまた求められている．
本プロジェクト，「IoT 時代に資するユニケージ開発手法の普及啓発に関する研究プロジェクト」は，USP 研究所と金沢大学総合メディア基盤センターの大野、北口、森との共同研究により，情報システ
ム一般に関する教育プログラムを開発するプロジェ
クトである．IoT システムからビッグデータシステ
ムに至るさまざまな情報システムに触れる機会を提供し，情報科学技術分野の専門教育を受けたことのない人々のシステムに対する理解を深める事を目的としている．本プロジェクトでは， 2015 年度後期より授業を実施している[1, 2]．本稿では， 2016 年度前期に大学コンソーシアム石川で行った 2 つの授業について，教育プログラムと実践内容を報告する．

2.

情報科学技術教育の課題と本プロジェクトにおける解決策

情報システムを理解するための大きな障害となっている．特に教育の観点においては，異なる適用分野について演習を行なおうとする度に，その適用分野の製品について学ばねばならず，大きな負担となっている．本教育プログラムはこのような問題を，ものグラミング，ユニケージ開発手法，およびPOSIX 中心主義というコンセプトにより解決しようとするものである[2, 3]．本教育プログラムでは，教材として Linux 等の Unix 系 OS およびシェルスクリプトを使用して開発した情報システムを取りあげ，受講者にさまざまな情報システムに触れる機会を提供する．異なる適用分野の情報システムであっても，同じ OS と開発言語を使用することで，授業を理解するために必要な前提知識を減らすことが可能となった．そして，それぞれの情報システムの実装上の特徴や，情報科学的側面に焦点を当てた教育が可能となった．実行環境としては，一般的な計算機と Raspberry Pi 等の電子工作用コンピュータを用いる．教材となる情報システムは前述の三つのコンセプトに基づいて開発されたものを取り上げる．

3.

情報システムはますます複雑になってきており，開発を容易にするため，さまざまな OS や言語，ライブラリやミドルウェア等の製品が，日々公表，またはバージョンアップされている．それらのほとん
どは，その特定の適用範囲での性能や機能を追求している．また，バージョンアップの度に以前とはまったく異なる UI や API を提供するケースが多々みうけられる．このように現状の情報システムを理解するために必要な知識は，適用分野ごとに異なりまた時とともに更新が求められるものである．
こういった適用分野毎の知識の断絶と更新の必要性は，情報科学に関する一般的な知識により個々の授業の構成

2015 年度後期に、本教育プログラムをを踏まえて，金沢大学における学部 3 年生向けの授業「計算科学特論」として実施した[1, 2]．そこで得られた知見を元に教育プログラムを更新し、2016 年度前期の期間，大学コンソーシアム石川において以下の一般向けの授業 2 コマを実施した．
a) クラウド時代の「ものグラミング」概論b) シェルスクリプト言語論
授業 a) では，様々なシステムを俯瞰する事に主眼をおき，授業 b) では，それらシステムの開発手法について深く解説をする．授業を 2 コマで実施する事により，情報システム開発手法それ自体に興味を― 181 ―教育システム情報学会 JSiSE2016
第41回全国大会 2016/8/29-8/31

持つ受講者と，情報科学の応用分野に興味を持つ受講者のそれぞれに応える内容とする．同時に，大学コンソーシアム石川が用意する Moodle システムを利用し，受講者の理解の助けとなるよう工夫した．
以下ではそれぞれの授業の内容について述べる．
3.1 クラウド時代の「ものグラミング」概論
本授業では，近年のさまざまな情報をシステムを俯瞰し，さらにそれらを組み合わせて，「ものづくり」と「プログラミング」を安全安心かつ楽しく行う創造的生活を実践するための基本的知識，すなわち「ものグラミング」を，受講者に教えた．
本授業で特に取り上げる情報システムは，第一にクラウドサービスである．クラウドサービスの世界では，インターネット上に大量のデータや情報が集積され，これらを活用するサービスもまたインターネット上に用意されている．ユーザは自身のパソコン上にデータやアプリケーションを用意するのではなく、パソコンからインターネットにアクセスしてこれらを利活用する．本授業では，第二に IoT システムを取り上げる．近年，小型のコンピュータや超小型のセンサなどが安価に普及し、これまでは手軽には手の届かなかった機器が当たり前のように利用できるようになってきた。これにより多くの人々が余暇に趣味で「ものづくり」楽しむようになって来ている．こういった部品により作り出される，ネットワーク接続を前提とした「モノ」と，それらにより構成されるネットワークを総称して「モノのインターネット（IoT: Internet of Things）」と呼ぶ。多くの利用者には，これら二つのシステム，また利用者自身のパソコンは，別々のものとして理解されて来た．しかし，これからは，これらはネットワークにより接続され渾然一体となり，相互に連携して利活用することが当たり前となってゆく．大野は，このような世界で必要となる技法を，「ものづくり」と「プログラミング」をかけあわせた「ものグラミング」という言葉で表現した．
本授業では、手元で動く小さな「モノ」が徐々に発展しクラウドと連携するまでと、クラウド上の大量の情報やサービスが手元の小さな「モノ」に影響を与えるまでを講義と体験を通じて述べ、「ものグラミング」全体の理解を受講者に促した。また本授業は基本的に座学，体験演習を繰り返す形で進めた．
また，適宜討論の回を設けて，学んだ知識の深化と，セキュリティの問題等、実際に応用する際の注意点の気付きを促した．

向上するかのようにみえる．しかし，それらの製品はバージョンアップの度に以前とはまったく異なるUI や API を提供するケースが多々みうけられる．
そのような製品は長年にわたる保守をほぼ不可能にし，一般ユーザやシステム管理者，アプリケーション開発者に多大な維持管理コストを支払わせている．
この事は単純なシステムの金銭的コスト増大のみにとどまらず，システム障害を誘発する原因にもなる．
この問題を解決するため，松浦は「POSIX 中心主義」と名付けた手法を提案した．この手法に沿い，POSIX が定める仕様に極力準拠したプログラミングを行うことで，OS を越えた高い互換性とともに20 年以上の持続可能性を実現した．
本授業では，受講者は、POSIX 環境におけるシェルスクリプトについて新しい視点で学ぶとともに，「すべての UNIX で 25 年後も動く普遍的なプログラム」を書く方法について会得し日頃の問題解決に適用できるようになることを目標とした．

4.

2016 年度後期にも金沢大学での授業が予定されている．本プロジェクトでは引き続き本教育プログ
ラムに基づく講義を実施し，教育プログラムの内容や品質の向上を図って行く．また、情報処理学会が策定し，公開する，情報専門学科におけるカリキュラム標準 J07[4]のコンピュータ科学領域(J07-CS) への準拠も視野に入れている．
併せて本教育プログラムの実施先の開拓も進めて
行 く 予 定 で あ る ． JMOOC を 始 め と し た 各 国
MOOCs への講義の公開等を通じて、海外、企業研修、生涯学習などへの展開も計画している。
謝辞本プロジェクトは，金沢大学総合メディア基盤センタ
ーと USP 研究所の共同研究として推進された．関係各位のご厚意ご高配に，深く感謝する．

参考文献
(1)

(2)

(3)

3.2 シェルスクリプト言語論

本授業では， POSIX 中心主義に基づいたシステムの開発方法を教えた．現代の多くの情報システム開発の現場では，開発を容易にするためにさまざまな OS や言語，ライブラリやミドルウェア等の製品を利用している．これらを利用すると一見生産性が今後の展開と課題(4)― 182 ―

中村和敬，石山雅三，松浦智之，當仲寛哲，北口善明，森祥寛，大野浩之：“IoT 時代に資するユニケージ開発手法の普及啓発に関する研究（1）ユニケージシステムと情報科学教育”，情報処理学会第 78 回全国大会（2016）中村 和敬，石山雅三，松浦智之，當仲寛哲，北口善明, 森祥寛, 大野浩之：“IoT 時代に資する「ものグラミング」教育のための授業開発と実践”，教育シス
テム情報学会 2016 年度第 6 回研究会（2016）松浦智之，大野浩之，當仲寛哲：“IoT 時代に資するユニケージ開発手法の普及啓発に関する研究（2）POSIX 中心主義と情報科学教育”，情報処理学会第78 回全国大会（2016）
情報処理学会情報処理教育委員会 J07 プロジェクト連絡委員会編，“情報専門学科におけるカリキュラム標準 J07”，最終更新日： 2010 年 6 月 11 日 .
https:// www.ipsj.or.jp/12kyoiku/ J07/J0720090407.html(2016 年 1 月 7 日閲覧 ).