[プログラミング教育] 望ましいプログラミング教育政策と方向 | _

_

_

 

望ましいプログラミング教育政策と方向


  プログラミング教育は、目的から明確に定立すべき




 

どんな教科であれ、教育の目的が何であり、対象を誰に設定するかが明確に定立された後に、教育の政策と詳細な施行計画を立てることは当然のことである。 あわせてソフトウェアのように実用的価値が中心となる教科目は、必ず市場のニーズと最新技術を十分反映して教育政策と細部計画を立てなければならない。

このような観点から、今後実施されるプログラミング教育政策は、教育を実施する目的に応じて「ソフトウェア専門教育」と「ソフトウェア普遍教育」に分け、それぞれ教育目標や実施方法などを定めるべきである。

まるで体育で目的によって専門体育と社会体育の政策に区分して施行する論理のようだ。 まず専門体育は地方や全国規模体育大会を通じて資質と能力に優れた選手を選抜し、泰能選手村などの専門施設で多くの予算と資源を投入して、最新の科学的技法まで駆使して人間の限界を克服し、最高記録を更新して優勝できるようにすることを最終目標に政策を運営している。

反面、社会体育は、一般国民の体力向上、健康増進、幸せな暮らしを実現するために役立てることが目標である。 そのため、限界に挑戦する記録達成や優勝が目的ではない。 したがって、投入する予算や管理努力、反復練習の内容も、専門人対象の体育とは、すべて根本的に異なる。

このように、ソフトウェア 教育も、最初から徹底的に資質と適性を有する少数の専門人を選抜し、その対象と目的に合った教育と訓練を行う「ソフトウェア専門教育」と、社会の多様な分野と階層で働く一般人を対象とする「ソフトウェア普遍教育」と徹底的に区分し、その対象と目的に合った政策を立てるのが不可欠である。


  ソフトウェア専門教育は、選抜体制の確立が重要





 

ソフトウェア専門教育は、対象学生を選抜することから普遍教育とは異なるべきである。 彼らはソフトウェアやコンピューター技術分野に関心があり、かなりの適性と資質を持っている学生の中で職業体験学習などを通じて自ら体験し、将来進路をこの方向に希望する学生を対象に教育を実施するのが望ましいと言える。

したがって、専門教育の成否はソフトウェア分野に適性と資質を持っている学生を早期に発掘して選抜することが最も重要な政策の着眼点といえる。 まるで、体育界が各学校の校内運動会、町民体育祭や地方体育大会、全国体育大会、各種目別の選手選抜大会などを多様な大会と競合し、身体的資質と適性に恵まれた選手を早期に発掘·育成するように、ソフトウェア分野でも資質と適性を持って生まれた人材を選抜する多様な方法と制度を研究·開発しなければならない。 事実、ソフトウェア分野においては、学生が生まれながらの資質と適性を見つける機会がほとんどなく、国·社会的にもそのような人材を発掘·育成する制度も皆無の状態である。 今後、国レベルでソフトウェア人材を早期に発掘する方法を研究し、多様な発掘機会や選抜大会などの制度を設けることが急務といえる。

このような過程を経て選抜された適性と資質のある学生には、スクラッチなどブロック型ツールの使い方のような中途半端なカリキュラムは必要ない。 最初からコンピューティングアーキテクチャやプログラミング原理などを教え、すぐにC、Java、HTML、JS などのランゲージを教えながら、各言語が提供した文法に従って演算処理・比較判断・分岐処理・反復処理などのコンピューティング基礎アルゴリズムを自然に習得できるようにすることが、最も望ましい学習方法であるといえる。

続いて、CPU、RAM、Disk などハードウェア装置の構造と動作方式、オペレーティングシステムの構造と機能とサービス、ネットワーク装置と通信プロトコルなどを学習させ、この技術要素と連携したプログラミング言語駆使能力を学習するよう指導する必要がある。

このような過程を通じて将来オペレーティングシステム、プラットフォーム、DBエンジン、著作ソリューション等のシステムプログラムを設計·開発する専門家として養成していくことが、我々もソフトウェア強国になれるようなタレントプールを確保する戦略になるだろう。

 



 

  ソフトウェア普遍教育は、活用能力の培養が目標



反面、すべての学生を対象とするソフトウェア普遍教育は、最も効率的で進歩したソフトウェア工学技術と著作ソリューションを採用し、ソフトウェアの有用性や適用効果を体験できるようにし、学生が自ら具現化する対象を見つけ出し、実際にソフトウェアを設計·実装する方法と全体の過程を身につけさせる教育が良いだろう。

そして、このように体得したソフトウェアの実体性と実装過程についてのノウハウをもとに、関心のある教科の理論や将来希望する職業で求められる現実的問題を抜粋して学習テーマに設定し、複数人でチームワークを成して必要な知識と情報を集中的に調査分析し、実際にその問題を解決できるソフトウェア製品を作り出す過程を学習することが、最も望ましいといえる。


したがって「ソフトウェア普遍教育」は人工知能など先端技術を採用し、学んで使うことは非常に易しく、実際使用が可能なソフトウェア製品や実用的な成果物を作り出される著作ソリューションを採択することで、コンピューター内部の構造や処理アルゴリズムなどのように現実世界に適用することもできない抽象的な概念教育ではなく、ソフトウェア技術を直接活用して私たちが生きる世の中の現実的な問題を解決できる経験とノウハウなどを体得できるようにすることが、ソフトウェア普遍教育の目標とすることができる。

それにもかかわらず、現在我々のソフトウェア普遍教育政策の方向は、あたかも専門技術者の養成が目標であるかのように、それに類する教育目標とカリキュラムとして進められている。 ただ、学ぶべきコンピューティングアルゴリズムやコーディング論理が容易ではないため、内容やレベルを簡略化させて教えようと試みている。 この場合、真の世の中の問題を解決する手段としてソフトウェア に対する知識やノウハウの確保も難しく、実際のプログラムをコーディングする能力も確保できず、実際の社会生活ではほとんど活用する場もないコンピューティングアルゴリズムやロジックを学ぶ結果にとどまる可能性が非常に高い。