関東地区

教育システム情報学会 2020年度学生研究発表会

アルゴリズム的思考の獲得のための具体物ベースの学習支援システムの提案
Concrete-Based Learning Support System for Algorithmic Learning小松 翔平*1, 東本 崇仁*1
Shouhei KOMATSU*1, Takahito TOMOTO*1*1 東京工芸大学工学部コンピュータ応用学科*1 Faculty of Engineering, Tokyo Polytechnic University
Email: yfe52649@gmail.com
あらまし： 近年では「それがどんな構造で，どんな動作することで，どんな結果になるのか」を考えるアルゴリズム的思考が重要視されている．しかし，この思考の育成を目指した通常のプログラミング学習
では，変数や代入といった概念や文法などの事前知識が必要とされ，学習を行うこと自体が難しい．そこで本研究では，変数や代入といった抽象的な概念を具体物で表現することで，アルゴリズム的思考の獲得に焦点を当てたシステムを開発する．
キーワード： アルゴリズム的思考，具体化，学習支援システム

1.

3.

はじめに

2.

提案システム実際のシステム画面を図 1 に示す．作業スペースには各問題に対応して，具体物の処理の流れを決定するための「作業マス」とマスに配置する具体物が表示されている．学習者は画面左側の具体物リストから配置する具体物を選択し，マス上に設定することで問題として表示されているアルゴリズムの構築を行う．構築を終えたら「シミュレート開始」ボタンを押すことでシミュレートが行われる．もし問題で要求されている動作をしていれば「正しい動作です．このシミュレートにて新たに〇〇のブラックボックスを獲得しました」のようにフィードバックし，構築したアルゴリズムをブラックボックスとして獲得することができる．また，誤った動作をしていた場合は，正しい動作になるまで構築作業を繰り返す．
そして次の問題に移行した際には，ブラックボックスを使って問題に解答することを学習者に要求する．
この行程を繰り返すことでアルゴリズム的思考の獲得を図る．

近年では，様々な物事に対して「それがどういった構造を持っており，どのように動作することで，どういった結果をもたらすのか」を考える，アルゴリズム的思考が重要視されている．このアルゴリズ
ム的思考を養うために，プログラミング学習が注目されている．しかし，一般的なプログラムの構築では，変数や代入を示す文法などの事前知識がないと，アルゴリズム的思考の訓練を十分にできない．
本研究では，変数や代入といった抽象的な概念を身近に存在する具体的な物で表現し，アルゴリズム的思考の獲得に焦点を当てたシステムを開発する．

提案手法

アルゴリズム的思考を養う手段の一つとして，問題の解決に必要な手順を順序立てて考える活動の訓練が挙げられる．そこで著者らは，変数や代入といった概念を具体物に置き換え，アルゴリズムを考えさせることで，学習者がプログラミングについて事前知識を持たない場合でも，アルゴリズム的思考を促すことができると考えた．本研究では，変数は一円硬貨，代入はロボットアームのように具体的な物で表現し，その具体物を組み合わせることでスワップやソートなどのアルゴリズムを構築させる．
またアルゴリズム的思考では，複数の処理をまとめた部品として考える，といった思考も重要となる．
そこで本研究は古池らの提案している部品の段階的拡張手法(1)を基にしている．例えば，はじめはスワップなどの単純なアルゴリズムを構築する．次に構築したスワップをブラックボックスとして使用しながら２変数のソートを構築させる．こうすることで，一度作った構造を別の場面で再利用し「どのような場面でどのように使うか」という順序関係を学ばせることができると考えている．

図175

システム画面

関東地区

4.

教育システム情報学会 2020年度学生研究発表会

評価実験

本システムの学習効果を検証するために工学部の大学生 7 名を被験者として，本システムを使用する実験群とプログラミング学習支援ツールの Scratchを使用する統制群に分けて評価実験を行った．
最初に事前テスト 1・2 を 20 分間受けてもらう．
その後，本システムを用いたシステム学習を 40 分間行う．システム利用が終了したら，事後テスト 1・2を 20 分受けてもらう．最後に本システムに関するアンケートを回答してもらう．
事前・事後テスト 1 の内容の一部を図 2 に示す．
初期状態と目標状態のクレーンとブロックの図を示して，目標状態にするためにクレーンに対して操作命令を記述してもらう．状態変化のための操作命令記述により，アルゴリズム的思考の向上を評価した．
事前・事後テスト 2 の内容の一部を図 3 に示す．
テスト 1 と同じくクレーンやブロックの図を示して，目標状態にするためにクレーンなどに対して操作命令を記述してもらう．また，問題ごとに記述した操作命令のまとまりを Func とし，これを再利用して記述をしてもらう．これにより部品的思考の獲得について検証した．

めた．これも実験群が統制群よりも優位に得点が高かった．以上の結果をまとめると，学習範囲において具体物によるアルゴリズム的思考の訓練は効果的であることが示唆された．
表1
実験
統制実験
統制

表2

事前・事後テスト結果

事前・事後テスト 1 ※()内は標準偏差
事前平均
事後平均
差分
1 (0.71)
1.5 (0.87)
0.5 (0.5)
2 (0)
2 (0)
0 (0)
事前・事後テスト 2 ※()内は標準偏差
事前平均
事後平均
差分
1 (0.71)
1.75 (1.3)
0.75 (0.83)
3.33 (1.25)
3.67 (2.5)
0.34 (1.25)

事前・事後テスト結果(外れ値無し)

実験
統制

事前・事後テスト 2 ※()内は標準偏差
事前平均
事後平均
差分
1 (0.71)
1.75 (1.3)
0.75 (0.83)
2.5 (0.5)
2 (1)0.34 (0.5)

アンケートの結果を表 3 に示す．表 3 では，6 件
法のアンケートのうち概念に関する評価をポジティブな解答として集計した．表 3 から，Scratch でも言語知識は不十分であり，両群ともに概念の理解の可能性を被験者が感じている．また，本システムが処理順番の理解に繋がり，処理順番の再利用に繋がると被験者が感じている．このことから，提案手法が学習者に受け入れられていると考えられる．
表3

図2

事前・事後テスト 1 の問題例

5.

図3

アンケート

質問項目
言語知識を理解できると思うか
変数などの概念を理解できると思うか
物事の処理順番を理解できると思うか一度作った物事の処理順番を別のところで再利用できるようになったと思うか

実験群
3.5
4.5
4.5

統制群
3.33
43.67

4.25

3.33

おわりに

本研究では，プログラミング学習における言語知識，概念，抽象表現を，具体的なもので補うことによるアルゴリズム的思考の習得を支援するシステムの開発を行った．事前事後テストの結果からは，本システムが Scratch よりも得点が高くなり，具体的なものでアルゴリズム的思考の訓練になることが示唆された．また，アンケートの結果からはアルゴリズ
ム的思考の向上ができ，部品的思考の獲得に効果があることが示唆された．
今後の課題としては，被験者数を増やすことで本システムの有効性や妥当性について高めていくことが挙げられる．

事前・事後テスト 2 の問題例

事前・事後テストについて，各問 1 点でテスト 1が 3 問の 3 点満点，テスト 2 が 9 問の 9 点満点となるように評価を行った．まず，表 1 に事前・事後テストの平均値と差分，標準偏差を示す．テスト 1・2の平均の差分より，実験群が統制群よりも優位に得点が高かった．よって，提案手法が有効だったものの，学習範囲においてはアルゴリズム的思考と部品的思考の獲得に効果があることが示唆された．
ただし，テスト 2 については 1 名の被験者が事前から 5 点を取っていた．他の被験者の最高得点が 3点であることを考えると外れ値である可能性が高い
ため，その一名を除いたものについても表 2 にまと

参考文献(1) 古池謙人，東本崇仁，堀口知也，平嶋宗: プログラミングの構造的理解を指向した部品の段階的拡張手法の提案と支援システムの開発・評価，教育システム情報学会誌， Vol．36，No．3，pp．190-202，201976