小学生の息子にプログラミング教育をしてみる

2020年度からプログラミング教育が始まります。
息子が小3なので非常に気になる話題です。

僕と同じように気になって調べている親御さんも多いかと思います。
そんな方にも参考になれば・・と書いてます。

ざっと調べたところ

  • 2020年にセンター試験が終了
  • 2021年から大学入学共通テストが開始
  • それに伴い、プログラミング等「情報科目」が追加される
  • 2020年には小学校でプログラミングが必修化
  • 2021年には中学校でプログラミングが必修化
  • 2022年には高等学校でプログラミングが必修化

 

ということでした。
流れはわかったのですが、具体的な内容はわかりません。

わからないですが、とりあえず話を進めます。

 

子供がプログラミングをする事に対する私見

そもそも「子供の頃からプログラミングをする」という行為はあまり意味が無い・・と思っています。

理由としては

  • プログラミングのスキルはプログラマー以外の職業ではあまり必要とされない
  • 子供たちの大半はプログラマー以外の職に就く
  • 運動系の職業と違って、子供の頃から取り組まなくても習得は可能
といったところです。
ただ、「プログラミングのスキルを習得する」という目的ではなく、「別の目的」を設定すればアリです。
「別の目的」は後述します。
プログラミング教育では何をするの?

 

文部科学省のHPを更に見てみます。
色々と難しい言葉で書かれていますが大筋としては、

  • 特定のプログラム言語を習得するわけではない
  • 「プログラミング」という科目が増えるわけではない
  • 他の科目に「プログラミング的思考」を養う内容を組み込む
  • 「Scratch」「Viscuit」等、ビジュアル型プログラミング言語を使う

僕は上記のように理解しました。

つまり実践的なプログラミングのスキルを習得するのではなく

「プログラミング的思考」を身につける事を目的としている

と読み取れます。

プログラミング的思考

 

「プログラミング的思考」って何?

【「プログラミング的思考」とは】
有識者会議「議論の取りまとめ」において「プログラミング的思考」は、
「自分が意図する一連の活動を実現するために、どのような動きの組合せが
必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたら
いいのか、記号の組合せをどのように改善していけば、より意図した活動に
近づくのか、といったことを論理的に考えていく力」

       小学校プログラミング教育の手引 (文部科学省)より引用

文部科学省からは以上のような説明がありました。

要するに「論理的に考えていく力」を身につければ「プログラミング的思考」が育まれる・・といった内容です。

うーん。「論理的に考えていく力」って、算数や国語からすでに得ることが可能と思います。
「プログラミング的思考」という言葉をつくる必要があるのだろうか?

というのが率直な意見です。

乱暴な言い方をすれば「セールスワード」ではないかと。
これからの時代に合わせて、より強調したい・・という事なのかな。

「Scratch」はアリか?

 

  • 「Scratch」「Viscuit」等、ビジュアル型プログラミング言語を使う

とあります。

世間的にはおそらく「Scratch」が有名ですので、僕が考える

初めてのプログラミングに「Scratch」を使うメリット・デメリット

を書きだしてみます。

アメリカ・マサチューセッツ工科大学のメディアラボが無償で公開しているビジュアル型プログラミング言語。画面上のブロックをつなぎ合わせてプログラムを作る。日本語でも使用可能。主にマウスを使用するため、キーボード操作に不慣れな小学生でも利用することができる。

 

「Scratch」のメリット

コードを書くことが無く、ブロック群を中央のコーディングエリアで組み合わせてプログラミングを行うため、遊びながら「論理的な思考力」が育む事が可能。

「Scratch」のデメリット

「Scratch」を勉強しても本職のプログラマーにはなれない。
むしろどこかで卒業する必要がある。

 

将来プログラマーという職業を目指すか目指さないかで見方が変わってくるかと思います。

個人的には、小学生でも「プログラマーになりたい!」という明確な意思があるのでしたら、普通にRubyPythonSwift等の自分の目的に合った言語でコードを書けば良いと思います
敷居は高いですが、本気になった小学生の力をナメてはいけません。

  • プログラマーの職を選択するのでしたら「Scratch」はナシ
  • 今は特にプログラマーを意識していないのなら「Scratch」は経験としてアリ
です。
「Scratch」は自転車の補助輪

僕の子供時代、自転車の練習方法は

  1. 補助輪を取り付けて練習する
  2. 慣れてきたら片方をはずして練習する
  3. 補助輪無しで練習する

という流れが一般的でした。

現在は「補助輪付き自転車に乗れる」ようになってから「自転車に乗れる」ようになる・・・という2段階にしないで「補助輪はつけずに最初から2輪で練習すべきだ」という考え方の方が増えているように感じます。

僕もその考え方に賛成です。
そしてプログラミング学習にも適用出来ると思います。

つまり「Scratch」を補助輪として考え、プログラミングを覚えるなら「Scratch」を利用せず、最初から必要な言語を覚えるべき・・という事です。

息子に実際に体験してもらってみた

最近、息子は学校で将来の職業を「プログラマー」と書いたそうです。

それならば実際のプログラム学習を体験してもらいたい。

 

目的を設定する

体験すると言っても参考書を買ってきて、指示通りにコードを書き始めても意味がありません。

まず、目的を設定します。
前述した「別の目的」の事です。
それは

  • 自作のWEBブラウザやアプリを公開すること

上記を目標として設定します。

「自作のWEBブラウザやアプリを公開する」ことを目的と設定して取り組むことにより、プログラム習得のみにかたよらず、実務に役立つ様々な経験を体験出来ると思います。

途中で挫折したとしても経験したことは残ります。

 

小学生がプログラムを学ぶ手段

では、具体的にどうやってプログラムを学ぶか調べます。
小学生向きのプログラミング教室は市内にいくつかありますが、全てビジュアル型プログラミング言語を使用しています。

今回は大人向きプログラミングの習得手段を探してますので、教室はあきらめてネット上のサービスを検討しました。

  • Progate
  • ドットインストール

これから始める初心者には上記のサービスが良さそうです。
サービス内容をここで紹介すると長くなってしまうので、使用感も併せて別記事にしようと思っています。

 

利用サイト・学ぶ言語を確定

Progateで「HTML&CSS」を学ぶ

と決めました。
理由を簡単に書くと

  • Progateは、サイト上でコードを書くため、環境を構築する必要が無い
  • 「HTML&CSS」は、プログラムとしては最も簡単な部類

です。
「HTML&CSS」の習得は、PC操作にも慣れるという意味合いもあります。

さっそく登録して始めてもらいました。

1か月やってみた(現在進行中)

この記事を書いている段階で、息子がProgateを利用し始めて約1か月。
ちょこちょこと声をかけつつ進めてもらってます。

進行状況は初級が終わり、中級コースに入ったところ。
課金を始めました。

まあまあ順調なんじゃないでしょうか。

やり始めはキーボードも使えませんでしたが、段々と配置を覚えコピー・ペーストのショートカットも使うようになりました。

 

今後の方針

  1. HTMLをある程度進めてもらってから簡単なWEBページを作成。
  2. このまま続けてみるか意思の確認
  3. iOSアプリ(Swift)かPCゲーム(Unity)のどちらかを挑戦してもらう

上記の展開を考えてます。

「Unity」はゲームエンジンですが、言語の習得自体にはあまりこだわっていないので問題ないです。
大人が実際に使うツールを触ることが重要かと。

 

努力に慣れ、自分の基準値を上げてもらう
  • 2020年度から始まるプログラミング教育についての私見
  • 実際に息子にプログラミングを習ってもらう

上記の内容を記事にしました。

学校での教育で「Scratch」を使用するのは良いと思います。
しかし本気でプログラマーになりたい子供達には、現場で使えるものをそのままチャレンジしてもらった方が良いのでは・・?という事です。

息子にProgateで学んでもらっていますが、途中でわからなくなっても前のチャプターに戻ったり、ググったりしてなんとか解決しようとしています。
ぜひ、コツコツと続けていって欲しいと思っています。

プログラミングの状況は、また進展があったら記事にします。

この記事を書いた人

田舎で子育てと父の介護をしていたアニメーターです。子育ては現在も進行中。家から出られないのでブログ・アフィリエイトを始めました。今までの人生で得た知識や技術をアウトプットする雑記ブログです。東京でアニメーション会社に就職→フリーランス→田舎へ戻って子育てしながら仕事→父の介護開始→数年続いた介護が終了しました。アニメ業界の末端でひっそりと生きてます。

目次