プログラミングの学習環境をChromeブラウザ配下で構築試行してみます。

  1. 概要
    数年前,Chromebookが米国の教育現場で使われていると聞いて「Chromeブラウザをメインに動かすChromebookが授業用にホントに使えるのか?」とかなりギモンだった。
    先日「かつて米国ではK12(高校3年生)以下のコンピュータ環境はAppleが席巻していた。しかし,今はChromebookのシェアが6割近くある」と聞いてたまげた。
    で,USでのChromebookの利用について調べたら納得した。私は,ん十年間高校でコンピュータ教育に携わって来た経験から「授業で使うパソコンは兵器のように頑丈でなければならない」と思っているのだが、USの教育現場で使われているChromebookを見るとMILスペック(米軍規格)の耐久性を持っている…正に兵器レベル。ローカルに(Chromebookに)ソフトやデータを置かないでクラウド側に置きハード(Chromebook)が壊れても,代替えハードを持って来てクラウドにログインすれば元の学習環境が直ちに復元できる…兵器並みのダメージコントロールだ。 高価でヤワなApple製品を駆逐するはずだと納得した。
    授業でのコンピュータの利用は次の2つに分けられる。

    1. 学習用具としてのコンピュータ(教科書・ノート・筆記用具と同じように用いる)
    2. コンピュータサイエンス授業での教材・実習環境としてのコンピュータ

    ここでは,中学〜高校でのコンピュータサイエンスの授業を想定してChromeブラウザベースでどこまでできるか検証して見ることにした。

    ※その後,Cromebookを入手したのでそちらでも検証した。パソコン+Chromeブラウザより使い勝手が良かった。

  2. 各種ツール
    1. 一般的ITツール
      生徒さんが課題プロジェクトなどで先行事例や関連事例を調べたり、プロジェクトの成果をレポートにまとめたり、プレゼンスライドを作成するような場合にはChromeブラウザやその配下で動くG suiteのツール群が利用できる。

      Webアプリケーション 言語 用途
      ドキュメント JP 文書作成(G suite)
      スプレッドシート JP 表計算(G suite)
      スライド JP プレゼンスライド作成(G suite)
      Cloud LaTeX JP TeX文書作成
      Pixlr Editor JP 画像加工
      Pixect EN カメラ・キャプチャー
    2. 学習支援
       Webサイト 言語 備考
      はじめてのコンピュータサイエンス JP miciro:bitを使用したコンピュータサイエンスの授業実施のための教員研修テキスト
      Khan Academy EN コンピュータサイエンスの学習
      プログラミング言語の学習(Javascript)
      Codecademy EN プログラミング言語の学習
      ドットインストール JP プログラミング言語の学習
    3. プログラミング
      javascriptであればchromebookだけで完結するプログラミング環境が標準で揃っている。j
      chromebookでLinuxが起動できるようになったので各種プのログラミング言語をLinux環境で使える。

      Webサイト 言語 プログラミング言語他
      Scratch JP ブロック・プログラミング
      Processing Web Editor EN Processing
      Codenvy.io EN クラウド・ワークスペース / 各種プログラミング言語対応(Freeアカウントあり)
      github EN ソースコード管理
    4. マイコン開発
      Webサイト 言語 備考
      micro:bit JP micro:bit / ブロック・プログラミング
      micro:bit / JaveScript,Python
      Arduino Create EN 各種Arduinoボード / C++
      注:Chromebookからの利用は月額課金あり。
      パソコンのChromeブラウザからの利用には課金なし。
      mbed compiler EN mbed (ARM-Core, micro:bitにも対応) / C++
      LUA Web IDE EN ESP8266 / LUA script (Chromeアプリ)
    5. ツール(Chromeプラグイン / アプリ)
       ツール 言語 備考
      Real VNC Viewer EN RasPiのVNCに対応するビューア
      SSH Client EXT
      SSH Client App
      EN Secure Shell ターミナル
      Serial Monitor EN シリアルポートモニタ
    6. 有用なWebサイト他
      Webサイト他 言語
      GeoGebra JP 数学ツール
      Raspberry Pi の Mathematica JP 数学ツール・プログラミングツール
      Rasberry PiをVNCで遠隔操作して利用する
    7. chromeブラウザのAPIでハードウェアを直接コントロール
      API
      WebUSB USBデバイスを制御
      Web Blueooth Bluetooth, BLE 接続してデバイスを制御
  3. 2020年小学校でプログラミング必修化
    次期小学校学習指導要領にプログラミングの学習について記載されたが,その本質は狭い意味でのプログラミング(言語)の学習ではなくCS(コンピュータサイエンス)の基礎を学習することにあると読める。それに引き続く中学〜高校でのCSの学習も同様でプログラミング言語習得を目指すものではない。
    ここで構築する環境は関数,条件分岐,変数といったコンピュータをプログラムして利用するための必須の基礎概念を把握し具体的に確かめるためツールとして利用できるものを掲載した。…とは言っても学習者の達成感を満足させるためには何らかのプロジェクトを完成稼働させることが必要であり,Webとセンサーなどの物理デバイスが連動するサービス(所謂IoT)のようなプロジェクトまで対応できるプログラミング言語とその開発環境を用意した。
  4. Chromeブラウザ配下だけで収まらない場合
    IoTプロジェクトではパソコン自体にNode.jsのようなWebアプリケーション実行環境のインストールが必要でChromeブラウザ配下だけには収まらない。
    このようなときは、その実行環境を構築したRaspberry Pi を用意しChromeブラウザ配下のVNCビューアやSSHクライアントから遠隔制御すれば解決できる。
    また、Raspberry Pi を常用すれば前述のクラウド・ワークスペースCodenvy.ioを利用しないで各種プログラミング言語の演習環境を得ることができる。
  5. IoTプロジェクト
    「センサー」→「Arduino」→「Raspberry Pi」Webアプリケーション を考えた場合,Arduinoのプログラム開発とWebアプリのプログラム開発の2本立てとなる。生徒さん複数人のプロジェクトでArduinoプログラミングとWebアプリプログラミングの役割分担すればできないこともないが,課題プロジェクトを総合的なCS知識の獲得を目指すモノとすれば課題解決に向けた分業は学習としてはあまり望ましいものではない。
    このような場合は,例えばNode.jsとJohnny-fiveを用いJohnny-fiveでハードウェアをソフトウェアモジュールとして隠蔽すればNode.js(Javascript)1本だけで対応できる。
    また,WebUSB,WebBluetooth API を利用すればNode.js等の環境不要でchromeブラウザからハードウェアを制御できる。
  6. 結果
    この「Chromeブラウザしばり」の環境は授業用途として十分に利用できるものと確信する。この環境をどう使うかは授業プラン次第。はじめてのコンピュータサイエンスを一通りやってみると自前の授業プランを考えるとき大いに参考になると思う。

Follow me!