体感しながら学ぶ AI とデータサイエンス入門授業の試み―Wolfram 言語によるプログラミング実践―
金光安芸子*1・北村美穂子*2・吉田智子*2
Email: akikok @wolfram.com*1: Wolfram Research，Inc.
*2: 京都ノートルダム女子大学 社会情報課程◎Key Words

1.

AI・データサイエンス教育，プログラミング実習，Wolfram 言語，教材開発

はじめにどのような分野においてもAIやデータサイエンスの知識が不可欠な時代である。その流れを受けて，2021 年度から文部科学省は「数理・データサイエンス・AI 教育」を体系的に行なっている大学等に対して認定制度(1)を開始し，文系理系を問わず全ての学生にこの教育を提供するよう推進している。
筆者らが授業を行なった京都ノートルダム女子大学は，文系女子大学でありながら全学的な情報教育を数年前から積極的に行っており， 2021 年度に上記の認定制度（リテラシーレベル）の認定を受けた。特に文系学部の学生や女子学生にとって，データサイエンス教育を含む情報教育における教材の選び方は非常に重要である (2)。身近な題材で学ぶ必要性を実感でき，学生自身のデザイン力や創造性を発揮できる教材が受け入れられ易い。
また，データサイエンスの授業において，講義で学ぶ内容をプログラミング実習で体感することは，仕組みを理解するために非常に重要である。ただ，プログラミング言語に馴染みのない学生にとって，言語を学ぶこと自体が負担になることは望ましくない。
本報告では，これらの条件を満たすものとして京都ノートルダム女子大学の“データ活用プログラム”の必修科目の一つである「AI とデータサイエンス入門」で実践した“Wolfram 言語 1 によるプログラミング実習”について紹介する。

2. 「AI とデータサイエンス入門」の授業
2.1 授業の概要「AI とデータサイエンス入門」（2 単位，90 分授業 15回）は，2021 年度以降に入学した 2 年生以上の全学部生が選択できるもので，北村と金光の 2 名が 2 クラス（計21 名）を担当する形で 2022 年度の後期授業（2022 年 9 月〜2023 年 3 月）で実践した。すべての授業は原則「講義＋Wolfram 言語によるプログラミング実習」という形式で行った。この授業全体の方針，内容および実践結果については，2023PC カンファレンス分科会の「データサイエンス」において「初学者のための AI・データサイエンス入門授業の試み」で詳しく発表する。
1

https://www.wolfram.com/language/https://www.wolframalpha.com/
3https://www.wolframa.com/mathematica/
4https://www.wolframcloud.com/
2

2.2 Wolfram 言語の実習環境
Wolfram 言語は，計算知識エンジン Wolfram|Alpha2 や数式 処理 シス テムと し て 30 年 以 上の 歴史の あ る
Mathematica3 のベースとなっているプログラミング言語である。微積分，線形代数，統計などの数学関数はもちろん，画像分析や音声分析，自然言語処理や機械学習など AIとデータサイエンスに欠かせない高度な関数が豊富に揃っているため，講義の内容に沿った実習が可能である。
本実習では，この Wolfram 言語の実行環境として，Wolfram Cloud4 を利用した。これは， Web ブラウザからアクセスでき， Wolfram ID というアカウントを作成してサインインすると利用できる（図１）。PC にアプリケーションをインストールする必要がないため，大学の PC 教室でなくとも，学生が所有する PC，モバイルデバイス，スマートフォンなどでどこからでも同じ環境でプログラミングができる。
実習用の教材テキストは Wolfram Notebook で作成し，学生には Wolfram Cloud 上で公開した。Wolfram Cloud では，ファイルのシェアや公開が簡単にできるため，教材の配布や学生の課題提出，質問のやりとりなど，教員と学生のコミュニケーションも双方向でスムーズに行うことができる。

図 1 Web ブラウザで利用できる Wolfram Cloud3.

Wolfram 言語を使った実習の実践例と学生の反応

全 15 回の授業を「講義＋Wolfram 言語によるプログラミング実習」という形式で行ったが，ここでは，学生が特に意欲的に取り組んだ３つの実習内容について紹介する。

3.1 アートプログラミング「プログラミング言語概論」の回（第 6 回）では，アルゴリズムやデータ構造，フローチャート，プログラミング言語の種類や特徴を講義で学んだ後，条件分岐や反復処理，変数や関数の作成のプログラミング実習を行った。第
7 回では，それらを組み合わせて大小様々な円のグラフィックスを描くアートプログラミングの課題に取り組んだ。
実習での基本となるプログラムを図 2 に示す。Circle 関数を使って円を一つ描く短いコードから始まり，Table 関
数を使って複数の円を描く方法，RandomReal 関数やRandomColor 関数を組み合わせてランダムな大きさや色でアートを作る方法を学んだ。学生は，教材ファイルに記載してあるプログラムをまずはそのまま実行し，プログラムの意味を考えながら数字や関数を少しずつ変えてオリジナルのアート作品に仕上げていった。
さらに応用編として，
Circle 関数を Disk 関数で円盤に，Polygon 関数で多角形に，Opacity 関数を追加して透明度を与えるなどの方法を提示したところ，大半の学生が意欲的に挑戦し，工夫してアートプログラミングの作品作りに取り組んだ。学生の作品を図 3 に示す。
学生からは，「自分の思うような色を付けるために試行錯誤するのが楽しかった」，「プログラミングは難しいと思っていたが，実際自分でやってみて様々な色や形が表現出来ることがとても面白く思った」，「自分の創造性で多くの芸術作品を作ることができてよかった」など，学生のやる気を示す感想が多く見られた。

3.2 文学作品のワードクラウド「データビジュアライゼーション」の回（第 12 回）では，可視化の種類(棒グラフや地図上の可視化など)，可視化の重要性，チャートジャンクについて講義で学んだ後，ワードクラウドで可視化するプログラミング実習を行い，可視化の有効性について共に考えた。
ワードクラウドは，アンケートや文章などのテキストデータから出現回数の多い単語をより大きく表示することで，どのようなワードがより多く出てきているのかを瞬時に認識することができるデータビジュアライゼーシ
ョンの一つである。ニュースや新聞，TV の情報番組などでもよく利用されており，学生にも馴染みがある。
実習では，まず授業アンケートのテキストファイルをWolfram Cloud にアップロードした後，アップロードしたファイルを Import 関数で読み込み，WordCloud 関数でワードクラウドを作成した。さらに，ハート型や幾何図形を指定して異なる形のワードクラウドを作成した。図 4 に
Wolfram 言語での具体的な手順を示す。
ここまでの実習を全員で行った後，教員がレポート課題について説明した。課題の内容は，表 1 の 10 個の文学作品から 2 作品を選んでワードクラウドを作り，そこからわかることや工夫した点を記述することである。

図 2 アートプログラミングの基本プログラム

図 3 学生が作成したアートプログラミングの作品

表 1 ワードクラウドの課題とした文学作品「吾輩は猫である」（夏目漱石）「人間失格」（太宰治）「みだれ髪」（与謝野晶子）「源氏物語 桐壺」
（紫式部，與謝野晶子訳）「源氏物語 夕顔」
（紫式部，與謝野晶子訳）「母を尋ねて三千里」（アミーチス）「みにくいアヒルの子」（アンデルセン）
「白雪姫」
（グリム）
「ラプンツエル」（グリム）「若草物語」（オルコット）なお，レポートに使用する文学作品のデータは，教員が青空文庫 5 から入手した全文テキストをPython のMeCab6を利用して形態素解析をした後，ストップワード（「を」「は」「です」などの助詞や助動詞）を除去してテキストデータファイルを用意した。
学生らがこのレポート課題に取り組んだのは冬休み期間中であったが，休み中にも関わらず，学生から「作品に合わせた形にしたいがどうしたらいいか？」，「リストにない文学作品でワードクラウドを作りたい」という質問や要望があり，意欲的に取り組もうとする様子が伺えた。
図 5 は，学生の要望を受けて追加で Web 上に公開したオリジナルの形のワードクラウドを作る手順である。

学生らはそれぞれの文学作品のイメージや登場人物に合わせて色や形を工夫し，バラエティに富んだワードクラウドを作成した。学生らは，課題として指示された 2 作品以上のワードクラウドを作成したり，自ら Wolfram 言語のオンラインドキュメントを調べて色や配置を変化させたりしており，筆者らの期待以上に意欲的に取り組んでいた。図 6 にレポート課題で提出された学生らのワードクラウドの作品の一部を紹介する。
また，課題の「ワードクラウドからわかること」
として，表 2 のような学生の意見があった。文学作品をワードクラウドで可視化することによって新たな発見があったことがわかる。
表 2 ワードクラウドからわかること「主人公の名前や登場するキャラクターのワードが大きく表示され，それらのワードが多く登場していることがわかった。
」「すべての小説において，一人称，二人称，人物名がよく出てくるということがわかった。また，動詞も多く，特に多いのは“いう”という動詞であることがわかった。このことから，人物が何を言ったのかという文章が多いのではないかと思われる。
」「『ラプンツェル』のワードクラウドからは，主人公の“ラプンツェル”よりも“魔女”の方が多く出現していることに驚いた。この結果は，ワードクラウドを作成してみないと分からないことなので，これこそがワードクラウドの良さだと思った。
」

図 4 ワードクラウドの作成手順

図 5 好きな画像からワードクラウドを作成する方法
56https://www.aozora.gr.jp/
https://taku910.github.io/mecab/

図 6 学生が作成した文学作品のワードクラウド

3.3 機械学習でお菓子を見分けるアプリの作成「機械学習」の回（第 13 回）では，機械学習の種類（教師あり学習，教師なし学習，強化学習）と教師あり学習の簡単な仕組みについて講義で学んだ後，教師あり学習で２種類のチョコのお菓子を画像から見分けるプログラムを自作する実習を行った。
実習では，まず教員が用意した２種類のお菓子の画像データのうち，訓練用の画像データにラベリングし，その訓練データを使って Classify 関数で学習させて判別器を作った。次にその判別器を使ってテストデータで判定実験を行い，性能を調べた。さらに，応用として Method オプションを使って異なる機械学習手法の判別器を作り，判定結果を比較した。図 7 に教材テキストで示したプログラムの手順を示す。
学生らはこのプログラムを自ら実行して実験を行なった。そして，判定結果やその根拠となる確率などから，判定が正解あるいは不正解になった理由を考え，よりよい性能の判別器を作るにはどうしたらよいのかを共に考えた。学生からは，「訓練データに様々な角度での写真を増やすと良い」，「訓練データの量を多くする」，「データに適した手法を用いる必要がある」などの意見が聞かれた。
小さいプログラムでも身近な題材を用いて自分で実行し判定することによって，AI や機械学習を使ったサービスやアプリケーションが実際にどのような仕組みで動いているのかを学生自らが考え，気づきを得たことが伺えた。

4.

おわりに

本実習では，講義で学習した知識の理解がプログラミ
ング実習によって深まるよう，題材選びを工夫した。特に，アートや文学作品，お菓子の判別アプリ作成など，文系の学生にも受け入れられやすい身近な題材では，「プログラミング＝間違えずに打ち込む作業（写経）」に終わらず，学生が自分の創造力を発揮し，楽しく意欲的に取り組むことができた。
また， 比較的短いコードで様々なデータサイエンスのエッセンスを体感できる Wolfram 言語を毎回使用することにより，プログラム言語に不慣れな学生も徐々に実習や課題にスムーズに取り組むことができた。さらに Web版の Wolfram Cloud 環境で大学が休みの期間でも自宅で作業が続けられたことも，学生がやりたいと思ったタイミングを逃さず積極的に取り組めた要因の一つだと考える。
今回の実習テキストの一部は Wolfram Cloud 上に公開しており，だれでも利用することができる(3)。すでに 2023
年度 4 月より華頂女子高等学校２年生を対象とした授業「メディア情報演習」にてこの教材の一部を活用した授業が実践されており，高校生らがワードクラウドに取り組んでいる。
本教材は，理系の専門ではない大学や小中高においても，AI とデータサイエンスをプログラミング的思考と共に楽しく学べる教材になりうると考える。

参考文献
(1)

(2)
(3)

図 7 お菓子を見分ける教師あり学習の手順

文部科学省：“数理・データサイエンス・AI 教育プログラム 認 定 制 度 （ リ テ ラ シ ー レ ベ ル ）”，https://www.mext.go.jp/a_menu/koutou/suuri_datascience_ai/000
02.htm（2019）
吉田智子，有賀妙子，真下武久：“ジェンダーインクルーシ
ブなプログラミング教材の開発”，
情報処理，
Vol62，No.12，pp.667-671（2021）．
金光安芸子，北村美穂子，吉田智子：“AI とデータサイエ
ンス入門 - Wolfram 言語を使ったプログラミング実習テキスト”，https://wolfr.am/ai-datascience-textbook (2023)