東海地区

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

フローチャートと Scratch を利用したプログラミング授業方法の提案
A Programming Learning Method by Using both Flowchart and Scratch
胡 石帆*1, 野崎 浩成*1
SHIFAN HU*1, Hironari NOZAKI*1*1
愛知教育大学*1
Aichi University of Educational
Email: huhuif@gmail.com
あらまし：本稿では，プログラミング人材を育つために、各国は子供の頃からプログラミング教育を始めようと推進している中、教員育成向けのプログラミング教育の提案を試みる。今回は同じゼミのベナンとサウジアラビア教員研修の二人を対象に、プログラミングの個別学習指導を行う。論理的思考への自覚を測定し、実際のプログラミング過程と成果を記録し、プログラミング能力の変化を分析する。この授業方法の有効性を確認し、改善案を考慮する。
キーワード：プログラミング教育，Scratch，フローチャート，Python，プログラミング的思考

1.

小学校プログラミング教育の狙いは以下の３つとなる。①「プログラミング的思考」を育むこと、②プ
ログラムの働きやよさ、情報社会がコンピュータ等の情報技術によって支えられていることなどに気付くことができるようにするとともに、コンピュータ等を上手に活用して身近な問題を解決したり、よりよい社会を築いたりしようとする態度を育むこと、③各教科等の内容を指導する中で実施する場合には、各教科等での学びをより確実なものとすること、である。
プログラミング思考を習得するには、実際のプログラミング作業で実践し、経験する必要があります。
小学校教員はプログランマに比べると、より重要なのは総合的な知識をプログラミング授業の中に組み合わせ、学習することである。しかし、伝統的なプログラミング教育内容の中、アルゴリズムは数学と関係が強いが、その他の教科との繋がりが弱い。だが、プログランマが重視したコミュニケーション能力も小学校の指導要領の中に必要の能力の一つとし「小学校プログラミング教育の手引て提唱されたが、（第二版）」の中には明記されなかった。

背景研究

プログラミング人材を育つために、各国は子供の頃からプログラミング教育を始めようと推進している。日本は 2020 年から小学校のプログラミング教育の導入を始める。しかし、日本は他の国と違い、プログラミングを教科として設立ではなく、他の教科と融合し、授業を行う形式となっている。
ビジュアルプログラミング言語から直接コードベースプログラミング言語へ移行するのは関連性が弱い。日本語表示のビジュアルプログラミングは全部日本語でブロックに説明を書いている、しかし、コードベースプログラミング言語の殆どは英語のコマンドになっている。さらに、ビジュアルプログラミ
ングはコードベースプログラミングと違い、書き方によるエラーもない。そのため、学習者にとってビジュアルプログラミング言語からコードベースプログラミング言語に移行する時は全部新しいプログラミング言語を学習することになる。
図形を使用してアルゴリズムやプロセスを表現するフローチャートは、昔からプログラミングを学習する時にコンピュータのプログラム処理プロセスを学習する方法の一つとして教え続けた。フローチャートは図を利用して流れを説明することで、プログラムのデザインやプログランマの間の交流する時もよく使用している。しかし、フローチャートを学習するのはビジュアルプログラミングよ り 難しい（Daniela G，Francesco M 2015）、学習意欲が削減される（Osman E, Adile A K 2017）、直接にプログラムを作ることができないなどの問題がある。そのために、子供にプログラミングを教えるにはあまり向いていないと認識されている。

2.

3.

授業説明

Scratch 部分の授業は最初に Scratch とフローチャートを学習者に簡単な紹介をする。二回目は非営利団体 code.org の Hour of Code の古典的な迷路からブロックの基本的な動作を学習する。三回目以後はScratch で事前作成した迷路で、複数回の学習でプログラムを作成・改良しながら学習する。５回目は学習者の言語教師を考え、プログラムで２つのキャラクタは動き、話すような一つのショットシーンを作成、言語学習の補助用プログラムを体験する。
６回目は以前学習した内容を利用し、自分で考え、一つのプログラムを作成する。
Python は最初 GoogleBlockly を利用して、ブロックでプログラムを作成、転換された Python コードを小学校プログラミング教育に求められた能力

日本文部省（2019 年 11 月）「小学校プログラミン
グ教育の手引（第二版）」によれば、日本で実施する

81東海地区

教育システム情報学会 2019年度学生研究発表会コピーし、Python に実行させるようにする。Pythonのコードを読み、何度も練習し理解した後、自習的にコードの方へ移行するようにする。

4.

授業実施と結果

5.

プログラミング的思考の変化

第 2 回 Hour of Code の古典的迷路時、全部の 20
問は 1 時間 20 分ぐらいで二人が全部クリアできた。
1 から 11 問までは簡単に突破できたが、12 問から複数な部分になるとつまづきが多くなり、その一番の原因はキャラクタが数回動いた後の位置と向かう方法が分からなくなることである。
Python の 授 業 は 最 初 の 数 値 ・ 演 算 子 部 分 でGoogleBlockly を利用して Python のコードを作成し、コードを Python にコピーし、実行させ、結果を見る体験がメインとなる。Scratch の基礎があるため、GoogleBlockly をすぐに理解し、使えるようになった。

平 山 ら (2004) が 研 究 し た 批 判 的 思 考 (criticalthinking)は、現在提唱されているプログラミング的思考と重なる部分が多い。本研究は平山ら(2004)が作成した批判的思考態度尺度を利用して、学習者のプログラミング的思考の変化を測定することにした。
アンケートは授業の 1 回目「Scratch とフローチャー
トの紹介」を始める前と 6 回目「自分でプログラムを設計し、一緒に Scratch を利用した教材の開発」終了後と 12 回目「Excel ファイルの読み込みと書き換え、総合的な練習」終了後に実施した。
全授業を通じで、学習者である A さんと F さんは論理的思考への自覚の著しい上昇が見られなかった。
しかし A さんの「何か複雑な問題を考えると、混乱してしまう」項目は二回連続下がり、A さんのプログラミング学習の過程中、最初はあまりできないがPython に入ってから F さんに課題を説明することができたことを考え、複雑な問題の解決方法を得られたと推測する。
F さんの「一筋縄では行かないような難しい問題に対しても取り組み続けることができる」項目は二回連続下がり、これはプログラミング課題のハードルの上昇と比例した。そして「物事を考えるとき、他の案について考える余裕がない」も二回目から 1上昇した。
第二回の測定結果、二人共探究心に関する項目が少数な項目以外全部上昇した。これは Scratch によるプログラミングへの興味が強まったと 推 測し、Scratch を使用した他の研究結果も一致する。しかし第三回の探究心の測定結果はＦさん全面的に下がり、A さんも一部の項目下がった。これは授業中 Pythonの学習する時、Ｆさんの集中力が減り、スマホをいじる時もあり、A さんは基本的に集中してプログラミングをしている状況から証明を得られることができた。

6.

まとめ

82

今回の授業は二人のプログラミング能力が上昇したのは事実だか、プログラミング的思考の著しい変化を見られなかった。Scratch の学習はつまづきが少ない、学習意欲も高まった。しかし Python に入って、エラー提示がわからないや書き方の縛りによる学習意欲も下がった。コードベースプログラミング入ったからの言語環境の変化による効力感の低下を対策する必要がある。
二人の第一回と第二回の探究心や学習時の様子から見ると、フローチャートを Scratch の授業内容に組み込むことで、フローチャートの学習意欲低下問題解決は成功した。フローチャートも図形の説明方法で利用し、効果があった。フローチャートは交流時の図形による思考整理と説明が役に立った。
GoogleBlockly を利用したビジュアルプログラミ
ング言語からコードベースプログラミング言語への移行は最初の部分が順調でした。Scratch の知識はあるために、GoogleBlockly を特に説明せずでもすぐに使用することができた。しかし、GoogleBlockly を利用したために最初の授業の時、プログラミングのエラー数が大幅減り、その後で GoogleBlockly 頼らず、複雑なプログラムを作成する時にエラーの処理方法を知らないのが問題となった。
今回の学習対象者は２人だけであり、そのために数値の変化と授業中の学習の変化と結び付けができたが、統計的な有意性の分析ができず、有効性には議論する余地がある。今後の研究で、多くの学習者からデータを取り、分析し、その有効性を確認する必要がある。
参考文献(1) 松澤 芳昭 保井 元 杉浦 学 酒井 三四郎（2014）「ビジュアル-Java 相互変換によるシームレスな言語移行を指向したプログラミング学習環境の提案と評価」情
報処理学会論文誌 VOL55 NO.1(2014):P57-71(2) Daniela Giordano, Francesco Maiorana:
Teaching
Algorithms: Visual Language vs フローチャート vs
Textual Language(2015 IEEE Global Engineering
Education Conference (EDUCON))(3) Osman Erol, Adile Aşkım Kurt :The Effects of Teaching
Programming with Scratch on Pre-Service Information
Technology Teachers ’ Motivation and Achievement（ComputersinHumanBehavior,
10.1016/j.chb.2017.08.017）(4) 平山るみ,楠見孝（2004）「批判的思考態度が結論導出プロセスに及ぼす影響-証拠評価と結論生成課題を用いての検討-」教育心理学研究,2004,52,P186-198(5) 日本文部省（2019 年 11 月）「小学校プログラミング
教 育 の 手 引 （ 第 二 版 ）」 URL ： https://www.mext.go.jp/component/a_menu/education/micro_det
ail/__icsFiles/afieldfile/2018/11/06/1403162_02_1.pdf(6) 阪 東 哲也 黒田 昌克
福井 昌則 本木 山 潤（2017 年）我が国の初等中等教育におけ る プロ グ
ラ ミ ング教育の制度化に関する批判的検討、兵庫教育大学学校教育学研究, 2017, 第 30 巻, pp.173-184(7) 田村 学（2018）総合的な学習の時間におけるプログ
ラミング的思考の育成、日本科学教育学会年会論文集，
2018，42 巻、P203-204