今回ご紹介する小・中学生向けプログラミング学習のカリキュラムは、私たちが運営するプログラミング教室で得られた知識経験を反映したものです。
目的や個人差によって変わるところはあるかと思いますが、参考にしてみてください。
※今回は「プログラミングを学習し続ける」という前提に基づきます。
小・中学生向けのプログラミング学習の範囲として、どこまでが適切か、というものを示すものではありません。
1. ロボットやタブレットの教材で学ぶ
小学校低学年の子どもは、ロボット教材やタブレットの教材アプリなど「できるだけわかりやすいもの」でプログラミングを学びましょう。
タブレットの教材アプリはScratch Jrというアプリが無料で使えてオススメです。
未来の天才プログラマーを育てるべく低学年の頃からプログラミングを本格的に学ばせたい!という方もいらっしゃるかもしれません。
しかしプログラミングを本格的に学ぶには、義務教育で身に付ける素養が必要となります。それらの素養が身に付く前に、プログラミングをやらせようとしてもプログラミングを理解できず逆効果となってしまいます。
まずは無理なく楽しめるやり方で、プログラミングの基礎が自然と身に付く教材を使って学習しましょう。
2. プログラミング学習ソフト「Scratch」で学ぶ
小学校中〜高学年の場合はこのステップからプログラミング学習を始めても大丈夫です。
このステップでは、米マサチューセッツ工科大学(MIT)が開発したプログラミング学習ソフト「Scratch」を使ってプログラミングを学習していきます。
Scratchは、子どもたちがプログラミングをしやすいように、わかりやすい画面デザインや親しみやすいキャラクターが使われるなど工夫されています。
Scratchはインターネットに接続されたパソコンがあれば誰でも無料で使うことができます。
学習ソフトとはいうものの、Scratchはプログラミング言語に分類される場合もあるほど本格的な作品作りをすることもできます。
Scratchを使ってゲームやアニメーションなどの作品を楽しく作りながら、プログラミングの概念や基礎知識を身に付けていきましょう。
3. HTML+CSS でホームページ作り
賛否両論ありそうですが、個人的にはScratchの次は、HTML+CSSでホームページ作りを学ぶのが良いと思います。
HTML + CSSで学ぶ良いところは「見た目」の変化がわかりやすいこと。
Scratchでキャラクターなどを動かすことに慣れた子どもには、パソコン上で入力したことによって見た目が変わるわかりやすさが必要です。
HTML + CSSは書き方のミスに寛容なところも良いところです。多少の記述ミスがあっても画面がしっかり表示されます。人によってはこの点をデメリットという方もいらっしゃるかもしれません。
先述しましたが、子どもにとってはミスも含めて見た目でわかりやすいことが重要だと考えています。本格的なプログラミング言語はミスをするとエラーメッセージしか画面上に表示されません。
記述ミス → エラーメッセージ、記述ミス → エラーメッセージ。これを繰り返すことで子どもが興味を失っていくのは自明です。本格的なプログラミング言語の厳格さは、子どもと相性がとても悪いのです。
その点、HTML + CSSはエラーメッセージがなく、例え記述ミスをしたとしても、わかりやすく見た目がおかしくなってくれます。
正しくても間違っていても見た目でわかりやすい、これがHTML + CSSで学ぶメリットです。
しかし良いことだらけにみえるHTML + CSSですが、厳密には「プログラミング」ではありません。「マークアップ」という分類になります。
それゆえにScratchで学んだことがほとんど活かせないというデメリットがあります。
それでもScratchの次にHTML + CSSを選んだほうが良い理由は、先述のようなわかりやすさに加え、ホームページ作成のスキルはどんな業種のどんな職業でも活かせるスキルだからです。
確かにHTML + CSSは、部分だけで見るとプログラミングとはいえず、プログラミング学習として組み込むことに疑問を感じるところはあります。
しかしプログラミング学習のカリキュラムとして全体を俯瞰してみた場合、このHTML + CSSのステップでは、コーディングを通じてキーボード操作に慣れたり、デザインを創造し構築する能力など、後に繋がるスキルを身に付けることができます。
4. JavaScript でプログラミング言語デビュー
JavaScriptは、HTML + CSSを操作するために使われるプログラミング言語で、今日では世界で最もニーズのある言語です。
HTML + CSSだけでは「見た目」しか作ることができませんが、JavaScriptを使うことでホームページ内の要素に「動き」などを与えていくことができます。
JavaScriptは、どんなパソコンにも最初からインストールされているWebブラウザ上で実行できるので、面倒な環境構築などの手間がかからず、実行結果をすぐにWebブラウザ上で確認できるのも良いところです(※プログラミング言語によってはプログラムの実行に時間がかかるものがあります)。
JavaScript は Scratchで学んだプログラミングの知識が活かせます。
HTML + CSS + JavaScript の組み合わせでできることは、Scratchでできることに似ています。
キャラクターを作ったり配置して(HTML+CSS)動かす(JavaScript)。
HTML + CSS + JavaScriptを、Scratchに置き換えるとこういうことになります。
5. Swift や Javaでスマホアプリ開発
最終ステップはiPhoneやAndroidで動くスマホアプリを開発します。
スマホアプリを開発するための言語(SwiftやJavaなど)や、ミドルウェアを使ったアプリ開発の考え方は、他のプログラミング言語やシステム開発などに応用することができます。
誤解を恐れずにいえば、スマホアプリが開発できるようになれば、プログラマーとしてどんな開発にも携われるようになります。
このステップまで学習を進められれば、自分のアイディアをホームページやアプリを使って製品・サービス化できるようになります。
例えプログラマーにはならなかったとしても、プログラミングを使ってどんなことができるか、何が作れるのかがわかっているので、企画設計やマネジメントなどに幅広く活躍できる人材に成長しています。
プログラミングを学習し続けた場合の終着点までカリキュラムを考えてみました。
この次ステップがあるとしたら、サービス設計やシステム開発といったステップになるかと思います。もはやプログラミング学習の範疇ではありませんね。
結局のところプログラミングは道具にすぎませんので、行き着く先は学んだ技術で「何をするか」というところになります。
今回紹介したカリキュラムはあくまで理想にすぎませんので、目的や個人差に合わせて適宜調整して参考にされてください。