今回は具体的に授業の中でどのような取り組みを実施したかについてを説明していきたいと思います。情報教育シンポジウムで、お会いした松澤先生は、これまでにも初学者向けのプログラミング教育の支援手法に関して、様々な取り組みをされていらっしゃる先生です。非常に興味深い論文を多く執筆されておりますので、オンラインプログラミング学習領域にご興味のある方は、以下よりご覧ください。先生からお話をお伺いすると、現在担当をされているプログラミングの授業において、先生はすでに頭の中で「こんな演習問題をオンラインで出題したい」という構想はもたれていらっしゃったのですが、配信管理をするプラットフォーム選定を模索されていたので、trackのオンラインプログラミング問題を、採点機能付きで誰でも簡単に作成できるという、コンセプトに魅力を感じていただき、まずは教材をこのプラットフォームで作ってみましょうというところから話が発展しました。現在授業担当をされているプログラミングの授業において、一部の教材は独自システムによりオンライン化ができているものの汎用的に教材をオンライン化するのが難しい300人規模の受講者の習熟度や進捗度をその場で把握するのが難しい提出されたプログラムの採点に工数がかかってしまうというような、課題をもたれていらっしゃいました。きの演習でTAの工数を削減を実現しようという話になりました。trackでオリジナル問題を採点機能付きで実装できる仕組みについては、GitHubに公開しておりますので、もし試してみたい方はこちらからどうぞ。github.comDockerを用いてローカル環境で動作確認することができ、テンプレートを編集するだけで簡単にオンライン教材や演習を作成することができます。簡単なDOM操作ということで、内容自体はそこまで難しいものではないですが、対象となる方が文系も含む初学者がほとんどですので、初学者にもわかりやすく、かつ自動採点機能つきの問題を作成することで、大規模な授業でも効率よく受講者の進捗や習熟度を把握することが今回のミッションでした。松澤先生から特別にご許可もいただきましたので、授業で利用をした教材や問題を一部ご紹介させていただきます。授業で利用をした専用のプログラミング教材は、まず仕組みを理解するために解き進める体系化されている教材(ブック)習熟できているかを確認するための演習(チャレンジ)の2種類で構成されています。穴埋めで一つ一つ解き進める学習用ブック学習用ブックの画面まずは、HTMLのインプットフィールドとボタンを作成し、ボタンが押された際に、JavaScriptで書かれたプログラムを動かす、という一連の流れを穴埋め形式で実装をしながら解き進めていきます。一通りブックが解き終わったら、BMI計算アプリを作ろう勝率計算プログラムを作ろうといったアプリの実装を演習として実施します。今度は部分的な穴埋め形式ではなく、空のHTMLを与えて、これまでに習った内容を自分自身で記述し、プログラムを実行して動作を確認してみたり、問題で与えられている仕様を満たすプログラムが記述できているかをテストすることで、自分自身でプログラムを記述できるようになったかを確かめます。授業の様子こちらが実際の授業の風景です。このように、演習問題を早く解き終わった学生が他の学生をフォローをするような場面も見られました。演習問題の点数や解答内容をその場で確認しながらサポートをするという体制をとることができました。授業を受講した学生300人程度に、今回の取り組みに関して任意でアンケートを実施させていただきました。131名の有効解答を得た結果です。-13(理想は20以上)とやや低い結果となりました。定性的なフィードバックももらいましたので一部抜粋いたします。良いフィードバック学習に特化をしたUI/UXを提供し、自動採点を活用した演習問題を実施することにより、一人一人のペースに合わせた学習環境を提供し、わかりやすく、楽しい、というような意見をもらうことができました。わかりやすい最初からやってたらもう少し違ったかもしれない。初心者の人に対して考えると、部分的に関数を入力することで学ぶことができるのでわかりやすいと思う。ある程度経験している人に対して考えると、少し簡単すぎるような気がする。初心者にもわかりやすいと思ったから使いやすい、わかりやすい、レイアウトがいいとてもわかりやすかった。演習もテスト判定ができたのがよかった。プログラミングする画面と実行される画面が1画面にまとまっていて見やすかったです。比較的わかりやすく、じっくり学んでいけるので身に付きやすいと思ったから。楽しいクイズ形式で面白かった割と楽しい自分のペースで学べる自分のペースで進めやすいので、人によってはすごく熱中できそう先生が授業するときは自分にとってはペースが速く授業にもみんなについていけなかったけれど、今回のほうは自分のペースで一つ一つ理解しながらできるから、わからないまま授業が進ん行くことがないから悪かったフィードバック良いフィードバックもいただく反面、課題もたくさんみえてきました。穴埋めだと定着しづらい、演習だとつまづいた時に次に進めず、どこが間違っているかわからない、など、特にプログラミングに苦手意識を持っている人に対して、フォローをできるような仕掛けをより充実できると良いのではないかと感じました。間違っている箇所が特定づらい(デバッグしづらい)エディターが使いにくい。どこを間違えているのかをはっきりとしることができない。どこが間違っているかわからなかったテストでどこが間違えているかがわからなくて勉強しづらかったです。定着しづらい細かいセクションごとに学習できてわかりやすいが、穴埋めパートが簡単すぎて逆に覚えにくいかもしれない。難しくすることで身に付きやすくなるのでは、と思った。知識が定着しにくい穴埋め式だから、学びたい意識があっても、一つ一つの関数や仕組みの意味がわからないから。一人で学ぼうとしても、すべての疑問が解消できるとは思えないから。苦手な人はつまづいたら進めない途中で躓いてから進まなくなった得意不得意があり、苦手な人には説明が少なすぎる。できてる人に合わせすぎ頑張ったつもりだったがテストがうまくいかなかったから(おまけ)君の人生を変えてあげたい!そもそもプログラミングに興味が無いから。授業導入に至った経緯となる課題としてあげていた汎用的に教材をオンライン化するのが難しい300人規模の受講者の習熟度や進捗度をその場で把握するのが難しい提出されたプログラムの採点に工数がかかってしまうという管理者・先生の観点だと、オンライン化による受講環境の提供や、進捗度合いの把握、採点工数の削減という観点では、本来の目的をある一定達成できたのではないかと思います。一方で「プログラミングに習熟する」という受講者の立場や教育の真の目的に立ち返った際に、まだまだ初学者にとってまだまだハードルが高い観点が多かった印象があります。管理環境だけではなくて教材の中身や解答方法、躓いた時のアシスト方法などをもっと考慮していくことでより適切な学習環境を提供していくことが求められるのではないかと思います。具体的に今回の授業を通じて感じた初学者が躓きやすいポイントや、どのような学習環境の提供が必要かという考察は、また別のエントリーにてまとめていきたいと思います。最後に今回の授業導入に関しては、ある一定の手応えや期待効果を感じることはできたものの、学習効果を向上する上でのシステムとしてのUXの課題、管理者(先生やTAの方々)向けにも不足する機能もたくさん気づきを得ることができました。僕としては、trackを導入支援することに限らず、こういった事例を外部に発信していくことで、プログラミング教育関係者や、企業内における技術研修担当者の方に、是非参考にしていただければと思い、記事を書かせていただきました。推進していただき、外部への公開を快諾してくださいましたました松澤芳昭先生に厚く御礼を申し上げ、感謝の意を表します。おまけtrackでは、学校のプログラミング授業への無償導入や、授業・テストなどの受講データを活用した産学連携の共同研究など、情報教育分野への貢献活動を積極的に実施しておりますので、もしご興味のある先生がいらっしゃれば、ぜひお気軽にお声がけください。新田(@maximum_80)です。二人のエンジニア、どちらを採用しますか。~顧客を成功に導くカスタマーサ...新田です。月別アーカイブはてなブログをはじめよう!maximum80さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。