共通教育におけるプログラミング未経験者向け入門講義
石黒 克也, 佐々木 正人, 遠藤 隆俊
高知大学 学術情報基盤図書館

ishiguro@kochi-u.ac.jp

Introductory lectures for inexperienced programmers in commoneducation
Katsuya Ishiguro, Masato Sasaki, Takatoshi Endo
Library and Information Technology, Kochi Univ.

概要
高知大学では、2016 年度よりプログラミング未経験者向けの入門講義「初等プログラミング入門」を共通教育において開講している。主な目的はプログラミングの基本的な考え方を身につけること、およびプログラミングに対する潜在的な苦手意識を弱め、興味を持たせることである。また一昨年度より開始されている、小中高におけるプログラミング学習を取り入れた新学習指導要領に基づく教育について知ってもらうことも目的の一つである。本稿
ではこれまでに「初等プログラミング入門」で実践してきた内容を報告し、今後の共通教育におけるプログラミング教育を検討する。

報処理の授業を必修化しており、そこでは主に大学で1 はじめにの PC の利用方法（ネットワーク接続、メールなど）、「Society5.0」、「第 4 次産業革命」などをキーワード

情報セキュリティ、情報倫理、ワード、エクセル、パとして、2016 年、初等中等教育におけるプログラミンワーポイントなどの一般的な使い方が教えられていグ教育の必修化が決定された [1]。2020 年の小学校 [2]る。今後「初級レベルの数理・データサイエンス・AIを皮切りに、プログラミング教育を取り入れた新学習を習得」することが必修化されることを考慮すると、指導要領の実施が順次開始され、中学校は 2021 年、高この情報処理の枠組みの中で、あるいはそれを拡張す等学校では 2022 年から実施されている。また、2017

ることにより、プログラミングや AI などの事柄に触年には初等中等教育におけるプログラミング教育等のれられる機会を作るのが必修化に対応するひとつの方

IT・データ教育の実装 [3] も閣議決定されている。近法だと考えられる。授業時間や教員の確保等の問題の年では デジタル社会の「読み・書き・そろばん」であため、すぐには対応できないのが現状であるが、2020

る「数理・データサイエンス・AI」の基礎などの必要

年度より情報処理の 2 回分を AI・データサイエンスな力を全ての国民が育み、あらゆる分野で人材が活躍教育に充てて実施している。

することを目標として、大学・高専での「初級レベルプログラミング教育については、2016 年度より共通の数理・データサイエンス・AI の習得」を必修化する教育の教養科目として「初等プログラミング入門」が取り組みが開始されている [4]。2022 年になってから開講されている。前述の情報処理の授業アンケート結も、政府はデジタルの力を活用した地方の社会課題解果によると、学生の中には初歩的なプログラミングを決のため「デジタル田園都市国家構想基本方針」を定学びたいという潜在的な需要が存在しており、それらめており [5]、構想実現に向けた取り組みに「デジタルを踏まえ、「初等プログラミング入門」は共通教育情報人材の育成・確保」を挙げ、その中の一つに「高等教処理に続くプログラミング未経験者向けの授業と位置育機関におけるデジタル人材の育成」を謳っている。

付け開講されている。特に本授業は共通教育の教養科

高知大学（以下、本学と記す。）も多分に漏れずこ目に分類されており、プログラミングを専門的に学ぶれらの取り組みに大きな影響を受けており、データサ準備というよりは、プログラミングとはどのようなもイエンスや AI に関する新たな授業が開始されている。のであるのかを広く浅く学ぶことを主眼としている。

本学では、全 1 年生に対して第 1 学期に共通教育で情2016 年度および 2017 年度の授業では、プログラミ

270

ング言語として入門用言語である「Sunaba」を用い

10. 一列に並んだ列を消す

た [6]。その後、初等中等教育においてプログラミン

11. 落下する四角形を 2 つにするグ教育が必修化されることが決まったことを考慮し12. 2 つの四角形を回転させるて、2018 年度からはプログラミング環境を Sunaba か13. 落下する四角形を 3 つに拡張する

ら「Scratch」 [7] に変更して実施している。これは、

14. 落下する四角形を 4 つに拡張する

Scratch がプログラミングの考え方を学ぶのに優れた

15. まとめ教材であること、またプログラミング教育必修化後の教育を受ける今後の学生の多くが学ぶことになるであろう Scratch を、必修化教育を受けていない現在の学生が学ぶ機会を設けることも必要であろうと考えてのことである。
本稿では、2016 年度から実施している「初等プログラミング入門」の経験 [8] を元にして、これまでの未経験者向けプログラミング入門講義についての実践報
告、および今後のプログラミング教育についての検討を行う。

授業時には本学独自の教務情報システム (KULAS)の機能を活用し、資料配布、課題提出、出席確認、アンケートなどを実施した。毎回講義用スライドを授業数日前に KULAS に載せることとし、スライドには前回の復習と次に学ぶ新しい内容を含めた。これは授業の課題をなるべく授業中に終わらせられるよう事前学習（復習と予習）を促すために行ったもので、反転学習となることを意識している。

Sunaba はプログラミングに慣れているものには日本語と半角でのタイピングがわずらしく、限られた機

2 初等プログラミング入門

能しかないため使いやすいとは言い難いが、初心者にはわかりやすい言語であった。また実行時のエラーが2.1 Sunaba「初等プログラミング入門」の授業では、2016 年度からの 2 年間はプログラミング言語として平山尚氏により作られた「Sunaba」を用いた [6]。この言語を選択した理由は次のようなものである。

わかりやすいため、プログラミング未経験者でも自分で問題を解決しやすいようであった。一方教える側からすると、機能が限られている分同じことをするにも工程数が多くなるのでまどろっこしく感じられるが、逆に考えると順にステップを踏むことになるため、あ• エラー表示を含め、日本語が使えるので初心者にわかりやすい。

る意味教えやすく感じられた。Sunaba を使って一つのゲームを作るという作業を通して、プログラミング• 基本的な機能のみしか持たず、プログラムを基礎的な部分から構成することになり教育的である。

• コンパイルの作業が必要なく、ドラッグアンドドの考え方の一端には触れられるものとなったのではな
いかと思われる。

2.2

Scratch2016 年度および 2017 年度の授業では、プログラロップで即時実行できる。
授業では簡易テトリスの作成を最終目標とした。簡易テトリスは、枠の中でテトリミノ（4 つの正方形がつながったもの）が上から落ちてきて、そのテトリミノをキーボードを使って左右移動や回転させることができるものである。授業の流れと内容を次に示す。

ミング言語として入門用言語である Sunaba を用いた [6]。プログラミングの考え方を学ぶには Sunaba
でも特に問題はないが、入門用に特化した言語である
ため、プログラミングの世界がその中で閉じてしまいがちである。プログラミングを学ぶためには他のシステムとの連携などを考えることも有効であり、また本

1. Sunaba インストール、動作確認

授業は教員志望の学生も受講することから、初等中等

2. 点を打つ、四角形を書く

教育の授業等で使うことのできる知識や技術を身に

3. 繰り返し構文付けることも大事になってくる。それらを考慮して、

4. 部分プログラム、枠の作成

2018 年度からは教材として「Scratch」 [7] を使用し5. 部分プログラムている。Scratch を選択した理由は、文法を知らなく

6. 四角形を落下させるても直感的に使うことのできるビジュアルプログラミ

7. キーボードを使って点を動かすング言語であること、Web アプリケーションとなって8. 条件実行文いるため特別な環境構築が必要なく、使用者の OS 等

9. 四角形を積もらせるの環境に依存せず利用可能なこと、コンパイル作業が271

必要なくすぐに動作確認できること、作成したプログ録画された動画を moodle にアップロードすることにラムと実際の動作の対応がわかりやすく、プログラムよって非同期対応も可能なようにした。また、資料のミスを見つけやすいこと、などである。受講生が目（PDF 資料、プログラム動作イメージ動画など）を事指す授業目標には、1. プログラミングの概念を理解す前に moodle に載せることにより、反転学習も可能なる、2. 基本のアルゴリズムを理解する、3. Scratch で状況とした。全 15 回の授業内容は以下の通りである。

プログラミングできるようになるの 3 つを掲げた。

1. オンライン授業の説明、Scratch の使い方

2018 年度および 2019 年度の最初の 2 年間は、試2. 画面構成、座標

行錯誤しながら授業の内容および流れを作っていっ

3. 乱数

た。大まかな内容は次のようなものである。まず、

4. メッセージ送受信

Scratch の画面構成や使い方をある程度説明し、その5. 変数

後は Scratch の基本的な機能を使って繰り返し構文

6. リスト（配列）や if 構文、乱数の使い方などを学習する。具体的に

7. アルゴリズム 1

はメッセージ送受信機能を使って登場人物を時系列に8. 場合分け沿って動かす、変数や配列の使い方を学ぶ、探索アル

9. ゲーム作成 1

ゴリズムや並べ替えアルゴリズムなどを理解する、定10. 定義、引数義機能（関数機能）を学び応用する、といった内容で

11. アルゴリズム 2ある。授業資料は LMS に載せることで、自分のペー

12. 乱数、グラフ化

スで理解を深めてもらうようにした。また毎回サンプ

13. モンテカルロ法

ルファイルとして課題の元となる Scratch ファイルを

14. ゲーム作成 2提供し、それを使用することによって細かいことに囚

15. 課題

われず、各回で新しく学ぶ内容に集中できるように工夫した。これにより、授業中にまったく手が動かない

この授業内容は現在もほぼ踏襲されており、これまでといった学生は皆無となり、多くの学生は授業中に課の内容に新たに乱数を使ったデータ生成およびその題を終えることができるようになった。

データのグラフ化、モンテカルロ法などが加わってい2019 年度には Scratch を学んだことの総仕上げとる。データ生成やグラフ化には数値計算の基礎的な考して、ドローンプログラミングも実施した。ドロー

え方を知る必要があるが、それまでの内容ではこれらンプログラミングには Ryze Technology 社のトイドのことにあまり触れていないこともあり、動作させるローン「Tello Edu」を用いた。プログラミング入門のために苦労した学生も多くいたようであった。

授業においてドローンプログラミングを導入した理由

2019 年度から導入した Scratch と外部機器を接続は、プログラミング未経験者にとって、プログラミンしてプログラミングを学ぶ内容については、PC と機グにより何かを物理的に動作させる経験は、プログラ器を実際に接続して操作する必要があるが、コロナ対ミングに対するイメージをより明確にすることに役立応によりオンライン授業を行わざるを得なかったたつであろうと考えてのことである。また、「Tello Edu」

め、2020 年度以降の授業ではあまり行うことができが Scratch（および Python、Swift）によるプログラていない。しかしながら、大学から対面授業実施の許ミングを公式にサポートしていることも大きな理由で可が出たタイミングを見計らい、受講生から希望者をある。

募って数回実施している。希望者のみとしたのは、オ2020 年度からは全世界的なコロナ禍の影響により、ンライン授業のため実家に帰っており大学に出てこ大学の授業も対応を余儀なくされ、それは現在にも影れない学生がいること、許可が出たといってもコロ響を及ぼしている。特に 2020 年度はほとんどの大学

ナ禍において対面授業を望まない学生がいること、なにおいて、授業はオンライン対応を迫られ、初等プロどを考慮してのことである。希望者のみとしたことにグラミング入門の講義もそれに従って実施された。オより、参加の有無は成績には含まないこととした。用

ンライン講義に利用したシステムは、moodle（LMS）、いた外部機器はトイドローンと micro:bit の 2 つであ

KULAS（教務情報システム）、Webex（オンライン会る。トイドローンについては前述したので、ここでは議システム）などである。毎週の講義では Webex を「micro:bit」について概要を述べる。micro:bit はイギ使って同期型授業を行い、同時に授業の録画も実施し、リスの BBC（英国放送協会）が主体となって作った、272

手のひらサイズの教育向けマイコンボードのことである。その特徴としては• LED や無線アンテナ、センサー（光・温度・地磁気・加速度）などを搭載• パソコンやタブレットなど、様々な環境でプログ
図 1 ML2Scratch を用いた手書き数字の識別例

ラミング可能• 様々な拡張パーツを使用可能などが挙げられる。本稿執筆時、micro:bit の最新バー
ジョンはバージョン 2.0 であるが、本講義で使ったものはバージョン 1.0 である。micro:bit のプログラミ
ングには Scratch と同じようなビジュアルプログラミング言語である「makecode」を用いた。プログラミンプログラミングファイルと学習済みデータである。この課題はほとんどの学生が問題なく実行できており、データ作成やラベル付けなどを行うことによって、機械学習の一端を学ぶことができたものと思われる。

2.3

グの内容は

実践

「初等プログラミング入門」は、2019 年度までは第• LED を使って特定のマーク（ハートなど）を表示させる

1 学期または第 2 学期のいずれかにおいて週 1 回の開講であったが、2020 年度からは第 1 学期および第 2• 乱数や LED、加速度センサーを用いてじゃんけんゲームを作成する学期にそれぞれ週 1 回ずつの開講とした。このように変更した理由は、プログラミングを学んでみたいと考• 光センサーや温度センサーを用いて、その場の明るさや温度を画面に表示するえる学生はそれなりに存在するものの、年に 1 コマのみの開講では他の必修講義等と重なって受講する機会などの基本機能を用いた簡単なものである。make-code はブロックを組み合わせてプログラミングを行うが、Scratch をある程度使えるようになっていれば、特に説明などがなくても感覚的に使用できる。そのため、Scratch の授業がある程度進んでから micro:bit の用いればスムーズに導入可能であった。あまりに簡単に使えたため、参加した学生も驚いたようであるが、PC と外部機器をつなぎ、外部機器が動作している様
子を見ることにより、プログラミングが PC の画面の中だけでなく外の世界とつなげられることを実感することができたとの感想もあり、当初の狙いはある程度を失ってしまう学生がいることを考慮してのことである。授業のコマ数を増やしたものの、基本的に対面式の授業を検討していたこと、TA/SA が付かないこと、採点の手間などのことを考えて、目配りが可能と思われる程度に人数制限（50 人）を課すことにした。履
修登録時には毎回抽選が行われるほど受講希望者がおり、年に 100 人ほどが受講していることになる。
講義ではまず受講生の状況を把握するため、第 1 回目の講義において、利用している OS やプログラミング経験などについての事前調査を行っている。初等プ
ログラミング入門の授業を開始した 2016 年度、あるいは Scratch を用い始めた 2018 年度からの調査結果達成されたものと思われる。
また 、近 年の AI・デー タサイ エ ンス 教 育の 高まの主なものを以下に示す。

りを意識して、2021 年度から Scratch を使って機1. 受講生のうち、これまでに何らかのプログラミン械学習を体験する内容を最終課題として授業に取グ経験があるかどうかを尋ねた結果が図 2 であり入れた。Scratch と機械学習の連携に用いたのはる。初等プログラミング入門の授業当初から、全「ML2Scratch」 [9] である。
「ML2Scratch」は Google

体の傾向はあまり変わらず、プログラミング経験の開発した機械学習用ソフトウェアライブラリ Ten-があると答えた学生の割合は 30 ％以下に留まっ

sorFlow と Scratch をつなぐ仕組みであり、Scratchている。プログラミング経験の内容では、中学やを使って画像判定などをすることが可能となるもので高校で Scratch を使った、ロボットプログラミンある。プログラムの構成によっては図 1 のように文字グをしたなどの学生が多かった。

識別なども可能となる。これを用いて、最終課題では

2. Scratch について知っていましたか？という問い

手書き図形（丸や三角形、四角形など）の識別ができに対する回答が図 3 である。2018 年には知ってるようになることを課した。最終提出物は Scratch のいた学生の割合が 10 ％程度で、この傾向は 2020

273

図2

これまでにプログラミングの経験は？

図 4 Scratch は初等プログラミング入門の授業で用いるのに適当だと思いますか？

年まではほとんど変わっていないが、2021 年度あたりから 20 ％を超え、2022 年度前期には 30 ％

義および非同期型講義を実施しましたが、プログ以上にまで上昇している。このことは、2020 年度

ラミングを学ぶ授業としてこの方式はどうだったから開始されたプログラミング教育必修化の影響でしょうか？との問いには、図 5 のような回答でにより、Scratch が多くの人に認知され始めたこあった。コロナ禍当初は同期型授業を希望する学とが原因ではないかと推測している。

生もある程度いたが、コロナ禍が長引き、オンライン授業に慣れてくるにつれ同期型授業のみでよいという学生は減少しているようである。学生のスキルにも依存すると思われるが、資料のみで十分という学生や、資料だけではイメージがわかない場合には動画を見返すという学生も存在する。
より多くの学生に対応するには、同期型も非同期型もともに準備することが望まれていると考えられる。

図 3 Scratch のことを知っていましたか？

2.4

授業後アンケート

本講義の終わりには、受講生に対して授業内容やScratch、オンライン授業などについてのアンケートを実施した。以下、授業後アンケート結果の一部を紹介する。

1. Scratch は初等プログラミング入門の授業で用い

図5

本授業では moodle を使った資料提示、同期型講義および非同期型動画講義を実施しましたが、プるのに適当だと思いますか？との問いには、全体ログラミングを学ぶ授業としてこの方式はどうだっの 90 ％から 95 ％の学生が適当またはそこそこ適たでしょうか？

当と回答している（図 4）。その理由としては、命令ブロックが色分けされていてわかりやすく、ま3. もし初等プログラミング入門の次のステップのた画面表示が日本語対応しているため、プログラプログラミングの授業があれば、受講してみたいミングが簡単に感じる、ブロックの組み合わせ次と思いますか？との問いには、80 ％から 90 ％第で複雑な動きを実現でき、ゲームなどの作成もが「思う」あるいは「わからない」と回答しておできるため、最後まで脱落することなく続けられり、Scratch の次のステップとなる内容の授業にた、などが挙げられている。

ついてもに検討していく必要がありそうである。

2. 本講義では moodle を使った資料提示、同期型講274（図 6）。

しかしながら、前述したように 2025 年度には新しい指導要領に基づいた教育を受けた学生が入学してくることになり、プログラミング未経験者は（理想的には）皆無に近い状況になることが予想される。そうなると、これまで行ってきた講義の前提条件は大きく変化し、プログラミング入門の内容も経験者向けのものとして、見直さざるを得なくなってくると思われる。
つまり、現在の授業内容は続けてもあと 2 年ほどであ図6り、3 年後にはこれまでとは異なる内容での授業となもし初等プログラミング入門の次のステップるよう検討していかなければならない。今後は学内ののプログラミングの授業があれば、受講してみたい

データサイエンス教育の進展を注視しつつ、2025 年度と思いますか？

入学生の状況把握に努め、それらに合わせた新しい授業を模索する必要があると考えている。
以上のアンケート結果を見る限りでは、本授業の内容に関しては初等プログラミング入門の授業目的に参考文献合ったものとなっており、またプログラミング初心者[1] 日 本 再 興 戦 略 2016、http://www.kantei.

からの脱却を目指す次のステップの授業を検討するこ

go.jp/jp/singi/keizaisaisei/pdf/2016_とも重要であろうと思われる。

zentaihombun.pdf、（2022 年 10 月 10 日閲覧）[2] 文 部 科 学 省,

3 おわりにhttps://www.mext.go.jp/a_menu/shotou/zyouhou/detail/1375607.

本稿では、2016 年度から実施しているプログラミング未経験者向けの授業「初等プログラミング入門」

htm、(2022 年 10 月 10 日閲覧)
[3] 未 来 投 資 戦 略 2017、http://www.kantei.の実践報告を行った。本講義では 2016 年度からの 2go.jp/jp/singi/keizaisaisei/pdf/

年間は「Sunaba」を、2018 年度からは「Scratch」をmiraitousi2017.pdf、（2022 年 10 月 10

プログラミング言語として用いている。開始当初は単日閲覧）

純に未経験者向けの授業を行うことを考えていたが、[4] 総 合 科 学 技 術・イ ノ ベ ー シ ョ ン 会 議（ 第 43

同時期に初等中等教育におけるプログラミング教育回）, https://www8.cao.go.jp/cstp/siryo/

必修化が決まり、徐々にそれを考慮た授業にシフトしhaihui043/haihu-043.html、（2022 年 10 月 10ていった。これまでは、一部の職業に就くものを除け日閲覧）

ば、プログラミング未経験者ということでも特に問題[5] デ ジ タ ル 田 園 都 市 国 家 構 想 基 本 方 針 、はなかったのであるが、今後は新しい教育を受けた世

hhttps://www.cas.go.jp/jp/seisaku/

代がプログラミング経験者となり、基礎的なプログラ

digital_denen/pdf/20220607_honbun.pdf、ミングの知識を持っていて当然のような時代になるこ（2022 年 10 月 10 日閲覧）とが予想される。このような状況を踏まえると、新指[6] 石黒克也、佐々木正人、佐々浩司、 共通教育に導要領に沿って学んだ学生とそうではない学生の間におけるプログラミング入門講義 、2017 年度大学

は、プログラミングに関する知識の差が生じることがICT 推進協議会年次大会論文集、WA2-1 (2018)

容易に想像される。特に新指導要領のもとで学んだ最[7] Scratch、https://scratch.mit.edu/（2022 年

初の学生が大学に入学するのは 2025 年度からであり、10 月 10 日閲覧）

そこで大きな差が生じるのではと予想されている。そ[8] 石黒克也、佐々木正人、佐々浩司、 共通教育にのため、その差をなるべく埋められるよう「初等プロおける教養科目としてのプログラミング入門 、グラミング入門」の内容を吟味し、変化させてきた。

2019 年度大学 ICT 推進協議会年次大会論文集、

さらに大学において数理・AI・データサイエンス教育

TH1-5 (2020)の必修化が進められることも決まり、それらを意識し[9] ML2Scratch、https://github.com/

たプログラミング入門講義へと内容の充実化を図って

champierre/ml2scratch（2022いる。

10 日閲覧）275

年10月