共通教育における教養科目としてのプログラミング入門
石黒 克也, 佐々木 正人, 佐々 浩司
高知大学 学術情報基盤図書館
ishiguro@kochi-u.ac.jp

Introduction to programming as liberal arts subject in common education
Katsuya Ishiguro , Masato Sasaki , Koji Sassa
Library and Information Technology, Kochi Univ.

概要
高知大学の共通教育では、2018 年度より Scratch を用いた「初等プログラミング入門」を開講している。主な受講対象者はプログラミング経験のない学生とし、プログラミングの基本的な考え方を身につけること、およびプログラミングに対する苦手意識を弱め、興味を持たせることが目的である。本稿ではその実践内容を報告する。

1

ベルの数理・データサイエンス・AI を習得」する

はじめにことが必修化されることを考慮すると、この情報「Society5.0」、「第 4 次産業革命」などをキーワ

処理の枠組みの中でプログラミングや AI などのードとして、2016 年には初等中等教育におけるプ事柄に触れられる機会を作るのがひとつの方法だ

ログラミング教育の必修化が決定された[1]。小学と考えられるが、授業時間や教員の確保等の問題

校は 2020 年、中学校は 2021 年、高等学校では 2022があり、進んでいないのが現状である。一方、情年から新しい学習指導要領が実施される。また、

報処理の授業アンケート結果によると、学生の中2017 年には初等中等教育におけるプログラミングには初歩的なプログラミングを学びたいという潜教育等の IT・データ教育の実装[2]も閣議決定され在的な需要が存在している。このことを踏まえ、ている。最近では“デジタル社会の「読み・書き・「初等プログラミング入門」は共通教育情報処理そろばん」である「数理・データサイエンス・AI」に続くプログラミング未経験者向けの授業と位置の基礎などの必要な力を全ての国民が育み、あら付け開講されている。特に本授業は共通教育の教ゆる分野で人材が活躍“することを目標として、養科目に分類されており、プログラミングを専門大学・高専での「初級レベルの数理・データサイ的に学ぶ準備というよりは、プログラミングとはエンス・AI の習得」を必修化する取り組みが開始

どのようなものであるのかを広く浅く学ぶことをされている[3]。

主眼としている。

高知大学（以下、本学と記す。）も多分に漏れ2016 年度および 2017 年度の授業では、プログ

ずこれらの取り組みに大きな影響を受けており、ラミング言語として入門用言語である「Sunaba」

データサイエンスや AI に関する新たなカリキュ[4]を用いた[5]。プログラミングの考え方を学ぶにラムの作成が現在検討されている。プログラミン

は「Sunaba」でも特に問題はないが、入門用に特グ教育については、2016 年度より共通教育の教養化した言語であるため、プログラミングの世界が科目として「初等プログラミング入門」が開講さその中で閉じてしまいがちである。プログラミン

れている。本学では、全 1 年生に対して第 1 学期

グを学ぶためには他のシステムとの連携などを考に共通教育で情報処理の授業を必修化しており、えることも有効であり、また本授業は教員志望のそこでは主に大学での PC の利用方法（ネットワ

学生も受講することから、初等中等教育の授業等ーク接続、メールなど）、情報セキュリティ、情報で使うことのできる知識や技術を身に付けること

倫理、ワード、エクセル、パワーポイントなどのも大事になってくる。それらを考慮して、2018 年

一般的な使い方が教えられている。今後「初級レ度からは教材として Scratch[6]を使用している。
Scratch を選択した理由は、文法を知らなくても直107

感的に使うことのできるビジュアルプログラミン

第8回

場合分け

グ言語であること、Web アプリケーションとなっ第9回

ゲーム作成 1ているため特別な環境構築が必要なく、使用者の第 10 回

定義、引数OS 等の環境に依存せず利用可能なこと、コンパイ

第 11 回

探索アルゴリズム

ル作業が必要なくすぐに動作確認できること、作第 12 回

並べ替えアルゴリズム成したプログラムと実際の動作の対応がわかりや

第 13 回クローン機能すく、プログラムのミスを見つけやすいこと、な第 14 回

ゲーム作成 2どである。受講生が目指す授業目標には、①プロ

第 15 回

まとめ

グラミングの概念を理解する、②基本のアルゴリ

表1

授業内容（2018 年度）

ズムを理解する、③Scratch でプログラミングできるようになる、の 3 つを掲げた。

授業では最初に学生の PC 環境を確認し、それ本稿では、2018 年度からの 2 年間、「初等プロぞれが利用するブラウザで動作確認を行う。そのグラミング入門」で実施した内容、アンケート結後の授業では、Scratch の基本事項（スプライトや果等を基に、共通教育におけるプログラミング入スクリプト、ブロックなどの単語や画面構成など）

門講義についての実践報告を行う。の説明を行い、プログラミングでよく使う機能や2文法を徐々に覚えられるよう進行した。また、授Scratch 1 年目（2018 年度）

業では毎回課題を与え、それを指定した期日（多Scratch を用いたプログラミング入門の初年度は、くの場合翌週はじめ）までに提出させ、翌週の授Scratch2.0 を用いて行った。

業時に回答例を示して前回の復習を行った。授業

2.1 実践

時間 90 分のうち、初めの 3 分の 1 から 2 分の 1 を2018 年度第 1 学期木曜 2 限に行った授業では、前回の復習やその回に学ぶ内容の説明にあて、残履修者は 43 名（学部別内訳は医学 21 名、人文社りの時間を各自で課題に取り組む時間配分とした。

会科学 14 名、理工 8 名）であった。授業で用いた

この授業では Teaching Assistant（TA）が付かない

Learning Management System（LMS）は本学独自のため、質問がある場合には課題に取り組む時間にシステムである。授業では、まず LMS に事前に資個別に対応した。

料を載せ、やる気のある学生は反転授業が可能な2.2 成績評価状態としておく。LMS には資料と同時にサンプ

授業の成績については、毎回の提出課題、出席ルプログラムも載せ、当日行うプログラミングの状況、3 つの目標を達成できたか、および最終課

うち、途中までが準備された状態から変更や機能

題（Scratch のチュートリアルから 2 つを選択し、の追加などを行うことにより、基本的な事柄を身につけていく。そして、最後に作成したプログラ
ムを提出するというのが標準的な授業の流れであ独自の工夫を凝らす）などから判定した。提出された課題をすべて動作確認するのは骨の折れる作る。前年度までの授業では部分的にグループワー業であるが、授業についていけない学生がいないクを取り入れたが、今回はサンプルプログラムをかどうか確認するためには重要である。

準備したこともあり、プログラミング方法がまっ

2.3 アンケート調査

たくわからないという声も聞かれなかったため、2018 年度の授業ではグループワークを行わなかっ

本授業では、第 1 回と第 15 回の授業においてアンケートを実施した。
第 1 回目に行ったのは、受講生のこれまでのプた。授業で行った内容を表 1 に示す。
第1回

Scratch の使い方

ログラミングに関する経験や環境についての調査

第2回

画面構成、座標など基本事項である（回答数 38）。図 1 は受講生の「これまで第3回乱数のプログラミング経験について」である。本授業

第4回

メッセージ送受信はプログラミング未経験者向けとシラバスでも謳

第5回

変数っているが、受講生のうち 4 分の 1 ほどが C 言語

第6回

リスト（配列）や Scratch などを使ったことがあると回答してい第7回

アルゴリズム 1る。

108

方がある程度身に付いたと感じているようであった。これは 15 回の授業を通して Scratch の基本操作を一通り網羅し、簡単なゲーム作成などをできるようになったことで、Scratch を使いこなせる自信がついた表れであると考えられる。

図 1

これまでのプログラミング経験について（2018 年度）
「これまでに Scratch のことを知っていましたか？」との問いに対する回答結果が図 2 である。
近年プログラミング教育が注目されるようになっ

図3てから、Scratch の知名度も随分上がったのではとで用いるのに適当だと思いますか？（2018 年度）

Scratch は初等プログラミング入門の授業予想していたが、回答者のうち約 8 割が Scratch について聞いたこともないとの結果であった。プロ
グラミング教育が注目されているとはいえ、現在大学に在籍している学生にとってプログラミングはまだまだ浸透していないことの一つの表れであろうと考えられる。

図 4

プログラミングの考え方が身についたと思いますか？（2018 年度）
またプログラミングの授業について、「もし初等プログラミング入門の次のステップの授業があれば図2Scratch を知っていましたか？（2018 年度）受講してみたいと思いますか？」との問いに対しては、6 割以上の受講生が次のステップを学びた

第 15 回目に実施したアンケートでは、Scratch をいと回答した。これより、Scratch を使った授業は使ってみた印象や今後の授業に関する要望などにプログラミング未経験者に対して、プログラミンついて調査を行った（回答数 35）。
「Scratch は初等グに興味を持たせるという役割を一定程度果たせプログラミング入門の授業で用いるのに適当だとたものと考えられる。

思いますか？」との問いに対する回答結果が図 3である。9 割以上の受講生が Scratch について肯定

3 Scratch 2 年目（2019 年度）的な印象を受けたようであるが、これは操作が簡Scratch を用いた 2 年目の授業では、Scratch3.0

単であり、ブロック単位でプログラミングするたを用いた。これは、2019 年 1 月に Web 版の Scratch

め構造がわかりやすく、またプログラムの部分とのバージョンが 3.0 に変更されたためである。こ

実際の動作との対応が付きやすい、といったことの変更により、画面構成やブロック等の見た目がが主要因と考えられる。また、「本授業を受ける前変わり、またファイル拡張子が「.sb2」から「.sb3」と比べて、プログラミングの考え方が身についた変更された。このため、前年度作成した授業スラと思いますか？」という問いに対する回答が図 4

イド等を全て一新し、授業を行った。

である。ごく一部を除き、プログラミングの考え

109

3.1 実践ックを表 3 にまとめておく。

Scratch で学ぶ内容は基本的に前年度と同様で

重量約 80 g

あるが、前年の経験を踏まえてよりわかりやす

最大飛行距離100 m

くなるよう、スライド等のブラッシュアップを最大速度8 m/s行った。

最大飛行高度30 m

2019 年度は他の授業との兼ね合いで第 1 学期

最大飛行時間13 分

木曜 3 限に開講することになったが、履修者は写真・動画撮影可能

表391 名（学部別内訳は医学 41 名、理工 38 名、人Tello Edu の主なスペック

文社会科学 5 名、その他の教育、農林海洋科学、地域協働などが 7 名）となり、2018 年度の 2 倍プログラミング入門の授業においてドローンプ以上の履修者数であった。前年度に比べると医ログラミングを導入した理由は、プログラミング学部および理工学部の受講者数が大きく増えて未経験者にとって、プログラミングにより何かをいるが、これは開講時限が変わったことにより物理的に動作させる経験は、プログラミングに対専門科目との時間調整ができたものが多くいたするイメージをより明確にすることに役立つであことが原因と考えられる。LMS には高知大学ろうと考えてのことである。また、「Tello Edu」がmoodle を用いて、資料配布や授業アナウンス、Scratch（および Python、Swift）によるプログラミ

課題提出などを行えるようにした。また授業中にキーワードを表示し、それを入力することにより出席をとることのできる moodle の出席機
能を利用した。表 2 が各回で行った内容である。

ングを公式にサポートしていることも大きな理由である。
Windows から Scratch を用いて Tello のプログラ
ミングを行う際には次のものを準備する必要がある。

第 1 回目

Scratch の使い方

第 2 回目

画面構成、座標など基本事項

第 3 回目乱数

第 4 回目

メッセージ送受信

これまでの Scratch のみで完結していたプログラ

第 5 回目変数

ミング環境と異なり、いくつかのソフトウェアを第 6 回目

リスト（配列）組み合わせて利用する環境は未経験者にとって困第 7 回目

アルゴリズム 1

難に感じるところがあるため、この課題ではグル

第 8 回目場合分けープワークを取り入れ、グループ課題とすること

第 9 回目

ゲーム作成 1にした。グループワーク用のシステム には、

第 10 回目定義、引数

Microsoft 社 の Microsoft Teams を 利 用 し た 。

第 11 回目

クローン機能Microsoft Teams はチャットベースのコミュニケー

第 12 回目

ゲーム作成 2

ションツールであり、チャットはもちろんのこと、

第 13 回目

ドローンプログラミング 1

ファイルのアップロードやダウンロード、OneNote

第 14 回目

ドローンプログラミング 2

ベースのノートブックの共有、Wiki 作成などを

第 15 回目

ドローンプログラミング 3

Web アプリケーションまたはデスクトップアプリ

表2・Scratch2.0 オフラインエディタ

・・Nodo.js
Tello.js, Tello.s2e (Tello 公式サイトより)やスマートフォンアプリから利用可能なものであ

授業内容（2019 年度）る。本学では Microsoft 社の Office365 を導入して前年同様の内容＋αとなっており、前年度とのおり、学生は全員 Microsoft Teams を使える状態に大きな違いは最後の 3 回で Scratch を使ったドローあること、利用している PC の OS に依存しないこンプログラミングを実施したことである。ドローとなどが本ツールを選定した理由である。グルーンプログラミングには Ryze Technology 社のトイプワークでは 1 つのグループに 5～6 人を割り当て、ドローン「Tello Edu」を用いた。Ryze Technology受講生を 18 グループに振り分けた。Microsoft社からは一般向けの「Tello」が販売されているが、Teams にはチームやチャネルといった概念があり、「Tello Edu」はその教育用製品である。主なスペグループを作成する場合には各グループをチーム110

に分けるのか、それとも一つのチーム内でチャネ重量の軽い Tello にとっては過酷な状況であり、想ルに分けるのかなど、様々な方法が考えられる。

定していた飛行ルートからのずれが発生するケー

また、チームを作成する場合にも「クラス」を選スなども見られた。今回はグループ数に対して準択するのかあるいは「一般」を選択するのかによ

備できたドローンの数が少なく、事前テストが不り、ファイル等へのアクセス権の設定が異なり、十分なグループもあったため、次回以降は十分な自由にカスタマイズすることは難しい。今回は教数の機器を準備する必要性を感じた。

員から見た管理のしやすさ、および学生から見た自由度の高さを考慮して、すべてのグループを 1つの「一般」チームの下にチャネルとして作成した。つまり、「プログラミング入門 2019」といったチームを作り、その中にグループごとに 18 のチ
ャネルを作成し、学生はチャネル内で議論を行うようにした。このようにすることにより、教員は
一 つ の チ ー ム の み 管 理 す れ ば よ く 、 Microsoft
Teams 内でのアナウンスも 1 回で済む。また学生は自由にファイルを作成し、Office アプリ等の他のアプリケーションとの連携を行うことや、他のグループの議論を参考にすることなどが可能となる。
終盤 3 回の授業では、最初に受講生をグループに分け、Microsoft Teams の利用方法を説明したの
ち、Tello プログラミングに取り組んだ。具体的には、まず前述したように PC から Tello をプログラミングするための環境構築が必要となるため、各グループで最低 1 名は環境を構築する係を決めて作業を行った。一通り環境を構築したのち、Scratchを用いて簡単なプログラミングを行い、Tello との接続テストを実施した。接続テストができたグループはさらに複雑な動作テストを行い、グループワークの 3 回目では作成したプログラムを用いてグループ発表を行った。グループ発表では、作成したプログラムの説明および Tello の実操作などを行った。図 6 はグループワークで作成したプログラムの一例である。グループ発表では限られた時間内で 18 のグループが Tello に接続し、プレゼンテーションおよび飛行実演を行わなければならない。そのため、それぞれのグループがタイミングを合わせて進行する必要があるが、実際には発表の準備が間に合っていないグループが存在するなどして、時間を超過してしまった。また、PC から Tello への接続についても、一度接続した後である程度時間が経ってしまうと接続が切れ、一からつなぎ直しになるケースや、連続使用で Tello が熱を持ってしまい一時的に動作不良となってしまうケースなどが発生した。さらに空調の効いた教室内での飛行実演は、見ている分には快適であるが、

111

図6

ドローンプログラミング例

3.2 成績評価
授業の成績は、毎回の提出課題、出席状況、グループワーク（Microsoft Teams への参加状況、グループ発表、グループ提出課題）、最終課題（Scratch の Web サイトにある「入門者用プロジェクト」から 1 つを選び、各自でカスタマイズ）などの実施状況から総合的に判断して評価を行った。
前年度同様、毎週提出される課題の動作確認は非常に時間のかかる作業であり、特に今回のように人数が大幅に増えてしまうと採点の時間を確保するのも大変な状況になってくる。そのため、大人数授業におけるプログラミングの評価をどのように効率的に行うのかを検討していくことは今後の課題である。
3.3 アンケート調査
2019 年度の授業でも引き続きアンケート調査を実施した。行ったアンケートは、前年度同様の事
前調査および最終アンケートに加えて、グループワークに関するアンケートの 3 つである。事前調査（回答数 77）での「これまでのプログラミングの経験について」に対する回答が図 7 である。2019年度の履修者には理工学部の情報系の学生も多く含まれていたが、プログラミング経験の有無に関する割合は前年度と同様の傾向であった。また、「Scratch のことを知っていましたか？」に対する回答が図 8 である。こちらについても前年度と同様の傾向である。

用いるのに適当だと思いますか？」と問いかけ、それに対する回答が図 10 である。9 割以上の学生から Scratch に対する肯定的な意見が得られた。

図 7

これまでのプログラミング経験について（2019 年度）
図 10

Scratch は初等プログラミング入門の授業で用いるのに適当だと思いますか？（2019 年度）
またグループワークに使用した Microsoft Teams について、「Microsoft Teams はグループワークを行う有効なツールとなりそうでしょうか？」との問い対する回答が図 11 である。今回は使用したのが終盤の 3 回のみであったこと、様々な理由から幾つかのグループでグループ活動そのものに支障が出
図8

Scratch を知っていましたか？（2019 年度）たことなどから、否定的な意見も見られた。これ
らについては、授業の前半からグループワークを授業の終盤ではグループワークに対する意識調取り入れることや、スマホアプリの利用方法を指査も行った（回答数 57）。
「プログラミングの授業導することなどにより、ある程度カバーできるもでグループワークを行うことについてどう思いまのと推察される。

すか？」という問いに対する回答状況が図 9 である。一昨年度に行った同様の調査[5]では否定的な意見が多くみられたが、今回は肯定的な意見が半数以上見られた。これはグループワークを実際に行う前の意識調査であるが、年々グループワークに慣れたものが多くなり、否定的あるいは苦手意識を持つ学生が減少しているように思われる。

図 11

Microsoft Teams はグループワークを行う有効なツールと思いますか？（2019 年度）
さらにグループ課題として用いたドローン（Tello）について、「プログラミング入門の題材として、Tello は有効だと思いますか？」との問いに対しては図 12 のような回答が得られた。実際に操作した
図 9

プログラミングの授業でグループワークを学生の多くは、こちらの狙い通りにプログラミン行うことについてどう思いますか？（2019 年度）

グの具体的なイメージがつかめたとの感想を持っていたが、ドローンの操作をグループワークとし最終アンケート（回答数 42）では 2018 年度同たため、実作業を行っていない学生もおり、よく様に「Scratch は初等プログラミング入門の授業でわからないという意見がある程度の割合を占めた112

ようである。

により、簡単なアルゴリズムの実装やゲーム作成などができるようなカリキュラムを構築した。変更 2 年目の 2019 年には Web 上の Scratch のバージ
ョンが 2.0 から 3.0 へと変更されたこともあり、2018 年度に作成した教材を再作成するとともに、内容のブラッシュアップを図った。また、Microsoft
Teams を使ったグループワークを取り入れることにより、受講生同士での情報交換の場を作り授業時間外での学習を促した。グループワークの課題

図 12

プログラミング入門の題材として、Telloは有効だと思いますか？（2019 年度）には Scratch を用いたドローン（Tello）プログラミングを採用し、プログラミングと実生活の関わりをよりイメージしやすくなるよう工夫した。

図 13 は「本授業を受ける前と比べて、プログラミングの考え方が身についたと思いますか？」との問いに対する回答である。前年度同様に一部を除き、プログラミングの考え方が身に付いたと考えているようである。

プログラミング教材として Scratch を用いたことは受講生からも概ね肯定的に受け止められている。操作の容易さや、プログラムと実行画面との対応のわかりやすさなどが、プログラミングの未経験者には好評であった。また、最初は子供用の言語なのでたいしたことはできないと考えていたプログラミング経験者にとっても、ゲーム作成やドローンプログラミングを行うことにより、プログラミングの拡がりを感じられたようである。近年のバージョンアップにより、Scratch には様々な拡張機能が追加されており、それらをうまく利用することで、より学生の理解を深める授業を展開できるのではないかと想像している。
「初等プログラミング入門」は来年度以降も開本授業を受ける前と比べて、プログラミ講される予定であるが、前述したように本学でもングの考え方が身についたと思いますか？（2018データサイエンスや AI に取り組むことが検討さ年度）れており、今後はそれらも踏まえた授業構成を検図 13討していかなければならない。
プログラミングの授業について、「もし初等プログラミング入門の次のステップの授業があれば受講してみたいと思いますか？」との問いに対しては、前年度同様に 6 割以上の受講生が次のステップを学びたいと回答している。

4 おわりに
本稿では、本学で行った共通教育におけるプログラミング入門の実践内容を報告した。
2016 年 の 開 講 当 初 は プ ロ グ ラ ミ ン グ 言 語「Sunaba」を使って授業を展開していたが、本授業が共通教育教養科目であることを意識して、2018 年度より「Scratch」を使った授業への変更を行った。変更初年度の 2018 年は主に授業の基礎的な内容を組み立てることに時間を費やし、15 回の授業で Scratch の基本機能を一通り網羅すること

113

参考文献
[1] 日本再興戦略 2016、
http://www.kantei.go.jp/jp/singi/keizaisaisei/pdf/2016_zentaihombun.pdf、（2019 年 9 月 20 日閲覧）
[2] 未来投資戦略 2017、http://www.kantei.go.jp/jp/singi/keizaisaisei/pdf/mirait
ousi2017.pdf、（2019 年 9 月 20 日閲覧）
[3] 総合科学技術・イノベーション会議（第４３回）
https://www8.cao.go.jp/cstp/siryo/haihui043/hai
hu-043.html、（2019 年 9 月 20 日閲覧）
[4] Sunaba, https://hirasho.github.io/Sunaba/、 （2019年 9 月 20 日閲覧）
[5] 石黒克也、佐々木正人、佐々浩司、“共通教育におけるプログラミング入門講義”、2017 年度大学 ICT 推進協議会年次大会論文集、WA2-1 (2018)[6] Scratch、https://scratch.mit.edu/（2019 年 9月 20 日閲覧）