さて、表題の件です。
読者様からご要望がありましたので我が家の事例を御紹介させて頂きます。
「こんな記事を執筆して欲しい」このような御希望がありましたら、お気軽に御連絡を頂ければ可能な範囲で対応させて頂きます。
必要な能力
実践的なプログラミングを行うにあたり、以下のような能力が必要になります。
ゲーム制作やラジコン操作においても座標計算、移動距離の計算などは頻出ですから、算数/数学の能力は必要です。
そもそもデータ処理は2進数で実行されていますから、数学の理解力がある事にメリットはあってもデメリットはありません。
また、プログラミングの本質とは 『論理の構築』 ですから、国語能力(論理)も重要になります。
言語化出来るかどうかが大事ですね。
Aという条件が満たされればBのスイッチが起動し、Bのスイッチが起動した事によりCが実行される。
プログラミングはこのような動作の繰り返しです。
データ通信プログラミングはまた少し違った側面もありますが、基本的には上で述べたように『論理の構築』です。
様々な能力が組み合わさり『プログラミング能力』を形成しているという事です。
また、scratchなどのいわゆる『ノーコード』と呼ばれるようなプログラミングを除き、コーディングをする際のプログラミングはアルファベットで記述致します。
よって、必要最低限の英語能力は必要になります。
アルファベットの読み書き、簡単な単語のライティングが出来ないと困ります。
【コーディング】=コードと呼ばれるプログラミングで使う【単語】を組み合わせて『論理の構築』を行う事
【ノーコード】=コードを用いずにプログラミングが出来る事をノーコードという。
【ローコード】=可能な限りコードを用いずにプログラミングが出来る事をローコードという。
【ノーコードアプリ】=コードを用いずにプログラミングが出来るアプリケーション。例えばscratchアプリやキントーン。
ノーコードでプログラミングの論理を学びたい方
さて学習ルートに入る前に、もう少し初心者に優しく学び易いプログラミング言語の紹介をさせて頂きます。
Sharari-manの紹介するルートは数学、英語を学ぶ必要がありますから、開始するためのハードルとしてやや高いように思います。
プログラムで何かを動かす、ゲームを作るなどの経験をしてみたい。
だけど数学と英語は良く分からない。
このような方にオススメ出来るのは Scratch という言語です。
いわゆるノーコードプログラミングと呼ばれるタイプのアプリケーションです。
世界中の多くの学校でプログラミング入門アプリとして採用されていたりします。
初期準備が非常に少なくて済む事が特徴です。数学や英語が分からなくても開始可能です。
日本語が読める
簡単な論理が理解出来る
この程度で開始可能な事が特徴です。
ノーコードとはいえ簡単なゲーム作成などは可能です。
また、ノーコードプログラミングというものは現在多くの企業で採用が進んでいるジャンルでもあります。
キントーンが有名ですね。
京セラなどの大企業でも採用されています。
上で述べたような数学、英語のスキルが無くても『論理』さえ分かれば簡単なアプリケーションを作成する事が出来ます。
プログラミングはハードルが高いなぁ・・・・・
ノーコードプログラミングも活用範囲が拡大していますから、Scratchを学ぶ事自体は無駄にはなりません。
学ぶ価値はあると考えて頂いて良いでしょう。
しかしながら、複雑な処理を伴うアプリ開発
オリジナルのHMI(ヒューマンインターフェース)などを作ろうとすると、ノーコードだけでは中々難しいのが実情です。
実践的なプログラミングを学びたいのであれば、数学,英語をある程度身に付けて、PythonやSWIFTやJavaやPHPを学んだ方が良いようにおみます。
学習ルートの詳細
さて、では早速ですが算数道場で採用している具体的な学習ルートは以下のようになっております。
swift playgrounds
Sharari-manが住んでいる地域では小学生全員にIpadが配布されています。
Ipadと相性が良く、学びやすいプログラミング言語が swift です。
チュートリアルが中々優秀でして、ゲームのキャラクターを動かす事を楽しみながらプログラミングの基礎を学ぶ事が出来ます。
コーディングする事で、ゲーム内のキャラクターを思い通りに動かして、宝石を回収します。
全てのチュートリアルを終了すると、実はそれなりにプログラミング基礎が身に付いています。
次に紹介する書籍の内容とかなりの範囲で重複しています。
プログラミングはまずは実践から入る事をオススメ致します。
小学生がいきなり書籍から入るのは無謀です。嫌悪感を示すお子様が多いのではないかと思います。
実践から入り、書籍を読んで『あぁあのことね』という感じで復習し、定着させるのが良いと考えております。
Python1年生~3年生
さて、では書籍の紹介です。
こちらの書籍は漢字・語彙・算数・数学の先取りがある程度進んでいるお子様向けです。
難しい漢字も多く、低学年では中々厳しいかもしれません。
Pythonというのは現在人気のプログラミング言語で『ライブラリ』と呼ばれる機能パーツが多く実装されている事が特徴です。
ライブラリを活用する事で、ローコードに近い運用も出来ます。
簡単なアプリケーション開発が容易に行えるため、小中学生でも取り組んでいる方が多い印象を受けます。
swiftチュートリアルを一通り終えた後でしたら、割とスムーズに入れると思います。
ここまで一通り終えれば、概ねアプリケーション作成の基礎は理解出来ると思います。
後は実践を進めていけば良いでしょう。
さて、ChatGPTが話題になっていますが、現在は企業や大学の研究機関でも活用されています。
Pythonと割と相性が良く ChatGPTに対して
「A+Bを計算して、A+B≧5ならば画面を赤色に、A+B<4なら画面を黒色にするプログラムをPythonで作って」
このように依頼すると、それなりのプログラムを吐き出してきます。
バグがあったり、不合理・非効率なプログラムを吐き出す事も多いですが、イチから書くより早い場合も多く、様々な場所で活用されているように思います。
ラズベリーパイ
ラズベリーパイとはイギリスのラズベリーパイ財団によって開発された教育学習用のプログラミング・電子工作キットです。
2012年に販売が開始され、世界累計出荷台数は4,600万台以上を誇ります。
ラズパイは簡単に言えば、最低限の機能を備えたコンピューター です。
プログラミングを学ぶ という観点だけで言えば、自宅のノートPCやiPadで学べば良いですが、実践的な電子回路工作、プログラミングを合わせて学ぶのに適しています。
こちらはラズベリーパイ(以下ラズパイ)の本体セットです。
こちらはラズベリーパイで動作させる事を想定して揃えられた電子工作キットです。
この二つがあれば、とりあえず色々な動作をさせて、プログラミングを楽しむ事が出来ます。
こちらは上の上位互換という感じでして、センシングなどもう少し凝った内容も学べるキットになっています。
このキットで遊ぶ事が楽しい!!
と思えるかどうかは親御様の腕次第です。
このキットを買い与えただけで自発的に色々な装置を制作し、プログラミングを楽しむお子様は少数派でしょう。
Sharari-manは親子で一緒に楽しむ事を推奨しております。
プログラミングは今後どのような業種でも有用なスキルですから、親子で学ぶ価値があります。
親子で一緒に遊び、学び、楽しむ事で高い学習効果が得られると考えております。
DJIロボマスター
少々お値段が張りますが、高性能なラジコンロボットです。
プログラミング言語は scratch と Python に対応しています。
ここまで学んできたお子様でしたら、充分に楽しめると思います。
かなり高機能なロボットであり、PID制御~ビジョンマーカーを利用した自動運転まで実践的な内容を学ぶ事が出来ます。
PID制御はMUSUCOLUMNでも登場しましたね。
仮説思考を身に付ける
例えば
半径300で旋回しなさいというプログラムを組み走行させると、遠心力や路面の摩擦変動などが原因で必ず半径300で旋回しません。
このズレを補正するための値を数学・物理の知識を基に計算します。
遠心力と路面の摩擦から滑り量を推定する数学モデルを立式し、それに応じた補正込みの半径300旋回指令プログラムを構築します。
このような作業によって理想的な半径300旋回ラインからのズレ量が小さくなっていきます。
このように理論と現実では様々な乖離が生じます。
遠心力が無く、路面の滑りが無く、様々な寸法誤差が無い世界では「半径300で旋回しなさい」という指令を出せば、半径300で旋回します。
しかし、現実の世界では遠心力があり、摩擦があります。
また、タイヤの偏差、モータの偏差など様々な偏差も影響しますから、単純な計算に基づき指令を出しただけでは正確に旋回出来ません。
これを補正し、思い描いた通りに動かすために数学・物理・プログラミングが必要になります。
これが実践的な作業です。
どうして上手く半径300で旋回出来ないんだろう?
遠心力でタイヤが滑っているのかな?
タイヤの直径が実は小さいのかな?
色々と測定したり実証実験をして検証してみよう!
このような思考の流れを子供達に学ばせてあげたいと考えています。
なぜなんだろう?
どうしたらうまくいくんだろう?
試してみよう?
ダメだったけど理解が深まった。
次はこの仮説を検証してみよう。
このような仮説思考を身に付ける事は大変有用です。
さて、このような実践的な学びを得るために、高機能ロボットラジコンは大変役に立ちます。
単純に楽しいですしね。プログラムの学習という名の遊びですね。
少々お値段が張りますから誰にでもオススメ出来ませんが、親子で一緒に遊べる教材と考えれば楽しいツールに成り得ると思います。
ロボット自作
さて、これこそ全く他の御家庭にはオススメ出来ません。
我が家と算数道場特有と言って良いでしょう。
我が家は外注先も利用すれば、板金・鋳造・製缶・樹脂成型など様々な部品を制作する事が可能です。
Sharari-manは電気工事士、NC旋盤(技能士)、マシニングセンタ(技能士)、仕上げ(機械組立作業技能士)などを取得しておりますから、様々な作業が可能です。
電気工事も出来ますし、配線,電子回路工作も出来ます。
当然ながら図面も書けますし、プログラミングも出来ます。
よって簡単な多関節ロボット、直交ロボット、スカラロボットであれば自宅で製造が可能となっております。
このような環境下ですから、ロボマスターでは飽き足らず、自宅で自作ロボットを開発して子供達と遊んでいます。
ユーフォーキャッチャーのような3軸直交ロボットを作ってみたり、運動補助用のロボットなど様々なロボット制作を実施しています。
このロボット製造を通じて、機械工学・プログラミングを深く学び、子供達に工学・理学・モノヅクリに興味を持ってもらうための活動をしております。
当然万人にオススメ出来るものではありません。
しかしながら、エンジニアの親御様であれば、何らかの指導が出来るものと考えております。
電子回路工作でも良いですし、簡単なカム機構の装置、モーターと発電機の制作など何でも良いでしょう。
自身が持っている技術を活かし、親が子のために様々な工夫を凝らし共に学びを深めるというのは良いものです。
是非、エンジニアの親御様には御自身の能力を発揮して頂き、子供達に楽しく学びを与えてあげて欲しいと願っております。
あとがき
さて、簡単では御座いますが、我が家のプログラミング学習ルートを紹介させて頂きました。
紹介しきれていない部分も御座いますから、今後加筆修正を続けて参りたいと思います。
記事の執筆をご依頼頂いた読者様、記事を執筆する良い機会を与えて頂き、大変感謝しております。
この場を借りて御礼申し上げます。誠にありがとう御座いました。
また、ご依頼から記事完成までが遅くなってしまい、申し訳御座いませんでした。
今後ももう少し早くローンチ出来るよう努力させて頂きます。
我が家の学習事例が少しでも家庭学習に取組む皆様の御参考になりましたら望外の喜びです。
ではまた!
コメント【コメント非公開、メールでの返信を御希望される方はその旨をご記入下さい】