こどもプログラミング教室・オンライン講座/プログラミングアカデミー

こどもプログラミング教室・オンライン講座/プログラミングアカデミー

プログラミング的思考

2020/12/24

橿原市 プログラム、プログラミング言語の歴史について 後編

現在のプログラミングに繋がる1990年代 前半

1990年代に入るとパソコンも進化していきます。それまでのパソコンはCUIと呼ばれる、動きを命令するために文字を入力するようなインターフェースでした。1990年代では現在と同じようなGUIと呼ばれる、マウスや指などで指示するインターフェースへと移行したのです。現在であれば当たり前のUIはここで登場しました。そしてそれに合わせてより見た目に分かりやすい、美しい言語も登場してきます。現在でも現役で使用されているJavaやPythonなどです。これらはオブジェクト指向型の言語です。特にPythonは現在、AI開発に使用されており、注目され続けています。また、少し後にはPHPも誕生します。Webページの動的な動きを実装するためのスクリプト言語になります。C言語をベースにしています。当HPを含めたほとんどのWebページに使用されています。このように現在でも活躍している言語が多数生まれ、プログラミングの世界がワンステップ進んだ年代になります。

Windows95の誕生

1995年、Windows95が発売されました。こちらはカラー出力、ネットワーク接続機能が搭載されており、発売から4日ほどで400万本の売り上げを出すほど人気でした。これの登場によってインターネットは爆発的に普及しました。さらに同年、Rubyという言語が日本人まつもとゆきひろによって開発されました。様々な言語をブレンドしており、柔軟性が高く表現力も豊かです。こちらは日本だけではなく世界的に人気があり、現在でもWebサービスやアプリ開発で使用されています。また、この年からオブジェクト指向が主流となり、Javaが多くの業界で使用されていきます。人気ゲームであるマインクラフトもJavaによって構築されています。また、1997年にはJavaScriptが登場します。これによってクライアントサイドでの動的な動きを記述できるようになりました。ここまででWeb制作に必要な言語は一通りそろったことになります。

プログラミング近代、2000年代

2000年代に入り、まず大きな動きとしてMicrosoftがC#を開発しました。C++をメインにJavaを取り込んでいるため文法がJavaに似ており、Windowsとの相性も良いためこちらも現代で使われています。2003年にはScalaが登場します。こちらはオブジェクト指向型と関数型の両方の機能を備えたハイブリット言語であり、Javaと互換性を持つためJavaで使用していたライブラリをScalaでも使用することが出来ます。TwitterやPayPalに使用されています。国内での需要が特に高まっている言語の1つであり、新規に習得したいプログラマが増えています。さらに現在まだ有名ではありませんがすぐれた機能を持つ言語としてD言語というものが2007年に開発されました。C言語の置き換えを目的にこれまでの様々な言語の特徴を取り込んでいます。今後主流になる可能性も十分にあります。このようにこの年代から開発された言語は優れた物も多いのですがまだ主流にはなっていない、といったものが増えてきます。

スマホの登場する2010年代

スマートフォンも登場、普及したことで更にネットワークに接する時間が長くなり、頻度も上がってきました。そこでより機能性や安全性を考慮した言語の開発が盛んに行われるようになってきました。この年代に開発されたもので今後有力な言語はAppleによって開発され、iPhone用のアプリ等に用いられているSwiftやFacebookが開発したPHPを基にしている言語Hack等があります。さらに、Google社からはオブジェクト指向型であり、動的型付けと静的型付けの両方に対応している言語であるDartが開発されました。こちらはJavaScriptの代替えとして開発されているため、JavaScriptを学んでいると触りやすくなっております。しかしこれらの言語はまだ生まれて間もない為、どうしても既存の言語たちに比べると洗練されておらず、使い勝手がよくなかったりします。しかしその分成長の伸びしろがあるとも言えますので今のうちから学習する価値は

現在のプログラミング言語の状況

現在、プログラミング言語の主流はやはりオブジェクト指向型になります。よく、プログラミング言語を学ぶならC言語だ、と言った意見が出ますが就職や転職の際に有利になるのはやはり現場で実際に使われているオブジェクト指向型言語たちや、各業界ごとに人気のある言語になります。もちろんC言語を学ぶメリットもあります。プログラミングをより深く、根本的な部分を理解するにはC言語は必須になります。また、C言語は単純かつコンパクトなプログラムを書くことが出来ますので実は処理速度の面ではかなり優秀です。このように目的次第で様々な言語が役に立ちます。ただ、どの言語にも言える事ですが、まずは1つのものを集中して学習しましょう。どの言語でも基礎はほぼ同じです。その基礎をしっかりと身につけ、やりたいことがある程度出来るようになってから次の言語へ行くかどうか考えるとスムーズに学習できると思います。

2020/12/17

橿原市 プログラム、プログラミング言語の歴史について 前編

プログラムの歴史 1940年代

プログラムを活用したコンピューターは1930年代にイギリスの数学者「チャールズ・バベッジ」が最初に考案したとされています。彼が設計したコンピューターは解析機関と呼ばれています。これは記憶装置と演算装置から構成されています。プログラムを直接書き込む形ではなく、外部からパンチカードを読み込ませることでプログラムを制御する予定でした。50桁の数字を1000個格納でき、四則演算が可能です。更にそれぞれの比較や後付けで平方根の演算も可能となっていました。演算速度はおおよそ20桁同士の掛け算を3分以内に出来るだろうと言われています。この性能はムーアの法則と呼ばれるコンピューターの成長曲線を過去に向かって伸ばしてみると、その値よりもずっと高性能です。ただ、惜しむらくはこの解析機関、様々な要因が重なり、完成することが出来ませんでした。もし完成していたらコンピューターの世界はもっと違うものになっていたのかもしれません。

電子式コンピュータの登場

上記にて紹介した解析機関は機械式のコンピューターになります。機械的にスイッチを切り替えたりすることで演算を行っていました。しかし1940年代に入ると電子式のコンピューターが登場します。我々の知っているコンピューターの形にかなり近くなります。そして、そのコンピューターを制御するために誕生したのがプログラミングを行うための言語系統です。当時の電子式のコンピューターは0と1しか認識できないため、0と1の2進数で命令を記述します。この言語系統を機械語と呼びます。機械であるコンピューターが理解できる言語になります。しかしこの言語を人間が直接書くことはとても難しいです。そこで命令1つに対してニックネームのようなものを1つ設定し、人間に分かりやすくした言語が誕生しました。この言語のことをアセンブリ言語と呼びます。もちろんこの言語をそのままコンピューターに渡しても理解してくれません。アセンブリ言語を機械語に変換してからコンピューターに渡していました。

高水準言語の登場 数々のプログラミング言語の登場

1940年代までで機械語、アセンブリ言語と言った言語系統が生まれました。機械語は機械の動きをそのまま記述していますし、アセンブリ言語は機械語の命令1つ1つの記述を人間にわかる言葉に直したものです。これらは機械への命令をそのままの形で記述しているため、人間には少し分かりにくい言語になります。このような言語を低水準言語と呼びます。これに対してより人間に分かりやすく、記述しやすくした言語のことを高水準言語と呼びます。1950年に世界初の高水準言語であるFortranが誕生しました。また同時期にCobolやAlgol58も開発されています。CobolやFortranは現代でも使用されるシーンがあります。またAlgol58はこの後に生まれてくる数々のプログラミング言語に多大な影響を与えています。この時点でプログラミング言語の基礎は固まっていたと言っても過言ではありません。

C言語やオブジェクト指向型言語の誕生

1970年に入るとプログラミング言語の世界に一つの契機が訪れます。今でも多くの人が勉強し、現在のプログラミング界隈でも利用されることの多いC言語が計算機械学者「デニス・リッチー」を中心にして開発されます。このC言語の特徴は汎用性の高さにあります。それはコーディングやメンテナンス性によるシステムやアプリケーション開発等といった様々な分野に使える点に加え、対応している機器の多さにも言えます。パソコンはもちろんのこと、家電や自動車、果てはスパコンにまで、様々なハードウェアに対応できる、という点でも汎用性が高いです。また、同時期にはオブジェクト型言語の概念が誕生しました。それまでは手続き型と呼ばれる、上から順番に文章を読むようにしてソースを実行していく言語ばかりでしたが、このオブジェクト指向型言語はそれまでと違い、予め設計図のようなものを記述し、それに必要な要素を与えることで動きを組み立てていくように記述します。現代ではこのオブジェクト指向型言語が主流になっています。

進むプログラミング界隈

1980年代にはC言語を中心にプログラミング界隈は成長します。1983年にはC言語にオブジェクト指向の要素を組み込んだC++が開発されます。しかしこの時代はまだオブジェクト指向が認知されておらず、システム開発の中心はC言語が担っていました。オブジェクト指向が主流になるのはもう少しあとの話になります。また、C++が開発された時に同じくオブジェクト指向をメインに据えたObjective-Cが開発されます。こちらは後にSwiftが開発されるまでの間、iPhone等のMac製品の開発の主流を担っていました。更に1987年には、現在でもかなりの人気を誇るPerlが開発されました。こちらは開発効率の高さや対応言語の多さ、自由度の高さ、後付け機能の付けやすさ等々の理由から世界中で人気があります。また、それだけ人気があるので後付け機能も様々な人が開発されています。このように現在のプログラミング界隈に影響を及ぼすような言語が開発され始めました。

2020/12/01

かしはら市 PGA プログラミング教室 Scratchレッスンについて

初めての方にScratchを勧める理由・1

プログラミングを初めてする方や小学校低学年の方にはScratchをまずは受講するようおすすめしております。いきなりJavaScriptやHTML、C言語等を学ぼうとすると考え方の基礎や処理の仕方を覚える前にまず立ちはだかる壁としてコーディング作業があります。コーディングとはプログラムを実際に各言語のルールに合わせて記述することなのですが、ほとんどの言語が英語ベースです。英語が苦手な人はこの時点でかなり心が折れそうになるかと思います。さらに、学校で教えてもらえるような英単語ではなく専門的な単語が多くあります。さらに普段PCで使わないような記号等も列挙しており、見ただけでしり込みしてしまいがちです。考え方や処理の順番など、プログラミングの基礎がわかってくれば一気に理解度は進むのですがそれまでが非常に遠いです。そこで活用されるのがScratchになります。こちらはプログラミングの基礎を学ぶために開発されたものになります。

初めての方にScratchを勧める理由・2

では何故Scratchがプログラミングの基礎を学ぶのに最適なのでしょうか。それは、Scratchにはコーティング、つまり文字を書く必要が無いからです。各種命令を実行するためのブロックを処理する順番に並べていくだけで簡単にプログラミングを行うことが来ます。さらに日本語にもしっかりと対応しているため、目標の動きをしっかりと把握し、文章にすることが出来ればその日本語の通りにブロックを用意し、順番に並べることでプログラムがほぼ完成します。この目標の動きを把握し、文章化するという作業がプログラミングで最も重要な作業であると言っても過言ではありません。なのでScratchでのレッスンではこの作業をしっかりと意識してもらえる様務めております。お手本を見てそれを再現するのが基本的な流れですが、そのお手本はどのような動きをしているのかを意識してもらい、実行するためにそれまでに学んだものを駆使していく、という作業に慣れてもらえたらと思っております。

Scratchで教える事 座標について

Scratchをまず教えることは座標の概念です。平面上の位置を確定させるために必要な情報が数字2つであると説明します。ここで大事なのは座標そのものではなく、あるものを確定させるために必要な情報が何なのかを意識s手貰うことです。プログラムでは様々な情報をもとに動きを決めます。最終的にさせたい動きに必要なものは何なのかをしっかりと意識してもらうために、まず位置を決める座標について解説しています。そのあとは座標の数字の変え方やコスチュームの変更のさせ方を指導し、スプライトを好きな位置に表示させられるようになってもらいます。位置を好きに変えられる、どのように変化させれば良いかを把握できるようになってもらうことで他の情報を触る際にも活かしていけるようになります。また、座標の考え方は実際にプログラミングをしていく上で頻出するのでここで慣れておいてほしいという思いもあります。

Scratchで教える事 メッセージについて

メッセージとは、Scratch上での各スプライト間での情報のやり取りになります。Scratchを知らない人にはちんぷんかんぷんだと思うので簡単に説明しますと、登場人物Aが何かをしたときに登場人物Bが何かをする、という命令を作りたい場合、Aが行動したあとに合図を出します。この合図がメッセージと呼ばれるものです。この合図は登場人物全員が同時に聴きます。Bも勿論その合図を聞きます。なのでBには合図を聞いたときに行動する、と命令しておきます。これで予定通りの動きになります。このメッセージはプログラミングにおいてすごく重要で、ある事象と別の事象を関連付けて考え、全体を通して命令を繋げていくやり方の練習になります。実現したい動きが1つで完結している場合は必要ありませんが、複数の要素が関係してくる場合も多々あります。その際にこのメッセージを使った処理を思い出していただけたらスムーズに記述できるかと思います。

Scratchレッスンの目標

Scratchを使ったレッスンの最終目標ですが、それはプログラミング的思考の習得です。目的に合わせて必要な命令や情報をそろえ、それらを適切な順番で処理出来る様に組み合わせていく流れを習得してもらうことがScratchレッスンの目標になります。必要な情報が何なのかを得る訓練が座標の流れになりますし、それらを適切に処理していく際に手段の一つとして使えるものがメッセージになります。その他にも多数の命令ブロックや条件ブロックをレッスンしていきますがそれらはすべて手段の一つです。最終的には自分で取捨選択し、最適な順番で処理するようになってもらえたらと思います。プログラミング的思考をマスターできたな、と感じた生徒様には引き続きより本格的なScratchでのゲーム製作に挑戦してもらったり、各種プログラミング言語の習得に進んでもらったりしています。逆に習得が不十分だなと感じた生徒様には足りない部分を復習として再度レッスンを受けなおしていただく場合もあります。

2020/11/28

橿原市 初心者・子どもにおすすめのプログラミング学習

今、プログラミングを学ぶ理由

現在、小学校や中学校等の義務教育期間内にプログラミング学習を必修化させる動きが来ています。それに合わせて就職や転職活動をされている方の間でもプログラミングを学び、習得したいという方が増えて来ています。理由はそれぞれで少し違ったりします。小学生に学んでもらう理由はプログラミング的思考の習得の意味合いが大きく、プログラミング学習という名前ですが実際にプログラミングをせずに考え方だけ学ぶ方針の学校もある程です。中学生以降ではちょっとずつプログラミングに触れていく内容の授業も出てくると思います。ただ、ここでも実際にプログラムを組んでいくのではなく身の回りに使われている技術を知る目的が大きいです。現在ではコンピュータを活用した機械が身の回りに溢れています。これらをより活用していくために最低限の知識を詰めていくのが中学校でのプログラミング学習になります。そして最後に大人の方々ですが、日本はAI技術が遅れています。特にプログラマーの不足が深刻化していますので求人は一杯あります。なので就職にとても有利になっています。

身の回りにあるプログラミング技術の結晶

先ほど述べたように現在、身の回りには様々なIT技術が活用されています。最もイメージしやすいのはパソコンです。またスマートフォンやゲーム機などもプログラムが組まれていることが分かりやすいかなと思います。意外と気付かないところでは各種家電や自動車等です。これらもある一定の動きが予めプログラミングされています。このように身の回りに存在するあらゆるものにプログラミング技術は使用されています。これらを普通に使う分には特に専用知識はいりません。しかしこれらのコンピュータは仕組みを理解することでより便利に、より快適になります。これからの社会ではさらに様々なコンピュータが増えていくのでそれらに対応できるよう今の内からしっかりとプログラミングについて把握していく必要があるのです。プログラミングを実際に出来るようになる必要はまだありません。どのようにプログラムが作られるのか、どのようにして動きを命令しているのかを把握しましょう。

子ども・初心者がプログラミングを学ぶには

プログラミングを学ぶ際にはまず目標を決めましょう。プログラミングをしっかりと理解し、プログラムを自作出来る様になるまで頑張るのか、プログラミング的思考の取得を目指し、将来に役立てる様にしていくのか、取り合えず流れだけつかんでみて楽しそうだったら続けようかな、等です。そしてその目標達成を目指していく際に自分がどの程度プログラミング的な考え方を出来るのかをチェックします。少しでも躓きそうだと感じたらまずはScratch等のプログラミング教育ツールから触るのがおすすめです。Scratchではプログラミングの中でも特に躓きやすい”英語での記述””文法”の2つが簡略化されています。文字を書いていくのではなく命令に応じたブロックを並べていくので視覚的、感覚的に分かりやすくなっています。実際のプログラムと同じく上から順番に処理し、ループや条件分岐などもしっかりと設定できますのでプログラミング初心者の方や子どもでもかなり本格的なプログラムを作成できます。

Scratchでプログラミングを学ぶ際に意識すること

プログラムを自作するのが目標の場合、Scratchを学び、ある程度プログラミングの流れをつかめたら次は本格的に自作プログラムの作成に入るはずです。その際に必要なプログラミング言語も確認しましょう。動きに合わせて最適な言語があるはずです。もしくはScratchで実現させる選択肢もあるでしょう。このように目的に合わせて必要なものを自分で選択していく必要があります。これはScratchを学ぶ際にも意識していくべき考え方になります。基本的にお手本を再現していくのがScrachのレッスンになります。お手本の動きをしっかりと確認し、どのような命令が必要なのか、どのような組み合わせをしていけばいいのか、どのような順番で実行していくのか等、プログラミングの基本的な考え方はScrachでも学べます。この流れをしっかりと掴むことで別の言語でもスムーズにプログラミングをしていくことが出来ます。

初心者の方におススメのプログラミング言語・JavaScript

上記ではプログラミングをまったく触ったことのない人向けのおすすめとしてScratchをお勧めしました。しかしScratchは元々が子ども向けですので中学生以上の方には少し子どもっぽいかもしれません。学べる内容的にはScratchでも問題ないのですが、考え方を分かっている人には実際のプログラミング言語を触っていく方が楽しいかと思います。その中でよくおススメされるのが”JavaScript”です。この言語は主にWebページに動きをつける際に利用されています。HTMLやCSS,PHPも並行して学べるとより良いのですが初心者にはさすがにヘビーですのでまずは一つJavaScriptに絞ってみましょう。おススメの理由ですが、開発環境を整えるのがとても簡単だということです。PCに元から入っているメモ帳でも作ることが出来ます。もちろんメモ帳では不便なのでより便利なテキストツールを探していくべきですが、最初のハードルが低いのは利点です。とにかくプログラミングをしてみたい、コーディングの雰囲気がつかみたいという方にはJavaScriptをおススメします。

2020/11/24

かしはらし プログラミング的思考を小学生に求める理由

プログラミング的思考とは

プログラミングを行っていく際、基本的にはまず目標を定め、その目標に必要なものをしっかりと把握してから試行錯誤を開始していきます。どのような動きが必要なのか、組み合わせ方はこれでいいのか等、1つ1つの動きに対応した書き方をどのように組み合わせていけばより効率よく目標を達成できるのか、といったものをしっかりと論理的に考えていきます。この考え方をプログラミング的思考と呼び、文科省ではこれの習得を目指すような方針を立てています。難しく話しましたが要するに、何をしたいのかを明確にし、それに必要な物を考えてそれらを効率よく組み合わせていきましょう、ということになります。うまくいかなかった場合はもちろん試行錯誤するのですがその際にも何がダメだったのか、原因をしっかりと明らかにしてからそれの解決策を考えていくのが効率の良い思考錯誤方法になります。これらを繰り返して目標達成を目指していきます。

プログラマー以外でも必要なのか

プログラミング的思考はプログラミング以外にも、あらゆる場面で使用されます。例えば日常生活でも先に完成形を思い浮かべ、それに必要な物を準備し、最適な手順を踏んで行くといった工程を踏んだ行動は少なくありません。普段は特別に意識をしていないだけで、効率的な過程を求めているのです。そして、社会で生きていく中で目標をしっかりと定め、必要な過程を最適な手順で進めていくことはとても重要です。無駄を省き、効率を上げていくことでよりよい成果を上げられるためです。もし目標にたどり着けなかったとしても大丈夫です。必要な過程をしっかりと判別しているため、それぞれの内容がわかっているはずです。ミスの内容に対してどの過程が悪かったのか、改善するためにはどのようにすればよいのかが容易になってきます。失敗を恐れずに試行錯誤を繰り返し、目標達成に向かって論理的に進んでいくためのサポートとしてこの考え方をより深く身に着けていくことが重要になってきます。

プログラミング学習の内容とは

プログラミング的思考とは言いますが今まで説明してきた通り、必ずしもプログラミングのみでしか習得できないものではありません。常日頃からしっかりと意識して目標を決め、それに必要な物や効率的な過程を考えていけば自然と身につくはずです。しかし、逆に言うと意識していかないとなかなか身につかないものでもあります。さらに小学生くらいの子供に習得してもらおうと思うと一段と難しくなってきます。そこで出てくるのが小学校からのプログラミング学習の必修化です。小学校の内から意識してプログラミング的思考を使ってもらい、早期の習得を目指していく流れになります。実際にプログラミングをしてもらうことはほとんどなく、様々な科目でプログラミング的思考を意識した内容を取り入れていく形になっていきます。もちろん実際にプログラミングに触れていく学校もあると思いますが作業環境やPC台数の問題から少数になると考えられます。

プログラミング学習が必修になる前に出来る事

現在、プログラミング教育は急速に展開されています。お父様やお母様の中にはパソコンに不慣れな方や苦手意識を持つ方も少なくないと思います。そんな中でご自身のお子様に近い将来、プログラミング教育が必修になりますと多くの不安を抱えると思います。小学生にパソコンは早いんじゃないのか、プログラミングなんて難しそうなのに大丈夫なのか、下手に触って壊したらどうしよう等、数えだしたらキリがありません。プログラミング学習が始まるまでに出来る事は2つほどあります。1つはしっかりとプログラミング学習の内容について調べる事です。通われる学校によって内容は変わってきますので直接学校へ問い合わせるのもいいかと思いますし、熱心な学校ですとHP等に情報を挙げていたりします。情報収集をしっかりと行い、どのような教育が行われていくかを知るのが安心につながります。次にプログラミング学習が始まった背景を知ることです。上記で述べた通りプログラミング的思考の習得を目的としていますが何故そうなったのかまでしっかりと把握しますとより理解が増します。

これからの学習内容について

コロナウィルスの流行もあり、今年度からオンライン学習を本格的に取り入れる学校がかなり多くなりました。それに合わせて先生も生徒も父兄もパソコンに触れる機会が非常に多くなりました。つまりコンピューターに触れ、命令する機会が多くなったということです。その命令がどのように作られているのか、どのような仕組みになっているのかを知ることでよりコンピューターを活用できるようになります。その知識を得るきっかけにプログラミング学習はなってくれると期待されています。今までは専門性が強く、初心者にはハードルが高いようなイメージがありました。その原因にはプログラミングに慣れていないことが多分に含まれています。今後、社会はより情報化が進んでいきます。そのため、より優秀なプログラミング等のIT技術を持った人材が求められています。小学生の内からプログラミングに少しでも慣れ親しんでもらうことで将来、優秀なプログラマーやシステムエンジニアになってもらえたらと思います。

2020/11/17

橿原市 プログラミング教育を小学生の間に学ぶ理由について

プログラミングとは

2020年度以降から本格的に小学校や中学校にてプログラミングが必須科目に入ってきます。これからの時代、コロナウィルスの影響もあり、よりネットワーク上でのやりとりやプログラミング関係の知識、技術が問われる時代いなっていくと思われます。今回はそんなプログラミング教育について、さらに言うとそもそもプログラミングとは何なの、というところから説明していきたいと思います。プログラミングとはコンピュータに対して決められた順番、ルールに応じて指示を出し、コンピュータに自分の思い描いた通りの動きをさせることを言います。コンピュータにさせたい動きをしっかりと把握し、それを実行できるように全体を設計していきます。本番の前にチェックをし、うまくいかなければ何がダメで解決策どうすればよいかを考えていきます。これらを繰り返し、最終的に自分の思い描いた通りの動きにすることがプログラミングの目標になります。こうして出来上がったものが私たちの生活をより便利にしてくれています。

小学校でのプログラミング教育とは

以上で述べた通りプログラミングの作業は大変です。専門的な知識が必要になることも多数あります。小学生の内に必修化されるプログラミング教育とはどのような内容か、説明していきます。小学生で学ぶ内容はプログラミング作業そのものよりも、物事を解決に導くための論理的な考え方であるプログラミング的思考になります。物事を論理的に考え、より効率的に問題解決を目指していく考え方を小学生の間から少しずつ習得していくのが狙いになります。しかしプログラミング必修化と言っても教科としてプログラミングが追加されるわけではありません。既存の科目の中にプログラミングの内容を織り交ぜていく、という形になります。ですので各学校のPC、インターネット環境などの現状に合わせて何年生のどの科目で取り組んでいくか、が変わってきます。小学高出のプログラミング教育はプログラミングに触れるのが目的ではなく、あくまでプログラミング的思考の取得を目指すのが目的となっています。

プログラミング的思考とは

プログラミング的思考とは先ほど述べたプログラミングの一連の流れの様に目標の達成に必要なものを把握し、それに合わせてどのような作業が必要なのか、どのような組み合わせがより効率がいいか、どこがおかしくてどのように改善していけばいいのかといったものを論理的に考えていく思考方法になります。必要な動きが何なのかをそれぞれ分けて考え、動きに対応した命令を記述していき、それらを組み合わせて上手くいくかを試していきます。これらすべてを論理的に解決までもっていくことがプログラミング的思考になります。大事なのは目標を最初にしっかりと定める事です。目標に合わせて必要な動きを確認し、それらに合わせた命令を一つずつ設計していきます。一つずつが完成したら次はそれらを組み合わせます。成功しなかったらその原因を考え、解決策を見つけていきます。この考え方はプログラミングに限らず様々な職種での問題解決に必須のスキルなります。

なぜ今プログラミング教育が必修になるのか

上記で述べた通り、プログラミング的思考は様々な場面で役に立つ思考方法です。しかしこの思考方法は一朝一夕で身につくものではありません。なので小学生の内から意識してプログラミング的思考に挑戦することで、将来様々な問題解決に役立てるような人材に育ってほしいという思いがあります。しかし、それ以上の理由として、現在身の回りにコンピューターを用いたものがありふれていることです。仕事や家事、移動手段から教育現場、娯楽にまでコンピューターが使用されています。もちろんこれらを利用することで生活水準を大幅に向上させることが出来ますし、問題点の解消にも役立ちます。しかし、それらを正しく使うためには仕組みを知る必要があります。コンピューターはプログラムに従います。プログラミングに触れる機会を増やすことでコンピューターに命令できるようになるスキルも見につきやすくなり、よりコンピューターを活用することが出来るようになります。これがもっとも大きな理由であると言えます。

小学生でも出来るプログラミングツール”Scratch”

プログラミングと聞くと英語がずらっと並んでいたり、専門的な知識が必要で小学生にはとても難しいイメージがあります。しかし、Scratchというツールを用いればプログラミング初心者でも、小学生でも簡単にプログラミングを行うことが出来ます。理由は大きく分けて2つあります。1つ目に日本語に対応していることです。すべての命令や動き、情報が英語ではなく日本語で記載されています。また、ひらがなにも対応しているため感じを習っていない年齢のお子様でも日本語の意味さえ分かってしまえばある程度の動きを理解することが出来ます。2つ目にプログラムの流れが視覚的に分かりやすいことです。Scratchでは命令の1つ1つがブロックで表現されており、それらを並べることでプログラミングしていきます。そして上から順番にブロックに記載された命令を実行していきます。さらにブロックには色や形にも意味があるのでより見た目でわかりやすくなっています。これら2つの理由からプログラミングを最初に触れる際はScratchがおすすめされています。詳しい使い方や仕様については別ブログにて解説しております。