今回は、フランスのプログラミング教育について取り上げてみます。
フランスでは、現在のところ15才から17才までの後期中等教育一般コースと技術コースにて、アルゴリズムとプログラミング教育が行われています。
独立の教科ではなく、教科「数学」の一部として、数学教員が教えているとの事。
数学の一部なんですね。
初等教育及び中等教育については、現在議論がなされている状態で、2016 年から 2018 年にかけて徐々に実行される予定なのだそうです。。
初等教育のアルゴリズムとプログラミング教育について、教育省から発表された基本的な考え方は、以下のようになっています。
「個人として成長し、社会的スキルを発達させ、生涯にわたって学び続けるために、また、どのような職業を選ぼうとも、進化する市民として社会に参加するために必要な基本的な知識と技能、共通の文化を生徒に与える「技能と文化の知的共通基盤」の一つとして、「科学的言語を用いること」。
これらの知的共通基盤は確実に国の基準点となり、現代社会における教育の目的を定義するものであり、学校で全ての生徒に教えるべきものである」
この「科学的言語」の中にプログラミング言語やアルゴリズムも含まれています。
「確実に国の基準点となり」という言葉には、強いメッセージが込められていますね。
この内容からは、どんな仕事についてもプログラミングを身に付けていれば、成長し続ける市民になりますよ!という解釈ができます。
そうした市民を増やすために、初等教育の全生徒にプログラミング教育を施していく様子が伺えます。
初等教育でのプログラミング教科の実施は、もう少し先のようなので、現在行われている後期中等教育についてのぞいてみます。
例えば、アルゴリズムの授業での目標は、
「自然言語または記号言語でアルゴリズムを開発する」
「表計算ソフトまたは適当なソフトウェアで実行する小規模なプログラムを使ってアルゴリズムを実行する」
「より複雑なアルゴリズムを理解するようになる」
という 3 点があげられており、高度な教育が施されている事が分かります。
とはいえ、数学教員が教えるべきか、あるいは専門的な教員が教えるべきかについては、問題となっており、数学教員の人材不足があげられています。プログラミングを教えられる先生は少ないとの事。
気になるカリキュラムの内容ですが、コンピュータサイエンスの分野、すなわちアルゴリズム入門、プログラミング言語、コンピュータアーキテクチャ、アプリケーション、セキュリティなどを対象とされています。
アルゴリズムに関する記載が多くみられることから、重点教科であると思われます。
政府が推奨している教育ツールは、以下。
プログラミング言語:Python、Scilab
Wiris:HTML ベースの JavaScript のツール。
Xcas:コンピュータ代数、幾何学、表計算、統計を表現できるインタフェース。
Java’s Cool:プログラミングの基礎を学べるソフトウェア。
Alice:カーネギーメロン(Carnegie Mellon)大学が開発、提供する 3D プログラミング教育ツール。
教育を実施し、スキルを習得したかどうかの評価方法についての記載がありました。
こちらはアルゴリズム技能の評価方法です。
■アルゴリズム技能
評価する技能
(1)学習した状況を分析する。(自然言語)
(2)アルゴリズムを開発する。
(3)アルゴリズムを検証する。(与えられたアルゴリズムを理解、分析する。アルゴリズムを検証する)
(4)手法と結果を発表する。
基準・指標
(1)課題の調査とアルゴリズム開発の検討。(解決手法の提案。アルゴリズム的手法を自然言語で概説する)
(2)アルゴリズム構成の決定。(入力データ、出力結果、変数の特定。作業の論理シーケンスの決定。作業の種類毎に的確な処理を決定する。(シーケンシャル、条件付き、反復))
(3)関連する解法の検証。(検証の実行。誤りやバグの発見。処理の完了の確認)
(4)アルゴリズムの適切な修正。(誤り修正。改善の提案)
(5)制作物の設定。(入出力のユーザーインタフェースの利便性、明確性。必要な作業が整理され、理解しやすい報告。アルゴリズム開発に必要な全ての情報の準備)習熟レベルと自主性の度合い
(1)生徒が矛盾のない解法を提示する。自発的に解決法を提案する。教員が与えた指針を課題に反映する。
(2)入出力、変数が分かる。生徒だけで処理構成を決定する。
(3)自発的に制御要素を選択する。教員の指示に従って誤りを修正する。誤りとその修正の特定方法が分かる。
(4)要求された拡張機能を自発的に示す。
(5)制作物には関連する入力、プログラム操作を理解するためのコメントが含まれている。インタフェースやコメントに可読性がある。
ただアルゴリズムを学習するのではなく、使い勝手がいいか(インターフェース)、解決案を発送するなど、実践的な内容となっています。なんだかすごく難しそう。
今後、フランスのプログラミング教育について解決すべき問題点は、2点でした。
・プログラミング教育導入に関する議論が高まっているが、初等教育や前期中等教育レベルにコンピュータ分野の授業を導入するには、教員のトレーニングとそのトレーナーが必要であるという根本的な問題。
・フランスでは数学の教員の数が不足しており、現在後期中等教育での教科「Informatiqueet sciences du numérique」の授業の半数は物理や技術など他教科の教員が教えている。そのためプログラミングを教えられる人材がいない。
ここでもやはり人材不足が出ました。
フランスの小学校からのプログラミング教育はまだこれからのようです。
でも、日本よりも取組自体は進んでおり、目指している方向も高度な方に向かっています。