プログラミング教育が実施されていますが、プログラミングの学習方法は昔と変わらず、

 

    挙動が成立するようにアルゴリズムを考える

 

    プログラミング言語を覚えて挙動を指定できるように

      する

 

と2つの事を学びます。幼少期のプログラミングでは、主に前者に軸が行われており、 【 どうすればそれになるのだろうか? 】 を考える事になります。2010年以降と20世紀ではこの辺りが全く違ので、プログラミングを行う上でも結構大変な状態になっていたわけですが、まず、幼少教育と言うのが難しすぎる上に 【 文明があるレベルとは思えないレベルで、子供の環境によって優劣が極端につく状態があった 】 のも確かです。とは言っても、 【 環境と自身の両方がまともでなければ人は成長しない 】 ので、 【 必要な条件を論理積で繋いでそれが成立するような条件がなければ物事は成立しない 】 ので、片方でどうにかなるというような間違いが通じる場所はありませんから、環境が駄目だった段階でその分野に疎くなるという条件がありました。なんだかこれを見ると 【 カルトのような寄り合いのように見えてしまう 】 訳ですが、実際にそんな感じになっていました。

 

 また、1980年台~1990年台と言っても、現在のような低年齢用の物は存在しなかったので、この時代だと、 【 知育と数学の拡張で対応するしかないような時代 】 ですし、 【 そもそも、情報格差が地域が違うだけで生まれるような時代 】 ですから、都会でも、おかしな寄り合いにのめり込み、文明から逸脱した末期な事だけを行っていれば、知識が付く訳もないので、これも 【 環境と個人の選択 】 の影響により 【 都市部でもダメな生き方をすれば、文明そのものがない状態になるので地域で変わるような物ではない 】 わけですが、少なくとも学ぼうとした時に 【 書籍しかない 】 ような時代だと情報が皆無だと言えます。

 

 1960年代だと、アナログコンピューターで、1970年台だとワンボードマイコンのような物が産業用ではなく、個人のホビー向けで登場しますが、日本では1980年代に8bitマイコンのブームが起きます。当然、上位の製品だと16bitでOSを実装した物が存在しているので、ホビー向けの8bitの製品は、 【 プログラミング用途 】 になっていました。

 

 そして、入門用言語としてBASIC(機種ごとに方言がある)が存在しており、これとは別にLOGOが使用できる状態になっており、

 

    LOGO : アルゴリズム

    BASIC : プログラミング

 

を学習できるようになっていました。と言っても、LOGO自体も制御をするのは、BASICですから、コーディングの必要がありますから、幼少教育で扱うような 【 動くの法則性を考えて実装する 】 という学習を行う事になりますが、

 

    キーボードに慣れる

    課題自体を自分で作らないと何も存在しない

 

ので別途教材を必要とするので、 【 文字が読める事 】 が前提になります。また、書いてあること自体がコードですし、やっている事はグラフ上に特殊な関数を書く事ですから、 【 単なる数学 】 でしかないのと、 【 そもそも、この数学と言うんが高校数学の内容の理解が出来ている事や、コンピューターに関連する言語が理解できている事 】 が前提になるので、 【 何の知識もない人が見て解るような物ではない 】 ので、 【 親が教えるというのも無理があるし、そもそも、前の世紀の学校の仕組みだと教職員自体がこうしたデバイスを触ったことがない人が多い 】 訳ですから、学校で学べばどうにかなると言う根拠のない間違いが通じるような物ではありませんから、基本的に仮に大卒の家出ったとしても、工学系を先行していないと本の内容が全く分からないと理解できない部分も多いので、幼少教育自体に無理があったわけです。

 

 つまり、 【 いきなりハードルが高い状態になっていた 】 ので出来る人は出来るけれど、出来ない人は出来ないという状態が存在しており、 【 環境依存度の影響が大きすぎた 】 と言うかなり問題がある状態になっていました。

 

 また、 【 物の理解の仕方の違い 】 でもこのハードルが無駄に高くなってしまうのですが、今から半世紀前の1970年代にはFortrunが存在していましたから、この時に最先端でFortrunを使っていなかったとしても、 【 アセンブラ程度は存在した 】 のと、 【 リレーやアナログ回路は存在した 】 のですが、 【 これを学習できるのが光学系の学校しか存在しなかった 】 と言う結構酷い状態があったわけです。

 

 つまり、マイクラのレッドストーン回路で論理演算の仕組みを理解相とすると工学系の大学を出ないと理解できないよう状態と言う結構酷い内容が存在していたわけです。

 

 この事から、 【 選択していないカリキュラムは独学で学ぶしかない 】 と言う状態は、過去も現在も変わらないのですが、前の世紀に関しては 【 学ぶ上においては何から何まで不便な状態だった 】 訳です。

 

 この辺りが、アルゴリズムを学習する 【 幼少教育 】 のレベルだと、プログラミングで体験するのが困難だったので、この時代だと少し違うソリューションを使う必要がありました。

 

 

■ 前の世紀の仕組みの学習            

 

 20世紀で考えると、WINDOWS 95の登場以降には確かにPCの普及率は上がりましたが、とにかく遅く、いきなりOSが乗っているので、ソフトが使えるので、 【 作る 】 上だとハードウェアを持っただけだと何が出来るのか解らないレベルになっていました。と言っても、この辺りもテクノロジーの系譜がしっかりと理解できている人だと、DOSでできた事が行えるという内容などは知っているはずですが、HTMLの知識などについては専門書籍を購入するか学校でカリキュラムを選択しなければ身に付かないような物ですから、 【 ハードウェアを購入しただけで物事が出来るようになるわけではない 】 と言う至極当たり前な内容がありました。

 

 また、 【 学校が新しいことが分かっていればいいが、そう言うのは大学に進学しないと解らない 】 と言う状態でしたし、インターネットが使われ始めるのも1990年代前半だと、使っている人が殆どいない状態で、2000年代に入るまで当たり前に使っている人が殆どいなかった状態だったわけですから 【 現在の状態とは相当乖離した物が世の中に存在していた 】 訳です。つまり、ネットと言う情報を集める上での物が存在しておらず、ネットのコミニュティーも使っている人はごく一部と言う状態ですから、そもそもネットで何かを調べるということ自体がされていないような時代ですから、 【 書籍位しか情報がない時代 】 だったわけです。そう考えると、 【 独学をする場合だと、ネットの環境がなければ何もできない時代 】 だったのですが、1990年代前半のように紙媒体を待つしかないような時代とは少し状況が変わっていました。

 

 とは言っても、32bitのPCは、 【 構造が複雑になっている 】 のと、OSが立ち上がって動くという仕様ですから、何をすれば処理を行えるのかが分からなかったり、 【 そもそもコーディングは何を使えばいいのか解らない 】 と言う状態になっていました。

 

 実際には、20世紀だとWINDOWS環境だとバッチ処理やVBSがOSでそのまま使えますし、ブラウザがあるので、HTMLを使ったコンテンツは作れる状態になっていました。あと、NT系のワークステーションだとIISが用意されてたので、LANを組めばサーバソリューションを組むこともできていたので、この時代には1980年代とは異なり、ネットワークを使ったプログラミングもできるようになっていました。ただし、性能が低すぎて相当厳しい仕様の物を高額で買わなければならないような時代ですから、 【 コンピューターについては文明レベルが低すぎて、出来る事が少なすぎた 】 というのもあります。

 

 また、21世紀のようにネットブックのようなカテゴリーとして新興国用に学習できるデバイスを提供するというコンセプトのモデルも登場していませんからひたすら高かったというのもあります。

 

 現在で20万円くらいのPCを購入すると、ゲームエンジンや3DCGツールは動きますし、動画編集も映像の仕様を選択すればごく当たり前に行えるようになっていますが、前の世紀だとそれが無理な時代だったので、20万円の出費でも出来る事が少なすぎる時代だったわけです。

 

 これが、テクノロジーの違いになりますが、汎用性が高くなっているので、ハードウェア自体では出来る事が増えていた物の 【 そもそも独学しようと思ってもリソースが無さすぎる 】 ような時代が1990年代でもしばらく続くので、 【 口コミや書籍に頼るという方法しかない 】 ので相当酷い情報の遅れが発生していたわけです。

 

 この状態で考えても知識は書籍頼みになりますが、構造を考える一つの教材としては 【 LEGO 】 も存在していました。LEGOは1980年代には独自のLEGOと言う言語で動く物も存在していましたし、ギアなどを使ったソリューションは1970年代後半に登場していたので、メカニカルな運動における連動については、LEGOで学習する事が出来るようになっていました。

 

 現在だと、情報がちゃんと入ってくるので、マインドストームを使った場合、

 

    動  作  部  分 : アクチュエーター

    コンピューター部分 : コントローラー

 

になっているので、この制御系を動かす時にどう言った条件で動かしたらいいのだろうか?を考える事になりますが、ここで信号を送るセンサーを用意する事になるので、

 

    入力を行う部分    : センサー

    コンピューター部分 : コントローラー

    動  作  部  分 : アクチュエーター

 

で制御出来る事を知る事ができます。つまり、ステップアップでギミックを作るまでの工程は、アクチュエーターの構築の知育になっていて、この動きの連動を実装するのが所リューションの構築になります。

 

 その為、コストがかかるので誰でも彼でも作れる訳ではありませんが、オートメーションのような物を考えて実装する事もできます。この考え方が、プログラミング言語の 【 順次 】 に該当するものになりますが、こうした 【 現実世界の挙動 】 を 【 コードで処理する 】 のがプログラミング言語なので、実は、LEGOでもそう言った物を作る事ができます。マインドストームが登場したのが1990年代の終盤になりますが、アクチュエーターの部分だと、上級者向けの物として構造物が連動して動いている事を学習できるモデルシリーズなども登場していますが、 【 仕組みを知る 】 と言う事だと、LEGOと言う選択肢も存在していました。

 

 1990年代だと、ひたすら遅いコンピューターを購入して動かすしかない時代ですから、コーディングを行う上では大丈夫なんですが、コンパイル型言語を使うとコンパイルが絶望的委時間学科る仕様でしたし、そもそも 【 ゲームがアセンブラとかを使わないとシェーダーを使えないような時代 】 ですから、何から何までハードルが高い時代だったのですが、メーカーがゲーム制作をするのに現在のシングルボードコンピューターよりも遅い物を使っていた時代ですから、上位の製品ですらその時代のハードウェアの上限は相当低かったわけです。

 

 動く物を学習する場合、LEGOとPCと言う少し高額な構成であれば、アクチュエーターのコンピューター制御と言うのを体験できていたのですが、ひたすら高額になる傾向がありました。

 

 あと、現在のような幼少学習の物が存在せず、動く物を作る条件だと、ゲーム機で登場していたゲーム製作ツールか、それに関連したツールと言う感じでしたからどちらにしても少しハードルが高い状態になっていました。

 

 

■ 構造物と歴史                   

 

 プログラミングでは、構造物を動かす事を前提に使用しますが、この時に、ソフトウェアと言う内部処理と、その処理によってハードウェアを制御するという処理が存在します。アプリケーションの実行の場合だと、

 

    セ  ン  サー  : マウスやキーボードの情報

    コントローラー   : コンピューター

    アクチュエーター : ディスプレイやスピーカー

 

と言う構造になりますが、CNCのようにハードウェアを制御する事もできるので、出力時の対象物が何なのか?デコードの書き方が少し変わるだけになります。つまり、ハードウェアで何を正よしているのか?と言うローレベルでの処理の流れまで把握しないと、実際の処理が解らなくなることがあります。こうした処理もプログラムが実行されている時には自動処理になりますが、元々、自動処理は産業などでは当たり前に使われているものなので、昔から実装されていますし、自動処理の利便性は、 【 作業負荷の低下と労働環境の向上 】 を前提としていますから、そうした内容は古くから存在します。

 

 テクノロジーの進化は工業や産業の歴史にも登城しますが、そこに存在するのは、工学の歴史になりますが、基本的に、歴史の授業の中に 【 工学の歴史 】 は存在しませんし、これが登場するのは、近代史なので、完全委分かれて学習していると思います。ただし、工学はテクノロジーなので、オートメーションの歴史については古代ローマ帝国辺りから存在しており、下水道施設はこの時代から存在しています。

 

 高校の数学Iでは、 

 

■ ヘロンの公式                    

 

   三角形の3辺の長さから面積を求めるための公式

 

 

が出てきますが、

 

 

のように三つの辺の名g差が解っている時に面積Sを出す場合、最初に、面積の公式に必要となるsを計算します。これは、ただの分数なので、

 

 

という簡単な物で、 【 係数 】 を算出できるのですが、このsを用いて

 

 

の公式に値を代入すると、面積;Sを出す事が出来ます。この場合、有理数の場合の公式ですから、無理数で、sを出すと大変なので、辺の長さが無理数の場合だと、

 

 

と言う公式を用いて面積を出す事が出来ます。高校に入ると、三角形の色々な公式が出てきますが、高校の数学Iでは、三角比を用いて、辺の長さを求める事が出来る(この時の三角形では二辺と3つの角が解っている状態になります)のですが、三角比とヘロンの公式を使うと、 【 三角比 】 で三つの辺の長さを出して、 【 ヘロンの公式 】 を使って面積を出す事が出来るようになります。

 

 こんな感じで、高校では、色々な公式が登場しますが、このヘロンの公式を作ったアレクサンダーのヘロンですが、紀元前10~70年ごろの人口学者であり数学者ですが、この時代に

 

    蒸気タービン

    蒸気を使った自動ドア

 

などを発明しています。また、ロケットエンジンの原型と言われる

 

    アイオロスの球(ヘロンの蒸気機関)

 

のような蒸気を使った物だけでなく、世界初の風力機械とされている

 

    ヘロンの風力オルガン

 

も発明しています。自動販売機と言うと近代史になるまで登場しないイメージがありますが、その源流は、紀元前にあり、これもヘロンが発明されたと言われています。ヘロンは、 【 世界初の自動販売機 】 の

 

    気体装置

 

を発明しています。これは、コインを投入すると決まった量の聖水が出るという物だったようですが、自動処理については、紀元前からそう言ったソリューションが存在しています。古代エジプトでも水力を使った石切り機などもあったので、紀元前が人力だけでしか動いていないと言うのは間違いであり、 【 出所の解らないファンタジーの類 】 ですから、現実には、この時代には、理解できる範囲の物で扱えるレベルのエネルギーを使った自動処理がおおなわれていました。

 

 これが、四大元素と錬金術で世の中が成立していたと言われている時代の話であり、電気についても知見がない時代の事ですから、当時の人からすると魔法か何かのように見えたのかもしれません。

 

 ただし、現在であったとしても、当時の扱えるものでこうした物が完成している事を見ると凄まじいテクノロジーのように思えるのですが、錬金術と四大元素が信じられていた時代(つまり、この時代には元素記号が存在しません。)でも、なぜか、水銀、火薬などの発明品があり、医療に関係する物も複数生み出されているのですから、 【 何がどうなってそれが出来たのか解らないような物 】 も存在しています。

 

 このように、古代ににも色々な物が存在していたわけですが、水車や風車を使った自動化のソリューションも存在しますが、その後、パターンで制御できるような物が登場し、工芸品などでオルゴールやオートマタなども登場しますが、この処理を産業に用いたのが織り機になります。ここで、二値のデータでの制御が産業に用いられることになりますが、しばらくの間は、このパンチカードによる処理が行われるようになります。ただし、この不便なビットの集合体を8ビットで1まとめにして1バイトとして使うようになり、それを用いてデータを管理するような仕組みになったのが、近年のコンピューターの源流の基礎になります。コンピューターの源流は、チャールズ・ベバッジの解析機関のコンセプトまで遡る事になりますが、その後の技術として歯車の時代からリレーに代わり、リレーからアナログ回路へと変化し、それが集積化して行きます。それにより、論理ゲートを複数実装した物をパーツを使った構造物として作るのではなく、湾パッケージにした構造物が登場します。これが、現在だとブレッドボード上に配置して使用できるパーツになりますが、電卓の小型化も 【 演算用の集積回路 】 の登場によるものですから、配線の細分化なども手伝って小型化が出来るようになったので、こうしたパーツの財文化と集積化が行えるようになっています。

 

 これが、電化製品で使用されているパーツも同様に細分化が行われていますが、現在の3Dプリンターで最も微細化をした場合の太さが、初期のPentium IIよりも細くなっている(キャノンのFDM方式の業務用が22μmですから、それ以前の集積回路よりも微細な物を作れるようになっています。確か8K解像度の光造形の製品が30μmよりも微細に書こう出来ていましたから、現在はそのサイズで加工できるように泣ています。)ので微細な物を個人でも作れるようになっているのですが、配線の微細化でパーツも小型化できるようになったので、回路内のスペースを小さくすることがⅮ系るようになります。こうした集積を使えるようになると、計算機だけではなく、デバイスの制御などもできる構造を実装できるようになるので、 【 CPU 】 が登城する訳ですが、この時代になると、電気工作も少し異なり、先程のセンサーや接点で入力した物を判断して動かしたり、通電と言う入力がある状態で、コントローラーでデバイスを制御するようなこともできるようになります。これがセンサーを使わないCNCになりますが、1970年代初頭だと、こうした制御がアセンブラで行わエるようになります。

 

 その後、Fortrunの登場で現在の言語体系のように人間い解る単語と処理の記述によってコードを書く仕様になります。当然、これがビット数が増えても出来る事は同じなので、1970年代のホビー用の4bitマイコンでできていたことも当然、MSXなどでも行えるわけですが、こうした8bitの製品でもローレベルになると企画が存在するので、それに準じて動かすと色々な事が出来ます。今はいい時代になっているので、そう言った物がwikiでまとめら得ているので、

 

    MSX Datapack wiki化計画

      http://ngs.no.coocan.jp/doc/wiki.cgi/datapack?

      page=7%BE%CF+MSX%B3%C8%C4%A5BIOS%BB%

      C5%CD%CD

 

のようなページも存在していますが、X1でも拡張ボードを追加するとメモリーの増設や外部デバイスの制御も可能な仕様になっていたので、後の製品だとRS-233Cのようなポートが32bitパソコンの時代には存在していたので、これを使う事で、

 

    サーボモーター

    センサーコントローラー

    センサー

 

を使った処理が可能になっていました。と言っても、1990年代には、コンピューターを使って自動切削機器のMODELAなどの製品が登場していましたから、デバイス制御も当たり前に行えるのは当然なんですが、その時代だとごく当たり前に存在したスキャナーやプリンターのような製品もありますから、汎用バスによるデバイス制御が出来るようになっていました。

 

 1980年代だとプリンターが当たり前に存在していたので、キーボードで入力した結果をディスプレイに表示して、それを印刷するというよう小名処理が出来ていましたから、結果的に、デバイスでの入出力の管理をコンピューターで行う仕組みは存在していました。

 

 現在は、これを行うのにシングルボードコンピューターやワンボードマイコンで行えるようになったので、かなり低コストでそれが行えるようになっていますが、こうし他製品の出力端子(GPIOなど)を使って電気工作と繋いで実際に動く物を作れるようになっており、コストも2000年代と比較しても雲泥の差があるので、かなりいい時代になっています。

 

 その為、情報を探す事と実際のデバイスを導入して使うという2つの側面で見た場合に必要な基礎学習が行いやすく、デバイス自体もローコストに抑える事が出来るという利点もあります。

 

 1990年代だとCNCを行おうと思うと、ひたすら高額になっており、簡素な処理の学習をする場合でも結構なコストがかかっていたのですが、処理が重くない物だと、

 

    シングルボードコンピューター

    ワンボードマイコン

    ブレッドボード

    パーツ類

 

だけで揃ってしまうので、かなりいい時代になっています。また、ワンボードマイコンの性能もRaspberry PI Nanoのように結構高めに設定されている製品もあるので、意外と処理能力も望めるようになっています。

 

 その為、小さな端末で液晶をコントロールしてボタンで表示を制御するようなガジェットを作る場合でも出来る事が増えています。

 

 

動の実装をするための学習         

 

 前述のように、前の世紀だと、LOGOに該当するも尾を先に扱って、動きを実装する方法をが宇周することになりますが、現在だと、こうした物はオンラインで学習できるサイトが増えています。例えば、

 

 

    MinecraftのHour of Codeチュートリアル

      Minecraft | Code.org

 

 

のようなのもありますが、動きの問題が用意されていて、それに対してブロックを繋いでいくような物もあります。

 

    Code.org

      https://studio.code.org/courses

 

では、様々なカリキュラムが用意されていますが、4~9歳のカリキュラムだと、

 

 

のような物があり、

 

 

のような状態があって、

 

 

のように問題が提出されており、

 

 

のように用意されたブロックを使ってその状態になるように動きを指定するような物も用意されています。これだと直感的なので、解りやすいと思いますが、プログラミングに対応したドローンの制御プログラムのアプリでもこうしたブロック型で指定できる物もありますが、LEGOにも対処に延齢に合わせたプログラミングツールが用意されており、

 

 

で制御できる物もあります。これで動きを学習するメリットですが、序盤で体験できるのは、 【 移動 】 だけに絞った状態での 【 順次 】 による 【 工程 】 を考える能力の構築になりますが、カリキュラムも良くできているので、 【 動き 】 を通じて 【 それになる工程を考える能力 】 を養い事が出来ます。

 

 コードを書く場合には、 【 処理の手順 】 を明確にしてから、コードに落としてく事になりますが、 

 

【 どうすればその動きになるのか? 】

 

と言う根本部分を学ぶ上で、そう言った物が用意されています。現在は、オンラインでそう言った物を学べるようになっていますが、入門用の言語だと、 【 Scratch 】 でコードを書いて学習する方法もありますが、 【 アプリケーションを作る工程を一つのソフトで体験できる 】 のでこのツールもいい作りになっています。

 

 その為、 【 言語を覚える前に、挙動を考える能力を養う 】 事や必要な知識を得ることが重要なので、そうしたカリキュラムが用意されており、そこから 【 挙動を考えて実装する 】 と言う考え方を身につける事になります。現在は、こうしたカリキュラムが無料で体験できるようになっており、グラフィカルで馴染みやすい物になっているので、学習しやすい状態になっています。

 

■ 作るったものを動かすという体験       

 

 プログラミングは、作った物が動くという体験を得られるものになりますが、現在は、コードの記述の難しさを解消して対象年齢を下げてあるものも増えています。

 

 この分野では、ビジュアルスクリプト言語の

 

    Scratch

      https://scratch.mit.edu/

 

 

が有名ですが、この仕様が、

 

    オブジェクトレベルで処理を実装する

    処理には、連動と単独がある

    オブジェクトのコードは参照と非参照が選択できる

    映像は連続した画像で作られている

    音声は別の素材であり、コードで管理する

    映像の動きはコードで管理できる

    素材に階層を持たせると便利

    ラスターグラフィックとベクターグラフィックある

    グラフィックで特性が違う

    音は加工できる

    背景が透けて見えるのは透過しているから

 

など、使っていくだけで、必要な知識が色々見に付きます。中でも、

 

    素材を用意して複製した物をコントロールする

    入力値を別の物に格納して使うと便利

 

など、色々とコードを書く上での考え方も見に付くので、いいツールになっています。

 

 とりあえず、Scratchの場合、

 

【 完成品が音とグラフィックを使ったアプリケーションになる 】

 

のでゲームエンジンでゲームを作るのと同じような、作業の苦労に対するリターンがそのまま反映されやすいので、内部処理だけの物よりも作業のモチベーションを保ちやすいという利点があります。

 

 そして、重要なのは、

 

    画像

    アニメーション

    シーン

    音声

 

などの素材は個別に作る必要があるので、アプリケーションを作る時には、こうした制作の作業も発生する事を学習する事ができます。

 

 また、これをアニメーションだけで考えても

 

    レイヤーの概念

    素材の重ね方で見え方が変わる

    音声のタイミングの必要性

 

なども素材の配置とブロックでの制御を行う事で学習できると言う利点もあります。

 

 その為、通常のツールのようにコンソールアプリから作るという流れと比較すると、 【 完成した物がアプリのような状態になる 】 ので、そうした点での楽しみもあります。ある意味、ゲーム機のゲーム製作ツールの 【 作る楽しみ 】 の部分をコーディングに取り入れた物凄くいいツールだなと思います。

 

 Scratchでは、コードを書くことで 【 アプリケーション 】 を作る事が出来るようになっていますが、ハードウェアのプレビューまではできません。

 

 現在は、IoT端末も使用できる時代になっていますが、ワンボードマイコンの場合、コーディングはスケッチと言うC言語のプログラムを書くことになりますが、このコードを端末のメモリーに該当する区画に送って実行するしようになっている(ので、OSは存在しません。)ので、少し敷居が高いのですが、現在はmicro;bitのように入出力の機能を持った製品も存在しています。

 

 こうした製品用のコードもScratchを使って書くことができますが、挙動の確認が出来ませんから、どう言った動きになるのか?と言うデバグが必要になります。こうしたハードウェア寄りの物を扱えるのが、マイクロソフトのMakeCodeになります。

 

    MakeCode

      Microsoft MakeCode

 

ここでは、

 

■ micro:bit                        

 

■ Circuit Playground Express           

 

■ LEGO🄬 MINDSTORMS🄬 EDUCATION V3 

 

■ Arcade                        

 

■ Chibi Chip                      

 

がオンラインのエミュレーションに対応し知恵ます。その為、

 

 

のように画像のボタンや接点なども反応しますし、傾きなども使用できます。また、Arcadeでは、

 

 

のようにメニューの表示やスティック操作まで対応しています。

 

 サイト内の

 

    Minecraft

    cue

 

は対応していませんが、curはプログラミング用のアプリが用意されており、MinecraftだとWINDOWS 10版の統合版が必要で、それと同時に別途ストアで用意されているCodeConectionと言うアプリをインストールする必要があります。

 

    MakeCode for Minecraft Documentation

      【 MakeCode  】

      MakeCode for Minecraft Documentation

 

 

その為、一部の物は、Education Etidionや統合版が必要になりますが、それ以外だとオンラインでそのまま使用できるようになっています。

 

 ちなみに、Scratchにはオフライン版があるので、インストール後にそのまま使えるようになっています。

 

 Raspberry PI4 Model Bにインストールして使用するDebianの軽量化を行ったディストリビューションの 【 Raspbian 】 にも色々な開発環境が最初から追加されています。

 

                               

 

 現在は、対象年齢を下げてあるプログラミングツールも増えており、プログラミングを行いやすく、動く物を作るという体験が出来る時代になっていますが、情報も得やすくなっているので、どう言った仕様の物なのかも学習しやすくなっています。その為、20世紀だと難しく、1980年代以前だと個人だと殆ど情報がない状態だったものについても、現在はごく当たり前の学ぶ事が出来るようになっています。

 

 そして、挙動の基本を体験しながら 【 動きを感が手実装する 】 と言うLOGOのような機能ももう少しビジュアライズされた物でオンラインで体験できるようになっており、動きを考えながらコードを書く学習が出来るようになっています。

 

 iOSだと、Swift Playgroundが用意されていますが、こちらは、ブロック型ではなく、コード型になりますが、用意された課題をクリアしながら、どう言ったコードを書けばいいのか?を学習できる便利な弦になっています。

 

 このように、現在は 【 まともにインタラクティブなアプリケーションを開発できるメーカーが学習教材を作っている 】 のでコーディングについても対象年齢が低い物もあるので、多くの人に間口が広がっている状態になっています。

 

 コードの基本部分は、 【 挙動を考える事 】 ですから、あくまでもプログラミング言語は  【 選択や手段 】 でしかありません。その為、考える能力を養う事から始めて、知識を広げて行く事が重要委なります。こうした学習については、 【 挙動と法則性 】 について学習できるようになっているので、考えるうえで、法則性を見て処理を理解する能力も養えるようになっています。Code,orgはそんな感じのサイトになっていますが、ここで身に着けた物をScratchやMakeCodeで生かすと、意図したアルゴリズムの実装が出来るようになると思います。

 

 ただし、プログラミング言語は言語なので、文法や仕様があるので、語学のようにそれを覚える必要がありますが、これがプログラミング言語を使う為の 【 言語で使用する機能の学習 】 になります。