段階的なプログラミング学習に...

36
段階的なプログラミング学習に 応じた学習教材の検討 生活系教育専修 15033 竹中 恭介

Upload: others

Post on 10-Sep-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

段階的なプログラミング学習に応じた学習教材の検討

生活系教育専修15033 竹中 恭介

• 次期学習指導要領についての中央教育審議会答申(平28)

• プログラミング教育

• コンピュータに意図した処理を行うように指示することができるということを体験

• 時代を超えて普遍的に求められる力としての「プログラミング的思考」などを育成

• プログラミング的思考

• どのような動きの組み合わせが必要か、どのように組み合わせるか、どのように改善するか →これを論理的に考える力

1. 研究背景 > 文部科学省

引用:文部科学省-幼稚園、小学校、中学校、高等学校及び特別支援学校の学習指導要領等の改善及び必要な方策等について(答申)   http://www.mext.go.jp/b_menu/shingi/chukyo/chukyo0/toushin/1380731.htm

• 「プログラミングの人材育成に関する調査研究」(平27)

• プログラミング人材育成

• 高度な技術者を直接的に育成しようとするものではない

• 将来の高度ICT人材としての素地の構築・資質の発掘を図るもの

• 「若年層に対するプログラミング教育の普及推進」事業(平28~)

1. 研究背景 > 総務省

引用:総務省-若年層に対するプログラミング教育の普及推進事業について   http://www.soumu.go.jp/main_sosiki/joho_tsusin/kyouiku_joho-ka/jakunensou.html

• 「第4次産業革命への対応の方向性」(平28)

• 情報・データやITを使いこなす力

• アルゴリズムの意義の理解やプログラミング、データに基づく分析等に関する学習

• 授業の場にとらわれず、民間の「アダプティブ・ラーニング」の取り組みとも連携

• 公教育と民間の知見の連携

1. 研究背景 > 経済産業省

※アダプティブ・ラーニング:個々にあった学習を提供する仕組み

1. 研究背景 > IT人材不足

• 人口は減少 しかしITの需要は上昇• 人材不足:17.1万人(2015) → 78.9万人(2030)

引用:経済産業省-IT人材の最新動向と将来推計に関する調査        http://www.meti.go.jp/press/2016/06/20160610002/20160610002.html

• CoderDojo• ボランティアで子どもにプログラミングを教える活動

• 子どもの活動をボランティアが手助けする

• Scratch、HTML、JavaScript、Arduino、RaspberryPiなどなど

• CoderDojo中新田を主催

1. 研究背景 > 民間のプログラミング教育

段階的なプログラミング学習教材が必要

1.2. 研究目的と概要

• 小学生からの段階的なプログラミング学習教材

• 中学生向けの応用的なプログラミング学習教材

1.プログラミング言語・開発環境の調査

2.プログラミング学習教材の開発

3.プログラミング学習教材を用いた実践

2. プログラミング教育について• 仙台市の中学校技術科教員へのアンケート

2. プログラミング教育について• 仙台市の中学校技術科教員へのアンケート

2. プログラミング教育について• 仙台市の中学校技術科教員へのアンケート

• 様々な開発環境・言語を調査

• C言語、VisualBasic、Basic、HTML、Scratch、プログラミン、Ruby、Python、JavaScript、Arduino、Processing …など

• 以下のような条件で勘案

• フィードバックがし易い

• 入手が簡単

• 開発環境のセットアップが簡単

• 指導者、児童生徒の学習コスト

• 条件を満たすもの6つを選定

3. 開発環境・言語の調査

3. 開発環境・言語の調査

Processing SmallBasic Minecraft

Arduino Scratch プログラミン

3. 開発環境・言語の調査

Processing SmallBasic Minecraft

Arduino Scratch プログラミン

3. 開発環境・言語の調査 > Minecraft• 環境:Mac/Linux/Win

• 言語:LuaScript

   (ComputerCraft)

• 3D仮想空間で自由に探検し、木材・鉱石等の建材を集め、建築を楽しむ事ができる

• 有志による拡張機能(MOD)の開発が盛ん

• ComputerCraftというMODではロボット(タートル)をプログラミングして、プレイヤーの作業を代行させられる

3. 開発環境・言語の調査 > Arduino

• 環境:IDE-Mac/Linux/Win    Arduino互換筐体が別途必要

• 言語:C言語ベースの    簡易言語

• 開発環境ArduinoIDEが無料で使える

• 簡単なプログラムで電子工作をすることが可能

• 簡易的に電圧を測ることもできる

• USB電源かDC5Vで動く

• 無料シミュレータもある(Circuits.io、UnoArdsimなど)

3. 開発環境・言語の調査 > Scratch

• 環境:ブラウザ

• ビジュアルプログラミング言語

• MITラボで制作

• 命令や制御のブロックを組み合わせるだけで、プログラムが組める

• ゲームやアニメーションなどを作りながらプログラミングが学べる

• オープンソースでiOS版があったりと派生も多い

Processing SmallBasic Arduino(ArduinoIDE)

Minecraft(CCEdu)

Scratch プログラミン

分類 Java(スクリプト)

VBScript(スクリプト)

C言語

(スクリプト)LuaScript

(スクリプト)ビジュアル

プログラミングビジュアル

プログラミング

得意分野

ビジュアルグラフィック

ゲームツール

電子工作 ゲームの補助ゲーム

アニメーションゲーム

アニメーション

価格 無料 無料 筐体:2000円~シミュレータ:無料

約120円/月(1クラス30人分)

無料 無料

空間 仮想(2次元) 仮想(2次元) 実物(3次元) 仮想(3次元) 仮想(2次元) 仮想(2次元)

データ型指定 要 不要 要 不要 不要 不要

コード 長め 長め 短い 短い 短い 短い

自動補完

無 有 無 有 ブロック ブロック

3. 開発環境・言語の調査 > 比較

Processing SmallBasic Arduino(ArduinoIDE)

Minecraft(CCEdu)

Scratch プログラミン

分類 Java(スクリプト)

VBScript(スクリプト)

C言語

(スクリプト)LuaScript

(スクリプト)ビジュアル

プログラミングビジュアル

プログラミング

得意分野

ビジュアルグラフィック

ゲームツール

電子工作 ゲームの補助ゲーム

アニメーションゲーム

アニメーション

価格 無料 無料 筐体:2000円~シミュレータ:無料

約120円/月(1クラス30人分)

無料 無料

空間 仮想(2次元) 仮想(2次元) 実物(3次元) 仮想(3次元) 仮想(2次元) 仮想(2次元)

データ型指定 要 不要 要 不要 不要 不要

コード 長め 長め 短い 短い 短い 短い

自動補完

無 有 無 有 ブロック ブロック

3. 開発環境・言語の調査 > 比較

• 4つの言語及び開発環境の教材を作成

4. 教材の作成と検討

Scratch プログラミン Arduino Minecraft

内容 ネコからにげるゲーム

せんすいかんを動かす

信号機をつくる

タートルでライフハック

段階 基礎 基礎 応用 応用

設定した対象 小学校高学年

小学校中~高学年

中学校 中学校

想定時数 2 2 8 6

Scratch プログラミン Arduino Minecraft

内容 ネコからにげるゲーム

せんすいかんを動かす

信号機をつくる

タートルでライフハック

段階 基礎 基礎 応用 応用

設定した対象 小学校高学年

小学校中~高学年

中学校 中学校

想定時数 2 2 8 6

• 4つの言語及び開発環境の教材を作成

4. 教材の作成と検討

4. 教材の作成と検討 > Scratch

• ネコから逃げるゲーム

• ネコは壁で反射し、ネズミはマウスポインターについてくる

• 指導者と同じものをつくり、最後にプログラムを改造して自分だけのゲームにする

• 「ずっと」というループ構文、「もし」構文の条件分岐までを指導

Scratch プログラミン Arduino Minecraft

内容 ネコからにげるゲーム

せんすいかんを動かす

信号機をつくる

タートルでライフハック

段階 基礎 基礎 応用 応用

設定した対象 小学校高学年

小学校中~高学年

中学校 中学校

想定時数 2 2 8 6

• 4つの言語及び開発環境の教材を作成

4. 教材の作成と検討

4. 教材の作成と検討 > Minecraft

• Minecraftを用いて教材を作成

• LuaScriptで簡単なコードを書く例:turtle.digDown()   下を掘れ

• Minecraftの世界で生活しながらロボットの使い方を覚える教材

プログラミングの画面

教材 - 採掘

建材集め用 採掘プログラム

教材 - 伐採引数:高さの違う木に対応するために   引数をとる

関数:似たような動作が何度も含まれ   るため、関数にまとめる

4. 教材の作成と検討 > Minecraftの検討

• コードは短いがコードを書いている手応えはある

• オートコンプリートで間違いなく書ける • 行番号でエラー表示が出るのでデバッグがし易い

• 暴走しないように負荷がかかると自動で落ちる

• コードが長くなる際はコードエディタを使っても記述できる

5. 実践とその検討

IT講習会 CoderDojo 授業実践1 授業実践2 個人指導

対象 大学生 小学生 大学生 大学生 大学生

人数 18名 2名 10名 10名 5名

使用教材 Scratch Scratch Scratch Arduino Minecraft

5. 実践とその検討

IT講習会 CoderDojo 授業実践1 授業実践2 個人指導

対象 大学生 小学生 大学生 大学生 大学生

人数 18名 2名 10名 10名 5名

使用教材 Scratch Scratch Scratch Arduino Minecraft

• 「教育と情報システム論」での実践

• 情報ものづくりコース1年生10名

• Scratchの教材を用いて指導

• プログラミングの経験は殆どなし

• 完成後、30分程度の自由に改造する時間を設ける

5. 実践 > 授業実践1(Scratch)

5. 実践 > 授業実践2(Arduino)

• 「教育と情報システム論」での実践

• 情報ものづくりコース1年生10名

• Arduinoの教材を用いて指導

• 信号機を再現する教材

• Scratchで学習した基礎的な知識を活かして指導

5. 検討 > 授業実践(ScratchとArduino)難易度はいかがでしたか?

とても難しかった

難しかった

普通簡単

すごく簡単

0 2 4 6 8

ScratchArduino

なにか自分でも作ってみたいと思いましたか?

全く思わなかった

あまり思わなかった

どちらとも言えない

すこし思った

とても思った

0 2 4 6 8

ScratchArduino

• Scratch• プログラミングの要素を簡単に学習できた

• 自分で新しいものを作り始めた学生もいた

• Arduino• 身近な題材に親近感を持った

• 個人環境で実践したためトラブルが発生  →環境について再考

5. 検討 > 授業実践(ScratchとArduino)

5. 実践 > 個人指導(Minecraft)

• コーディング経験の無い学生5名が対象

• 教材を用いてプログラミングの指導を1対1で実施

• 主要なメソッド、変数、for文のループ、if文の条件分岐を指導

• 課題に沿って自分でプログラミングを行わせる

5. 検討 > Minecraft

• プログラミング初心者でも1~2時間で自分で記述できるようになった

• 全員コーディングに没頭していた

• 課題だけでなく、自分でなにか新しいものを作りたいという意見が出た(4/5名)

• 使った教材は興味関心をひくものであった

• 次期学習指導要領が出た後、教材を再考

• 中学校でこの教材を実施する場合 →実物が使えるならArduino、  パソコン内で完結したい場合はMinecraftなど

6. 結論 > プログラミング教育

6. 結論 > 今後の展望

• 作成した教材の修正

• 今回教材を作成できなかった言語の教材作成

• Processing:アニメーションやインタラクティブアート

• SmallBasic:ツールやゲーム(サイコロ、ピアノなど)

• 教育現場での継続した教材研究