学術情報基盤 オープンフォーラム２０１９
クラウド活用最新事例

クラウドとJupyter Notebookを使ったプログラミング教育
2019年5月29日
室蘭工業大学
桑田喜隆

概要
1.
2.
3.
4.
5.
6.
7.

はじめに
プログラミング教育に関する仮説
クラウドを利用したプログラミング環境
Jupyter Notebookとは
評価実験
考察
まとめと今後の課題

Copyright(C) 2019 by Yoshitaka Kuwata2

1. はじめに1. プログラミング教育が注目される• 新学習指導要領（情報教育・ICT活用教育関係）２０１７• 小・中・高等学校共通のポイント• 情報活用能力＝学習の基盤となる資質・能力• プログラミング的思考

2. 現状（工学系大学）• プログラミング未経験者• ２割程度が「苦手」• 専門科目の履修に必要なコースもあるが、言語はバラバラ

3. 課題

大学の一般教養として何を身につけるべきか？

Copyright(C) 2019 by Yoshitaka Kuwata

3情報教育の強化• 2019年度より工学部から理工学部へ改組

室蘭工業大学では、大学が改組され、2019年度より理工学部全学科でプログラミングが必修科目となる。
Copyright(C) 2019 by Yoshitaka Kuwata

4プログラミング入門(2019後期開講予定）• シラバス
対象学年
授業科目区分
必修・選択
授業方法
単位数

１年
学科共通科目
必修
講義、演習
2

到達度目標

本講義では、全コースの学生を対象に、プログラミングに必要な概念を理解し、基礎的なプログラムを作成することができるようになることを目標とする。
Copyright(C) 2019 by Yoshitaka Kuwata5

2. 演習をめぐる仮説【仮説１】座学＋演習で学生の理解度が向上する
演習中の試行錯誤でプログラミングに関する理解が進み，知識が深まる．

【仮説２】演習が進むほど学生の理解度が低下する
概念を理解しないまま次の演習に進んでしまい，次の演習ではますます分からなくなるリスクがある．

【仮説３】理解度に応じた助言で，理解度低下を防げる
学生の理解度を把握し適切な助言や指導を行うことが重要であると考える．
Copyright(C) 2019 by Yoshitaka Kuwata6

3. クラウドを利用したプログラミング環
境②学習支援シス
テムと連携させる

LMS(Moodle)

Jupyter Notebook
演習環境--------①授業にあわせてクラウド上にプログラミング環境を用意

SINET/インターネット
キャンパスネットワーク

教員
学生

学生
学生
Copyright(C) 2019 by Yoshitaka Kuwata

7

CoursewareHubの活用
アカウントで認証許可された「コース」を利用

Web ブラウザ経由で手軽に受講講師がセットアップしたアプ
リケーション・教材をすぐに利用可能

受講生 A

受講生 B

各々の受講者用 Jupyter環境
演習結果

•••

教材
アプリケーション

アプリケーション

アプリケーション

Jupyter Notebook で教材作成
教材で利用するアプリケーション等も自由にインストール

教材

動作確認 も…
演習の進捗状況を確認

教材作成用 Jupyter環境
アプリケーション

演習・課題結果を収集

講師 A

JupyterHub(OSS)をベースとして、NIIが教材共有・アプリケーション配信部分を拡張

CoursewareHub

長久 勝、政谷 好伸,合田 憲人, 「Notebookによる講義・演習環境の開発」
IPSJ 研究報告 教育学習支援情報システム（CLE）,2019年3月13日より引用
Copyright(C) 2019 by Yoshitaka Kuwata

8従来の演習環境• 学生の演習用PCの状況（進捗状況やエラーなど）は分からなかった。
学生

演習用PC
ダウンロード

LMS

教員

演習課題

出題

演習課題

質問

助言
課題を使った
演習

提出版課題
課題提出

時間

採点

アップロードCopyright(C) 2019 by Yoshitaka Kuwata

9提案する演習環境• 演習環境を一元管理することで、状況のモニタリングが可能になる。
学生

演習環境
Jupyter Notebook

LMS

教員
出題

演習課題

質問

課題を使った
演習モニタ
リン
グ

助言

提出版課題

採点
時間
Copyright(C) 2019 by Yoshitaka Kuwata10

4. Jupyter NotebookとはWebベースの対話的な計算機環境
科学技術計算やデータ解析，データの可視化で利用が広がっている．
【特徴】• ブラウザから計算を行う• Python, R, Julia, Scalaなど複数の言語処理系がサポートされている• プログラムを作らなくても，大規模計算や機械学習などのライブラリを利用して計算をえる．
• 結果の可視化• 説明をマークアップ言語で記述• グラフや画像イメージ，ビデオなどをWebページ上にインラインで挿入する• 計算結果を直感的に理解しやすい形式で記録することが可能である．

• 作成したコンテンツ(Notebook)は，さまざまな形式で公開し，第三者と共有可能である．
Copyright(C) 2019 by Yoshitaka Kuwata

11

Jupyter Notebookの画面例

説明用（マークダウンセル)

プログラム、式(コードセル)
Copyright(C) 2019 by Yoshitaka Kuwata

12

Jupyter Notebookを使った教材の構成
1.

説明（マークダウンセル）• 演習内容やその前提知識の説明を，マークダウンセルに記述する．
• 学生の理解補助のため，数式や図を併用する．

2.

例題（記述済みのコードセル）• 例題として，記述済みのコードを含むセルを用意する．
• 学生はコードをその場で実行して，結果を確かめることができる．
• 故意にエラーの出るコードを用意しておき，学生に原因を考えさせる応用も考えられる．

3.

穴埋め問題（部分記述済みのコードセル）• コードの一部のみを記述しておき，未記入の部分を学生が記述することでプログラムを完成する．
• 複数のステップ（セル）に分割してコードを作成する．

4.

自由回答（未記入のコードセル）• 自由にコードを書けるように，未記入のセルを用意する．
• これまでの説明を理解したかどうかを確認するために利用すると効果的である．
• 単元ごとに設ける提出課題は未記入のコードセルを利用する．
Copyright(C) 2019 by Yoshitaka Kuwata

13

5. 評価実験【位置付け】
・本格評価の前の事前評価【目的】• Jupyter Notebookの有効性評価• 提案手法の有効性評価• 教材の評価

Copyright(C) 2019 by Yoshitaka Kuwata

14

実験に利用した環境
ソフトウェア項目

名称 （バージョン）

演習環境

Jupyter Notebook (4.4.0)

言語処理系

Python (3.6.7)

主なJupyter
Notebookの拡張機能

用途

JupyterHub (0.9.4)

複数ユーザの管理

Jupyter-LC_wrapper(Dec 28, 2018)

セル評価の記録

Jupyter-LC_nblineage(Mar 17, 2018)

セルのID管理

Jupyter-multi_outputs(Oct 16, 2018)

複数出力結果の管理

Jupyter-LC_run_through(Jun 15, 2018)

一括実行の管理

Copyright(C) 2019 by Yoshitaka Kuwata

15

試行実験の概要
項目
課題
対象言語
被験者
実施方法

分析対象データ
集計項目

設定
プログラミング入門の課題(課題1-課題3)
Pythonプログラミングに関する知識を持つ
教員 (User02-User05)
ブラウザ経由で演習課題へ回答
途中の質問や説明はなし
各自ばらばらに実施

数
３回分

セルの評価ログ，出力結果完了後の課題ファイル
セルの評価時刻および回数
セルの評価結果 (エラー有無)
演習課題の回答−

Copyright(C) 2019 by Yoshitaka Kuwata

−
４名−−

16

実験に利用した課題の概要
番号

表題

Codeセル数

課題１

イントロダクション

28

課題２

プログラムの構造23

課題３

リストと繰り返し30

Copyright(C) 2019 by Yoshitaka Kuwata

17

課題の例

Copyright(C) 2019 by Yoshitaka Kuwata18

結果の概要（課題１）
利用者

評価回数

回答セル数

回答率

エラー

User02

34

2796%

2

User03

48

2693%

14

User043628100%

2

User053228100%

1• 評価数に極端な偏りはないものの、２割程度のばらつきがある。
• 回答率（セルのカバレッジ）は１００％になっていないCopyright(C) 2019 by Yoshitaka Kuwata

19

Codeセルの実行回数とエラー数（課題１）「まとめ演習課題」のため、何度か確認と再実行が必
要なセル
セルの並び試行錯誤が必要なセル
正常実行
エラー
Copyright(C) 2019 by Yoshitaka Kuwata20

利用者ごとのCodeセルの評価履歴（課題１）「まとめ演習課題」のため、何度か確認と再実行が必
要なセル

試行錯誤が必要なセル

Copyright(C) 2019 by Yoshitaka Kuwata21

6. 考察１：フィードバックの例
ケース想定される原因

授業内対応

授業後対応

特定のセルを• 該当部分が理 • 全員への該繰り返して評価 解できずに試当箇所の補行錯誤している 足説明• 個別指導• 理解できずに先に進めないエラーが多い

教材該当箇所の改善（説明追加）

セル評価の間隔が長い

教材該当箇所の改善（問題分割など）

想定より進捗が遅い

分量が多い•残り部分を宿題とする•個別指導Copyright(C) 2019 by Yoshitaka Kuwata

教材量の見直し22

考察２：利用者ごとのCodeセルの評価履歴（課題２）

あるセルから、進捗していな
い

教材に問題がある
Copyright(C) 2019 by Yoshitaka Kuwata23

7. まとめと今後の課題【まとめ】• Jupyter Notebookによるプログラミング演習の提案• Courceware Hubなどのクラウド環境の活用• Jupyter Notebookを使った演習教材の予備実験の解析→課題自体の問題点を発見する手法としても有効．
【今後の課題】• プログラミングの知識を持たない学生による試行• 大規模授業の際の支援方法の確立
本研究はJSPS科研費 (JP18K11561)の「クラウドを活用したプログラミング演習環境に関する研究」の助成を受けたものである
Copyright(C) 2019 by Yoshitaka Kuwata24