プログラミング教育の
基礎知識
Ver1.0
平成29年7月29日(土)
前佛 雅人 (@zembutsu)
「プログラミング教育」議論の土台にしたい
 2017年3月に文部科学省から公示された新学習指導要領
では、小学校でのプログラミング教育が始まることが明確化。
 しかり、現状では「プログラミング言語のみを教育で学ぶ」ような
誤解も多く、健全な議論が行われているとは考えづらい状況。
 そこで、様々な議論の土台となるよう、新学習指導要領や関
連資料から、プログラミング教育に関する重要なポイントや海
外の動向を取りまとめた資料を公開・共有いたします。
この資料の作者:前佛 雅人 について
 さくらインターネット株式会社 技術本部ミドルウェアグループ
石狩市への小学校プログラミング教育支援プロジェクト、
クラウドチーム、VPSチーム、エバンジェリストチーム 所属
この資料の
位置付け
“
新学習指導要領における
プログラミング教育とは?
3
プログラミング的思考を育む
プログラム言語を習得するのではなく、
思考の論理性を明確にするため
4
プログラミング教育
の位置付け
5
新学習指導要領
情報活用
能力
言語能力
問題発見・
解決能力
基礎となる
資質・能力
 知識・技能
 思考力・判断力・表現力等
 学びに向かう力・人間性等
児童の日々の学習や
生涯にわたる学びの基礎
プログラミング教育
の位置付け
6
新学習指導要領
情報活用
能力
児童の日々の学習や
生涯にわたる学びの基礎
言語能力
問題発見・
解決能力
基礎となる
資質・能力
情報を得る 整理・比較 発信・伝達 保存・共有
活用手段
 基本操作習得
 プログラミング的思考
 情報モラル
 情報セキュリティ
 統計等
プログラム言語の習得ではなく
「考え方」の習慣を取り入れる
 日々の学習や活動における、問題解決のため
 ただ単にコンピュータを扱うのが目的ではない
プログラミング的
思考とは何か?
7
シーケンス
料理を作る手順のように
順番通りに処理をするプログラミング的
思考の4要素
パターン
類似性や型の発見から、
複雑な問題を解決する
8
データ構造
効率よくデータを利用する
ための整理ルール
アルゴリズム
問題を解くため手順や
解決方法
“
なぜプログラミング教育を
小学校で行うのか
9
初等中等教育におけるプログラミング
教育の必修化を明言
 情報活用能力の育成・教育環境の整備
 発達の段階に即して実施
第26回
産業競争力会議
2016年4月19日
10
平成28年 第26回産業競争力会議
http://www.kantei.go.jp/jp/singi/keizaisaisei/skkkaigi/dai26/gijiyoushi.pdf
英国(イングランド)
 5~16歳の義務教育で公式必修カリキュラムに導入
(2014年9月~)
 従来の「ICT」授業から「Computing」授業へ
 CS(コンピュータ科学)、IT(情報技術)、DL
(デジタル・リテラシー)の3分野で構成
 プログラミングは CS に含まれ、アルゴリズムの理解、
プログラムの作成なども含む
 授業は1時間/週(約30時間/年)
プログラミング教育
国際情勢
11
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
韓国
 2007年から中学・高校でプログラミング教育を実施し、
情報科学を重視
 大学入試科目が存在しないため、履修者は少ない
 あらゆる学問分野の発展に必要な手法であるとして、
コンピューティショナルシンキングを導入
 情報教育とは別にITCリテラシ教育を実施
 2017年3月から、初等教育で「ソフトウェア」が正規
の教育課程に
プログラミング教育
国際情勢
12
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
台湾
 2011年から「情報」に関するカリキュラムを実施
 「自然と生活の科学技術」の学習領域に含まれる
 必修科目ではない
 小学校ではプログラミング教育はなく、情報モラルに
関する教育が主
 中等教育から「プログラミング言語の基本概念とその
機能の理解」が含まれている
プログラミング教育
国際情勢
13
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
香港
 小学校ではプログラミング教育は行われていないが、
情報リテラシに関する教育は行われている
 中学校ではプログラミング教育が導入され、必修科目。
プログラミングの基礎として、変数、演算子、フロー制
御文やループなどの構文や、プログラミング言語として
LOGO、BASIC、Pascal、Java、C++、Visual
Basic等の教育も行っている
 高校では選択教科であり必修ではない
プログラミング教育
国際情勢
14
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
シンガポール
 初等教育ではプログラミング教育は実施されていない
 学校によっては応用クラス、副カリキュラム、クラブ活動
としてプログラミングの場を設けている
 中等教育では、普通校技術系コースでは
「Computer Applications」が必修
プログラミング教育
国際情勢
15
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
インド
 2005年の全国方針として、「数学」の範囲として
「Computer Science」(コンピュータ科学)を設け
ている
 初等教育でLEGOを用いた図形描画、中等教育で
はQBasic、Visual Basic、C++、Java等のプログ
ラミング言語を教えている
 インドは連邦共和制のため、実際には各州ごとに学
校制度やカリキュラムが異なる場合がある
プログラミング教育
国際情勢
16
諸外国におけるプログラミング教育に関する調査研究
http://jouhouka.mext.go.jp/school/pdf/programming_syogaikoku_houkokusyo.pdf
“
有識者会議の取りまとめ解説
17
18
http://www.mext.go.jp/b_menu/shingi/chukyo/chukyo3/074/siryo/__icsFiles/afieldfile/2016/07/07/1373891_5_1_1.pdf
プログラミング教育で目指す資質・能力 19
知識
技能
学びに
向かう力
人間性
等
思考力
判断力
表現力
等
身近な生活でのコンピュータ
活用や、問題解決には手順
が必要と気づく
コンピュータの働きを、よりよい
人生や社会作りに活かす
発達の段階に即して、
「プログラミング的思考」を
育成すること
プログラミング教育と
プログラム的思考
プログラミング教育
 コンピュータを意図した
通りに動かせるように、
指示する体験
 将来どのような職業でも
時代を超えて普遍的に
求められる力としての
プログラミング的思考
を育成
プログラミング的思考
 自分が意図する活動を実現
するために、論理的に考えて
いく力
 問題解決に「どのような組み
合わせ」が適切なのか
 「組みあわせを改善するには」
20
“
新しいコンピュータの利用
21
IoT(アイオーティー)
モノのインターネット
22
Internet of Things
 様々な物がインターネットに繋がる
 一般的に様々なセンサーや家電
などがネットとつながり、クラウド上
にデータを保管
 機器同士が通信
(例:見守りポット)
 パソコンを通さない新しいインターネット活用。クラウド
技術と組みあわせることで、既存の産業やサービスの
枠組みを良くするような動きもある
インターネット・オブ・シングス
AI・機械学習
深層学習
23
機械学習
 人間が自然に行う学習
能力と同等の機能を、
コンピュータで実現しよう
とする技術・手法
深層学習
 機械学習の手法の1
つであり、汎用的な人
工知能の実現が期待
 将棋、チェス、囲碁
AI(人工知能)
 広義には人工的にコンピュータ上などで人間と同等の知能を
持たせようとする試み
 機械学習、深層学習の発展により、AIと同じように語られる
ことも
マシンラーニング ディープラーニング
フィンテック
ビットコイン
24
フィンテック
 金融(ファイナンス)と
情報通信技術(テクノロ
ジー)を組みあわせた新
しいサービスや金融商品
 例:仮想通貨技術
ビットコイン
 仮想通貨技術の1つ
 インターネットを通した決
済網および暗号通過
 現実世界における金や
信用を基盤とせず、計
算機能の提供(通信
のやりとりを仲介)を価
値に置き換える
“
ここまでの
まとめ
25
プログラミング教育の
基礎知識
26
プログラミング教育は、体験を通し
プログラミング的思考を育むため
 プログラム言語の習得ではなく「考え方」の習慣を取り入れる
 「シーケンス」「パターン」「データ構造」「アルゴリズム」の要素
 世界各国でプログラミング教育の流れが進んでおり、
日本は立ち後れている
 新しいコンピュータの利用が進んでいる

プログラミング教育の基礎知識