E5-2

プログラミング言語の文法習得のための自学自習支援システムの開発
Development of A Self-Study Support System
to Learn Grammar of Computer Programming Language†

林 康弘, ‡伊藤 巧也, ‡小幡 晃司, ‡永井 拓平, ‡山田 大樹, ‡小松川 浩†
Yasuhiro Hayashi, ‡Takuya Ito, ‡Koji Obata, ‡Takuhei Nagai, ‡Taiki Yamada, ‡Hiroshi Komatsugawa†
帝京平成大学地域医療学部†
Faculty of Community Health Care, Teikyo Heisei University‡
千歳科学技術大学総合光科学部‡
Faculty of Photonics Science, Chitose Institute of Science and Technology
Email: †yasuhiro.hayashi@thu.ac.jp,‡{cist.b214.t.ito, cist.b214.k.obata, cist.b214.t.nagai, cist.b214.t.yamada}@gmail.com,‡hiroshi@photon.chitose.ac.jp
あらまし：本研究では，コンピュータ・プログラミングの授業において学生に技能習得させる実習時間を確保するために，その授業の予習として学生に文法習得させる自学自習支援システムを開発している．本システムの設計は，これまでに我々がプログラミング科目において実施した反転授業により得られた履修学生の要望に基づき行われ，さらに，本システムの開発は，プロジェクト型学習の課題としてその反転授業を経験した学生らによって取り組まれている．今回，この取り組みの詳細を述べ，さらに，アクティブ・ラーニングが抱える知識と活動の乖離の解消について触れる．
キーワード：プログラミング教育，アクティブ・ラーニング，反転授業，自学自習，e ラーニング

1.

はじめに

近年，コンピュータ・プログラミングにおける一連のプロセス（深く物事を考えて，他者と協働しながらアイディアを実現する）が，学生の論理的思考力，判断力，コミュニケーション力の向上に役立つものとして注目されている．しかし，プログラミン
グ初学者にとってソースコードとしてアルゴリズムを表現することは難しく，このため，実習では，自ら手を動かせずに，教師や友達が書いたコードを書き写すだけの学生もいる．
我々は，従来のプログラミング実習の状況に問題意識を持ち，理工系学生を対象とした科目においてICT を活用した授業改善を重ねて，学生に予習を割り当て，授業ではアクティブ・ラーニング（深く考えさせたり，グループワークを行ったりする）に専念する反転授業を実践してきた[1, 2]．
この実践を通して，履修学生から次の要望を得た．
（1） 帰宅するまで間，電車の中などでスマートフ
ォンを使って勉強したい．
（2） 予習を行った際，自分がどれだけ内容を理解できたか，すぐに確認したい．
（3） 予習で分からない点があった場合，誰かに質問したい．
（4） 文法をもっと理解するために，簡単なプログラミングを授業以外でも行いたい．
また，履修学生の特性として，使用するデバイスについては，授業では PC 教室の PC を使用し，日常生活ではスマートフォンの利用頻度が高い．宿題の取り組みについては，放課後に大学で行う者，アルバイトを終えた深夜に自宅で行う者に大きく分けられる，ということが分かっている．

本研究では，コンピュータ・プログラミングの授業において学生に技能習得させる実習時間を確保するために，その授業の予習として学生に文法習得させる自学自習支援システムを開発している．本シス
テムの設計は，これまでに我々が実施したプログラミング科目の反転授業によって得られた履修学生の要望に基づき行われ，さらに，本システムの開発は，学部 2 年次にプログラミング科目の反転授業を経験した学生 4 人の学部 3 年次のプロジェクト型学習の学習目標として取り組まれている．今回，この取り組みの詳細を述べ，さらに，アクティブ・ラーニングが抱える知識と活動の乖離の解消について触れる．

2.

プログラミング言語の文法習得のための自学自習支援システムの開発

本システムは，学生によるプログラミング言語の文法習得のための自学自習支援を行う．本システムのコンテンツは，文法を説明する教科書，その内容確認のための演習問題から構成される．教科書と演習問題は教員によって作成される．学生は本システ
ムにログインした後に表示される画面にて，教師が記述した予習の説明を閲覧できる．本システムの教科書によりプログラミング言語の文法を学習でき，演習問題により学習した文法を確認できる．学習内
容は単元ごと（変数・条件・繰り返し・配列・関数など）に取り扱われている．演習問題は画像データとして管理されており，それらは，あらかじめ設定された順番か，ランダムに表示される．出題される演習問題の形式は記入問題または四択問題である．
学生の解答は，サーバに送られて正誤判定されたの後，学生にその結果と解説が表示される．現在，学― 363 ―教育システム情報学会 JSiSE2016
第41回全国大会 2016/8/29-8/31

生が本システムにより学習できるプログラミング言語は C と Java である．本システムは Web アプリケーションであり，学生は自宅の PC とスマートフォンを用いて本システムを利用できる．現時点で，本システムは履修学生の要望（1）と（2）に対応できる．さらに，本システムは，サーバ・アンド・クライアント構成として実装され，開発技術としてHTML5，CSS，JavaScript，PHP，PostgreSQL を利用している．システム構成・利用手順を図 1 に，本システムの演習問題の画面キャプチャを図 2 に示す．

図 1 システム構成・利用手順

4 人のアイディアを踏まえて実装されている．15 週
ある授業の内，前半の 2 週にて，システムおよびコンテンツの設計を，残りの期間および課外活動にて，それらの開発を行っている．

3.

アクティブ・ラーニングが抱える知識と活動の乖離の解消

教師が，アクティブ・ラーニングによる活動（技能習得）に授業時間を割り当てると，知識の伝達（文法習得）に使える時間は減る．一方で，アクティブ・ラーニングにより学生に深い学習を行わせるには，十分な知識の獲得が必要とされる．本システムはこの知識と活動の乖離を解消する一つの手法として位置付けられる反転授業の支援システムとして見なすことができる．今回，開発したシステムは学生側の要望に基づくが，実際の授業を考慮すると，それだけではなく，学生の学習履歴を詳しく分析することにより，支援システムがどのようなアクティブ・ラーニングの内容にすべきか，予習をしない，または，予習をしても知識習得が芳しくない学生に対する個別指導をどのようにすべきか，教師に示唆を与える機能も提供することが求められる．

4.

まとめと今後の課題本稿では，今年度より開発している自学自習支援システムについて述べた．本システムはコンピュー
タ・プログラミングの授業において学生に技能習得させる実習時間を確保するために，その授業の予習として学生に文法習得させるために利用される．本システムの設計は，これまでに我々がプログラミング科目において実施した反転授業により得られた履
修学生の要望に基づき行われ，さらに，本システムの開発は，プロジェクト型学習の課題としてその反転授業を経験した学生らによって取り組まれている．
今後，今年度秋学期のプログラミング科目に本システムを利用し，学生に知識習得をさせ，授業では技能習得のための実習時間を確保することを試みる．
謝辞
本研究は，科学研究費助成事業（基金）若手研究（B）（課題番号: 15K21315）の助成を受けて行われています．

参考文献
図 2 演習問題の画面キャプチャ
このシステム設計・開発は，昨年度，千歳科学技術大学の学部 2 年生を対象とするプログラミング科
目，「プログラミングスキル」と「オブジェクト指向型プログラミング」にて，実際に反転授業を経験した学生 4 人によって，今年度，学部 3 年生を対象とする「システムデザインプロジェクト C」のプロジ
ェクト型学習の課題として取り組まれている．シス
テムに必要な機能は，履修学生から出された要望と[1] 林 康弘, 深町 賢一, 小松川 浩: “e ラーニング利用による反転授業を取り入れたプログラミング教育の実践,”社団法人私立大学情報教育協会, ICT 利用による教育改善研究報告第 16 巻, pp.19-23, 2013 年 11 月.
[2] 林 康弘，深町 賢一，小松川 浩: "プログラミング教
育における反転授業の実践と評価，" 教育システム情報学会第 40 回全国大会，2015 年 9 月.
[3] 松下 佳代: “ディープ・アクティブラーニング,” 1 月
2015[4] Marton, F., Saljo, R.: “On qualitative differences inlearning: I Outcome and Process,“ British Journal ofEducation Psychology, 46, 4-11, 1976.

― 364 ―