インドの小学校で教える プログラミングの授業 読んでみた。

[記事公開日]2017/04/15

[最終更新日]2024/03/16

プログラミングって難しい。教えてもらっても、
なかなか理解できない、などあります。
この、インドの小学校で教える プログラミングの授業の本。

IT大国のインドでは、プログラミングを日本でいう小学5年生から学び始めているみたいです。
そんなインドでのプログラミングの入門授業を参考にITが苦手な人にも、わかりやすく解説。

世界一やさしいプログラミング講座で、プログラムなるものができた。
3つの指示を覚えれば、誰でもプログラムが書ける。
プログラミングするのに不向きな人はいないなど。説明してます。

これからの時代、
日本でもプログラミングに関する教育が大切になってくるみたいです。

プログラミングを勉強したくても、専門用語が多くのってる本は難しすぎて、よくわからない
スクールに通う時間もない。スクールに通う、お金もないなど。

自分も過去に、Webスクール(求職者支援訓練)で、プログラミングなどを学びましたが、先生の教え方が下手で、全然わからなかったです。
自分だけかと思ってたら、クラス全員が、理解できないままの授業だった。

ちなみに、その先生は、今は、某スクールで教えてるみたいです。
肩書に、すごい事を書いてるけど、受講した生徒、働けてない人が多いじゃん。

自分が教え方が下手ですいませんとか、なんも、感じてないのかな。

他のスクールとかでも聞きましたが、ほとんどの講師の方は、独学でプログラミングを勉強して、今に、いたってるとかも言ってました。

この本では、
インドのプログラミング教育を実際に受けて育ったインドの方が先生になって、
僕みたいな人に、レクチャーした本があれば、一般の人にとっても、わかりやすい本になると思う。
また
本場のインドの人からプログラムのことを、教えてもらい理解できたとすれば、それは、もうほとんど、日本人の大人すべての人がわかってしまうような。

私し自身も、小学校~中学校の時にインドのプログラミング教育を受けました。
ただ、私よりプログラミングに詳しい方がいますので、その方シャルマさん(仮名)を、ご紹介。

そんな形で講義内容を、まとめたのが本書です。
1時間目から3時間目まであり4時間目は、読者の方が簡単なプログラミングを実践するためのガイドを載せてます。
この授業(本)をすべて終える頃には
あなたは、きっと新しい世界に目を開いているはずです。

プログラミングって、けっこう面白いし、楽しいな。
思っていたほど、難しくもないな。と書いてます。

インドの小学校で教える プログラミングの授業 (青春新書インテリジェンス) 新書 – 2017/1/6
織田 直幸 (著), ジョシ・アシシュ (監修)

目次
インドの小学校で教える プログラミングの授業 読んでみた。
1時間目、インドが数学やコンピュータの世界で席巻している理由やインドの教育、IT界における実態とは。
2時間目、コンピュータの歴史や動く仕組みとは。
3時間目、プログラミングのキホンとは。
4時間目、読者の方が簡単なプログラミングを実践するためのガイド

 


 

WebCampPRO
無料体験会実施中
転職を本気で考えている方向けのプログラミングスクール!
転職を保証しているため、未経験からIT業界へ転職を求めている方へおすすめです。
受講完了後、3ヶ月以内に転職・就職できない場合は ”全額返金” しています!

 


 

WebCamp
無料体験会実施中
Webスキルを習得!大人気テックスクール
短期で学びたい方のための講座です。
1ヶ月で集中して一気に学ぶことができます。

 


 

TechAcademy
未経験からプロを育てるオンラインブートキャンプ

最短4週間で未経験からプロを育てるオンライン完結のスクールです。
どこかに通う必要なく、自宅でもプログラミングやアプリ開発を学ぶことができます。

 


 

プログラミングスクール
Tech Boost
3ヶ月でエンジニアになれます。

 


 

プログラミングを学ぶなら

ポテパンキャンプ

 


 

日本最大級のまなびのマーケット
ストアカ

ストアカは、教えたい人と学びたい人をリアルにつなぐ、CtoCのまなびのマーケット。
ビジネス・ITスキルから趣味の習い事まで、170以上のジャンルで気軽に参加出来る講座を11,400件以上掲載。登録講師数9,000人を突破。 現在も利用ユーザーが増加しております。

 


 

プログラムの絵本 プログラミングの基本がわかる9つの扉 大型本 – 2016/9/13

 


 

こどもプログラミング教室 Kindle版

今年こそは。いま、はじめてのプログラミング!
プログラミングをやってみたいけれど、どんなことからはじめたらいいのかわからない。
そんなことはありませんか?

パソコンにはいっているエディタとブラウザがあれば、プログラミングははじめられます。
プログラミング言語はJavaScriptだから、いろいろ応用できる!

こどもも、おとなも、Let’s プログラミング!

よくわかるJavaScript Kindle版

プログラミングを始める前に Kindle版

子供に「プログラミングをやりたい!」と言われたら読む本 1「学校の勉強は将来役に立つ?」: ~ずっと活かせる学習習慣と学習内容~ (team-aries) Kindle版

子供に「プログラミングをやりたい!」と言われたら読む本 2「問題解決能力を磨く考え方」: ~将来役立つ普遍的な力を身につけるには~ (team-aries) Kindle版

小学生のための スター・ウォーズで学ぶ はじめてのプログラミング 単行本 – 2019/9/19

 


 

こどもプログラミング教室 Kindle版

この夏休みは、はじめてのプログラミング!

プログラミングをやってみたいけれど、どんなことからはじめたらいいのかわからない。
そんなことはありませんか?
パソコンにはいっているエディタとブラウザがあれば、プログラミングははじめられます。
プログラミング言語はJavaScriptだから、いろいろ応用できる!

この夏休み、家族みんなで、プログラミングをはじめてみませんか。
夏休みの自由研究にも、ピッタリ!
こどもも、おとなも、Let’s プログラミング!

Chapter 1 プログラムってなんだろう?
Chapter 2 プログラミングってどうやるの?
Chapter 3 プログラミングの準備をしよう!
Chapter 4 JavaScriptでプログラミングしよう!
Chapter 5 プログラミングをやっていこう!
Chapter 6 ステップ1:絵を表示しよう!
Chapter 7 ステップ2:クリックして返事をもらおう!
Chapter 8 ステップ3:クリックして絵を変えよう!
Chapter 9 ステップ4:自動的に絵を変えよう!
Chapter 10 ステップ5:ゲームとして完成させよう!
Chapter 11 もっとプログラミングしよう!

 


 

ネットワーク超入門講座 第4版 単行本 – 2018/3/1

 


 

ある日、クラスメイトがロボットになったら⁉:イギリスの小学生が夢中になった「コンピュータを使わない」プログラミングの授業 単行本 – 2018/8/27

 


 

Scratchではじめる ときめきプログラミング 単行本(ソフトカバー) – 2018/8/20

 


 

マンガでざっくり学ぶプログラミング 単行本 – 2018/7/17

 


 

10才からはじめるゲームプログラミング図鑑: スクラッチでたのしくまなぶ 単行本 – 2017/11/21
キャロル・ヴォーダマン (著), 山崎 正浩 (翻訳)

ゲームは自分で作ると、もっと楽しい!

『10才からはじめるプログラミング図鑑』に第2弾が登場!
アクションゲームやレーシングゲーム、

 


 

10代からのプログラミング教室 (14歳の世渡り術) 単行本 – 2017/12/21

プログラミングができると、どんないいことがあるの?どうやればできる?苦手意識があっても大丈夫。自分で身につける技術を伝授!

 


 

親子でかんたん スクラッチプログラミングの図鑑 【Scratch 3.0対応版】 (まなびのずかん) 単行本(ソフトカバー) – 2019/7/16

小学生から大人まで! 親子で楽しく作れる!
図鑑形式でとっても見やすい! 手順がわかりやすい!
学校教材にも最適! プログラミングがしっかり身につく!

 


 

子どもの考える力を育てる ゼロから学ぶ プログラミング入門 単行本 – 2017/10/13
すわべ しんいち (著),‎ 熊谷 正朗 (監修)

本書はプログラムを通じて、子どもの考える力を育てることを目標に作られています。

 


 

マウスで楽しく学べるスクラッチ 子どもプログラミング入門 単行本 – 2017/11/30
PROJECT KySS (著)

プログラミングの世界へようこそ!

 


 

7さいからはじめるゲームプログラミング 単行本(ソフトカバー) – 2017/9/22
スタープログラミングスクール (著), 小谷 俊介 (編集)

プログラミング教育必修化決定!
本書は、小学校一年生もわかるカンタンな言葉とイラストでプログラミングの基礎を学び、さまざまなゲームを楽しんで作りながらプログラミング能力を高めていく一冊です。

ゲームプログラミングで身につく4つのチカラ◎
論理的思考力
創造力
表現力
コミュニケーション力

プログラミングは「プレゴールデンエイジ」と呼ばれる就学期の子どもの知育に最適。
親子で読める・使える・楽しめる一冊です!

 


 

理解するほどおもしろい! パソコンのしくみがよくわかる本 大型本 – 2017/1/19

本書はパソコン、周辺機器、OS、ソフトウェアなどのしくみについて解説する本です。一般人の趣味の延長や向学の対象として、パソコンについて詳しく知るために読むことを想定しており、特にシニア層の興味をひく内容です。パソコンを構成する各パーツの構造は、イラストを使って説明します。また、セキュリティに対して不安を感じる人が多いことから、ウイルス、不正アクセス、情報漏洩などの対策についても詳しく解説しています。

 


 

図解 プログラミング教育がよくわかる本 (健康ライブラリー) 単行本(ソフトカバー) – 2017/7/29

【家庭で、学校で、子どもと一緒に体験しよう! はじめてのプログラミング教育】

子どものプログラミング教育に注目が集まっています。

1 プログラミング教育とはなにか
2 家庭で遊びながら学べるもの
3 小学校での実践がはじまっている
4 なぜいま子どもたちに必要なのか
5 プログラミング教育の効果とは

 


 

先生のための小学校プログラミング教育がよくわかる本 単行本(ソフトカバー) – 2017/8/7

小学校でプログラミング教育が義務化されますが、
そもそも何をすればよいか、何が目的なのかがよくわからず、
不安を抱えている先生が多いのが現状です。

本書は、そのような不安や悩みを解消するための本です。

・どうして、いま何のためのプログラミング必修化なのか?
・そもそもプログラミングとは何か、何を教えればよいのか?
・政府や文部科学省が提示する方針や目指すもの
・小学校ですでに始まっているプログラミング学習の事例
・授業や指導案への落とし込みや評価軸

など、小学校でプログラミング教育を実践するために必要なことを
わかりやすく解説していきます。

プログラミングを知らない(わからない)小学校の先生は
もちろんのこと、初等プログラミング教育に関心のある教育者、
先生を目指す学生、どのような教育が行われるか知りたい
保護者におすすめの一冊です。

 


 

動かして学ぶセキュリティ入門講座 (Informatics&IDEA) 単行本 – 2017/5/24

「マルウェア」「ランサムウェア」「標的型攻撃」、世界規模でのセキュリティ攻撃が頻発し、それに対応するための知識が早急に求められています。
新米セキュリティ担当者として求められる基礎的な知識から、現場のプロが実際に利用しているツールによる予防・対策方法までを、豊富な図解と共に、優しく丁寧に解説していきます。
実際にインストールして動かしてみながら、攻撃の手口、怪しい動作の見抜き方など、セキュリティ対策の基本を学んでいきましょう。

 


 

はじめてのプログラミング (学研まんが入門シリーズ) 単行本 – 2017/4/18

 


 

パソコンがなくてもわかるはじめてのプログラミング(全3巻セット) 単行本 – 2017/3/1

 


 

パソコンがなくてもわかる はじめてのプログラミング〈1〉プログラミングって何だろう? 大型本 – 2017/3/1

プログラミングって何だろう?

 


 

パソコンがなくてもわかる はじめてのプログラミング〈2〉ゲームを作ってみよう! 大型本 – 2017/4/1

ゲームを作ってみよう!

 


 

パソコンがなくてもわかる はじめてのプログラミング〈3〉コンピューターを動かす魔法の言葉 大型本 – 2017/4/1

コンピューターを動かす魔法の言葉

 


 
インドの小学校で教える プログラミングの授業 (青春新書インテリジェンス) 新書 – 2017/1/6
織田 直幸 (著), ジョシ・アシシュ (監修)

インドの小学校で教える プログラミングの授業 読んでみた。

目次は、1時間目から3時間目まであり4時間目で、実際にプログラミングをします。
1時間目から3時間までは、読者の方が、よりわかりやすくなると考えて、先生(シャルマさん仮名)が語る、先生が教えてくれる、という形式で、先生の講義を、まとめさせていただきました。

インドの小学校で教える プログラミングの授業 (青春新書インテリジェンス) 新書 – 2017/1/6
織田 直幸 (著), ジョシ・アシシュ (監修)

1時間目、インドが数学やコンピュータの世界で席巻している理由やインドの教育、IT界における実態とは。
2時間目、コンピュータの歴史や動く仕組みとは。
3時間目、プログラミングのキホンとは。
4時間目、読者の方が簡単なプログラミングを実践するためのガイド

ここでのプログラム体験用に採用したのはSmall Basicというマイクロソフト社のソフトです。
このソフトがインドの小学校で使われているわけではありませんが初心者に、
非常に使いやすいソフトなので、採用してます。と解説。

Small Basicこのソフトは、Windows用なので、Macの方は利用できません。
(MacにWindowsを入れたり、他の方法で、できますが。)


mokuji


mokuji2


mokuji3

 


 

1時間目、インドが数学やコンピュータの世界で席巻している理由やインドの教育、IT界における実態とは。

インドのIT教育は、こんなに進んでいた!
インド人には、なぜ、プログラミングの達人が多いのか?。


1hour

ゼロを発見したインド人。
コンピュータが2進法で動いていることは広く知られていますが、
このゼロの発見がなければ2進法は生まれず、コンピュータも作れなかったといわれているからです。

ゼロという状態は、何もないということではなくて、
ゼロという状態があるということです。

例えば、数字は1から始まってプラス方向に進めば、どんそん大きくなります。
それと同時に、数字はマイナス方向にも進みます。
そのちょうど真ん中、
プラスマイナスして見かけ上、何もない状態をゼロというのです。

プラスとマイナス
それぞれの方向に進む、ちょうど中間。これをゼロと。

ゼロがなくては計算そのものが成り立たないと解説。

 


 
インドの数学者ブラーマグプタの本には、
いかなる数にゼロを乗じても、結果は常にゼロであること。
いかなる数にゼロを加減しても、その値に、変化が起こらないこと。
が、ゼロの根本的性質であると明記されています。

例えば
a ✕ 1の計算ですが、これはaです。

では、a ✕ 0は0になります。

0を掛けると0になる。
どんな数字に対しもゼロを、かけたらゼロです。

これが、ブラーマグプタが言う、いかなる数字に0をかけても結果は常に0ということです。

さらに、こんなルールがあります。

a + 0 = a

a − 0 = a

a ✕ 0 = 0

a ÷ 0 = 0

ゼロの発見によって、計算そのものの仕組みが成立して
いろんな計算ができるようになりました。
 


 
日本では、6歳で小学校に上がります。

小学校でのコンピュータ教育の実態とは?
インドでは、幼稚園で九九を覚えます。
日本と違い、スタート時点が違います。
日本では、九九は小学2年生で習います。

ほとんどの小学校には、コンピュータルームがあり生徒は自由に使えます。

インドでは、貧困の差で自宅にパソコンを持ってない家庭も多いです。
そのため、子供達は、授業が終わったら学校に残るか、ネットカフェでコンピュータを使います。

ネット大国です。

家にコンピュータのない小学生は、ネットカフェでコンピュータを使います。
インドの小学1年生は、5歳なので日本でいう、幼稚園の年長組です。
最初はテキストを見ながら、ゆっくり文字を入力するなど、ゲーム感覚で始めることが多いですが大きくなると、宿題などはネットカフェですることがあるとか。

インターネットカフェ(英:Internet café)
https://ja.wikipedia.org/wiki/インターネットカフェ

日本とかなり違うかもです。
最近だと、びっくりしたのが、日本の4歳ぐらいの子が、iPhoneか、iPod touchなのか、わからないけど、持ってて、びっくりした。

 


 

Apple iPod touch 32GB 第6世代 2015年モデル シルバー MKHX2J/A

 


 

お金持ち子とか、小学生でもiPhoneとか持ってるし。

自分が小学生の頃は、ファミコンで遊ぶのが、やっとだった時代だったので。

日本では、小学生はネットカフェには行きません。
とういうか、入れないです。(安全面から入れないです。)

ネットカフェそのもの、作りも日本とインドでは違うのかもしれません。
インドでは、学校教育は英語でなされます。

これで、日本とは、大きく差がつきます。

プログラミング言語も基本的には英語です。
でも、プログラムで使われてる英語実体は、それほど、難しくないので、
英語力とは、さほど関係ありません。と解説してます。
 


 

日本は先進国なのに、いまだに英語が苦手な人が多いです。
でも、インドでは、なぜ、みんな授業についていけてるの?
それは、教え方だと思います。

日本の小学校では、先生が黒板の前に立ち、
黒板を使ってという授業がスタンダードですよね?

インドでは、遊び道具のように見える、道具を多く使い、
ゲーム感覚で楽しく英語を教えていること。
みんなが、ついていける要因の1つかもしれません。

これは、日本とかなり違うかも。
小学生の頃とか、授業は、わかっても、わからなくても、時間の都合上、進んでいった。
お金持ちの子とかは、学校で習わず、塾に通ってたし。

自分が通ってたWeb系の訓練校(現在は閉校)でも、
授業が、わからないまま、どんどん進んでいった。

自分のペースで学びたいなら、専門のスクールに言ってくださいと、いわれた。
ここは訓練校なのでの、先生の一言。
まぁ、お金儲けで、してた感じはするけど。
スクールに行こうと、行かなくても、先生の教え方が、下手だと
どこに、通っても、同じ気がする感じかも。
 


 

2時間目、コンピュータの歴史や動く仕組みとは。

そもそも、コンピュータは、なぜ動く?の
プログラミング言語って、要はなに?

ハードウェアとソフトウェア
コンピュータを構成する要素は、大きく分ける2つあります。
ハードウェアが機械部分で、ソフトウェアが情報部分です。

ハードウェア (hardware)
https://ja.wikipedia.org/wiki/ハードウェア

ソフトウェア(英: software)
https://ja.wikipedia.org/wiki/ソフトウェア

ソフトウェアがないとハードウェアであるコンピュータは動きません。

ハードウェアは機械部分を動かすのがソフトウェアで、
この2つが同時に存在しなければコンピュータは動きません。

コンピュータは2進法で動いてます。

二進法(にしんほう)
https://ja.wikipedia.org/wiki/二進法

十進法(じっしんほう、英: decimal)
https://ja.wikipedia.org/wiki/十進法

10進法と2進法
 


 


binary-system

10進法は、使う数字は0から9。
数字が増えていくと1桁から2桁、
増えていくと、1から増えて9になって10になります。
9まで行ったら0に戻ります。

10進法は、使う数字は0から9です。

そして、末尾が0になったら1に戻る。

2進法は、使う数字は0と1です。

0、1と進んで、2になったら戻って10になり、
次に11になり、次に100、101、110、111、そして、次は1000になる。
それが2進法です。

 


 

コンピュータは独自の言語を持っている。
コンピュータは、プログラミング言語で動いてます。
コンピュータ専門の言語だと思ってください。

プログラミング言語には、
低級言語と高級言語があります。

低級言語(ていきゅうげんご)

https://www.weblio.jp/content/低級言語

この低級言語は、0と1使う言語で機械語とも呼ばれています。
これは数字の羅列なので、どんなことをコンピュータにやらせたいのかが、作った人、以外には、とてもわかりにくい。0と1が並んでいても、意味がわかりません。


lower-language

人間には、人間用の言語があるようにコンピュータ界にはコンピュータ用の言語があります。
コンピュータを動かすためには、その、プログラミング言語を使って指示を出さなければならないのです。

 


 

そこで、誰もがわかる言語である高級言語が開発されました。

高級言語(こうきゅうげんご)
https://www.weblio.jp/content/高級言語

この高級言語は
英単語や記号、数字などを組み合わせて、
コンピュータに指示するための文章を使ったのです。
これは、英語の文章に近いので、誰でも理解しやすい。
つまり、使った人、以外にも、理解しやすいので、修正や改良が簡単になりました。


high-level-language

 


 

世界初の高級言語が1957年に登場した
FORTRAN(フォートラン)です。

FORTRAN(フォートラン)
https://ja.wikipedia.org/wiki/FORTRAN

これは、科学技術計算が目的だったそうです。

そして2年後の1959年にCOBOL(コボル)という
事務処理(主に在庫管理、や経理用)のための言語が生まれています。
COBOL(コボル)
https://ja.wikipedia.org/wiki/COBOL

さらに6年後、1964年には事務だけでなく科学系の作業にも代頭できる
PL/1(ピーエルワン)がアメリカのIBMなどによって開発されています。

PL/I(ピーエルワン)
https://ja.wikipedia.org/wiki/PL/I

そうやって、人間がわかりやすい高級言語を作り出すことで、
コンピュータそのものを発展させてきました。
 


 
だけど、なぜ?そんなにいくつかも作りだす必要があったのですか?

人間界にも、英語、日本語、イタリア語、中国語、スワヒリ語と、いろいろあります。
それぞれの言語は構文も違えば、単語の数も違っています。
国よっては、ある意味を表す単語がない場合もあります。

翻訳機の登場でコンピュータが一般化。
コンピュータの種類や、やらせたい内容によって言語を変えます。

だけど、コンピュータって0と1を使う低級言語で動くんですよね?
だとすると、0と1だけでない高級言語で、なぜコンピュータが動くんですか?

この時期、
ビル・ゲイツ氏とポール・アレン氏が、とんでもないものを開発しました。
それは、インタープリタと呼ばれるものです。

インタプリタ(英: interpreter)
https://ja.wikipedia.org/wiki/インタプリタ

簡単にいうと、翻訳機です。
インタープリタは人間が理解しやすい高級言語を、低級言語に変換して
コンピュータに指示を出すことができるのです。

彼らは、当時人気だったBASIC(ベーシック)と呼ばれる高級言語で作られた指示を
インタープリタを使うことで瞬時に低級言語に翻訳して、簡単にコンピュータを動かせるようにしたのです。

BASIC(ベーシック)
「beginner’s all-purpose symbolic instruction code」

https://ja.wikipedia.org/wiki/BASIC

 


 

インタープリタが発明されたから人間にも理解しやすい高級言語が発達した感じです。
そしてビル・ゲイツ氏は、このインタープリタの販売から事業を始め大儲けし、IT界の巨匠となりました。

当時は、今みたいにコンピュータは安くなかったです。
今は、一般人でもコンピュータを手に入れてる時代になりました。

初の万人向けのコンピュータとして知られているのは、
Altair(アルテア)8800と呼ばれるコンピュータで
1974年12月にアメリカのMITS社から発売されています。

Altair 8800(アルテア はちはちまるまる)
https://ja.wikipedia.org/wiki/Altair_8800


language

 


 
スティーブ・ジョブズ氏は、1976年に登場した、
Altair(アルテア)8800より、さらに安いコンピュータである。
Apple Ⅰ(アップルワン)を開発して売り出しました。

Apple I(アップル ワン)
https://ja.wikipedia.org/wiki/Apple_I

次のApple Ⅱ(1977年)を開発、
Apple II(アップル ツー)
https://ja.wikipedia.org/wiki/Apple_II

そして1998年に発売された
iMac G3は、大人気になり
iMac(アイマック)
https://ja.wikipedia.org/wiki/IMac

一気にパーソナルコンピュータ、つまりパソコンが身近になったそうです。

そしてBASICと同様にC(シー)言語という高級言語も人気でした。

C言語(シーげんご)
https://ja.wikipedia.org/wiki/C言語

コンピュータの世界ではドッグイヤー(犬の年齢が人間の7倍の速度で進む)以上に早く進んでいます。

1990年代には
オブジェクト指向という言語が支流となっていきます。

オブジェクト指向(オブジェクトしこう)
https://ja.wikipedia.org/wiki/オブジェクト指向

オブジェクト指向プログラミング
https://ja.wikipedia.org/wiki/オブジェクト指向プログラミング

オブジェクトとは部品って意味です。
自分が必要とするデータや処理の手順などを部品として組み合わせ、自分(自分らしい)が作りたいプログラムができるようにした言語です。
オーダーメイドともいえます。

有名なものは、日本人、まつもとゆきひろさんが開発したRuby(ルビー)。

Ruby(ルビー)
https://ja.wikipedia.org/wiki/Ruby

 


 

3ステップでしっかり学ぶ Ruby入門 大型本 – 2018/1/26

 


 

まつもとゆきひろ 言語のしくみ 単行本 – 2016/12/22

世界中で使われているプログラミング言語「Ruby」の作者、
まつもとゆきひろ氏が「言語の作り方」を初めて真正面から解説する本です。

本書のために新言語「Streem」を作りました。2年をかけて新言語を実際にデザイン・実装した取り組みを、試行錯誤の過程も含めて詳しく解説しています。

「今更、言語を作ってどんな意味があるの?」と思う人もいるかもしれません。まつもと氏は言語を作る価値を本書でこう説明します。
プログラミング能力の向上
デザイン能力の向上
自己ブランド化
自由の獲得

 


 

他にJava(ジャバ)などがあります。

Java(ジャバ)
https://ja.wikipedia.org/wiki/Java

Javaは現代では、最も広く使われています。

また人工知能のコンピュータもあります。
今までのコンピュータはどう動くかを人間が仕組んでいましたが、人工知能はコンピュータが自分で考えて動くともいえます。

 


 

3時間目、プログラミングのキホンとは。

プログラミングって、じつはこんなに簡単!
3つの指示を覚えれば、誰でもプログラムが書ける。

プログラミングの語源
プログラムという言葉は古代ギリシャで生まれたとされています。
正確な発音は、プログランマで、訳すと、公に書かれたものです。
つまり、権力者でなくても、公の地位にいる人、公務員などが作成した文書といいます。
ギリシャ時代にプログラムを作ったのは権力者だったとされています。
権力者が作ったプログラムは言い換えると、国や地域を治めていくための法律やルールです。

簡単に言うと、意図した通りに動かすようにするという共通項があります。
ルールまたは、指示に近いものと考えておけば、次に進みやすくなると思います。
 


 

そもそも、プログラムって何?
コンピュータのプログラミングとは、
コンピュータプログラムを作成することにより、人間の意図した処理を行なうようにコンピュータに指示を与える行為であるです。

具体的に言うと

Aボタンをクリックした。
赤い花が画面に出た。

Bボタンをクリックした。
青い花が画面に出た。

それ以外のボタンを押した。
画面に変化はあらわれない。

プログラミングは自分が意図するように動かすための仕組み作り。
 


 

世の中はプログラミングで溢れてる。
日常生活にプログラミングは存在しています。
例えば、音楽会や運動会、結婚式などにもプログラミングはあります。

これらの、イベントは、あらかじめ決まっている順番に、物事が進み(進行)ます。
やるべきことは、紙などに示されていて、参加者が、それを実行するから、会が無事に終了します。

ある一定のルールにそって物事が進行するように仕組むことをプログラミングっていう。

そうして考えると、普段の生活もプログラミングで溢れています。

お店に、入って、買い物などするとき、店員は、マニュアルにそって対応してます。
これもプログラミングになります。

またプログラミングされた機械は、
自動販売機、炊飯器、道路にある信号機も、プログラミングされています。
 


 
今、日本では、大勢の大人がプログラミングスクールに通ってて、
そこでは、もっと別なことが期待されているようなのですが、なんだか、わかりますか?

リサーチによると、通う理由としてIT業界への就職や転職以外に
①物事を理論的に考えられるようになる。
②情報を短時間で処理し、最大限に活用できるようになる。
③最小、最短、の作業で仕事をこなし、効率アップを図れる。
④新しいものを生み出す想像力や創造力を培うことができる。
⑤リーダーとしての資質を育むことができる。
などが挙げれています。と説明。

そうなのかな。時間がないと、なかなか通えないし、大人なって、幅広い年齢層ですが
成人以降の人なのかな?

 


 

なぜプログラミングを知ると仕事の効率が上がるのか?

物事を進める時に、あらゆることを想定して、どんなシチュエーションにも対応できるようにしておかなければ
仕組み、はちゃんと動かないから、仕組み、にならない。つまり人もコンピュータも動かない
ということは、あらゆる起こるべきことを考えなければいけないし、想定外なんて、言い訳はできないから、
想像力はたくましくなる。
どんなことが起きるか予想できるようになるから物事を理論的に進めれたり、考えれたりできるようになる。
1つの仕事のゴールのために何が必要か、どの順番ですることが最も効率がいいかがわかるから、ムダが省けるようになる。など。

プログラミングを学ぶことで、仕事や物事を論理的に考えるようになる。
効率化できるようになる。
1つの仕事を遂行するために、何が必要で、何を、どの順番ですればいいかを徹底的に考えて仕組みを作らなければ意図したことがコンピュータで実行されないわけだから。

プログラミングを理解すれば、仕事の効率化やスピードアップが図れる。など
 


 

世界的企業のリーダーにプログラマー出身が増えている理由。
グーグルのラリー・ペイジ氏

ローレンス・エドワード・“ラリー”・ペイジ
https://ja.wikipedia.org/wiki/ラリー・ペイジ

フェイスブックのマーク・ザッカーバーグ氏
マーク・ザッカーバーグ(マーク・エリオット・ザッカーバーグ)
https://ja.wikipedia.org/wiki/マーク・ザッカーバーグ

Amazonのジェフ・ベゾス氏
ジェフリー・プレストン・ベゾス
https://ja.wikipedia.org/wiki/ジェフ・ベゾス

彼ら3人とも、全員プログラマー出身です。

物事を論理的、効率的に進められるようになり、創造力も鍛えれると仕事を
パーツとしてではなく全体として、捉えることができるようになる。
 


 
プログラミングで覚えるべき基本は、たったの3つ。

コンピュータは
①順次処理
②分岐
③反復
の3つで動いているんです。これがプログラミングの基本です。

順次処理は、
時間軸に沿って順番に処理を進めていくこと。

分岐は、
条件に従って、選り分け。

反復は、
ある作業を繰り返すこと、ループともいいます。

と解説。
 


 
アルゴリズムを知っておこう
アルゴリズム(英: algorithm)

https://ja.wikipedia.org/wiki/アルゴリズム

アルゴリズムとは、計算問題を解くためのプロセスや、やり方のことだと考えてください。
言い換えると、答えにたどり着くための手順を、ある一定のルールにそって定型化したもの
あるいは、そのプロセス、やり方だと考えてください。

 


 

アルゴリズム図鑑 絵で見てわかる26のアルゴリズム 単行本(ソフトカバー) – 2017/6/6

 


 

楽しく学ぶ アルゴリズムとプログラミングの図鑑 単行本(ソフトカバー) – 2016/11/28

 


 

コンピュータが動いてくれる指示の出し方。

インスタントラーメンを作るためのアルゴリズムを書き出してみましょう。
①お湯を沸かす。
②麺を入れる。
③3分茹でる。
この指示では、インスタントラーメンは作れません。

人間界では、これで、ラーメンができますが。

でも、コンピュータでは
始めなさいと命令しなければ命令を実行できないのです。
さらには、もっと細かく命令を出さなければ、かつ正確に順番に出さなければコンピュータは理解できないのです。

そして、終了、停止という、命令を出さなければなりません。
そうでないと永遠に同じ作業を繰り返してしまいます。

 


 

ここまで、細かく指示しなければいけないです。
いかに、正確に順次立てて命令文を作るかが大切であり、重要です。

ステップ1の開始から始まり、ステップ14の停止まで。


ramen

 


 

アルゴリズム例


step

 


 
プログラムをわかりやすくするフローチャート

フローチャート (flowchart、流れ図)
https://ja.wikipedia.org/wiki/フローチャート

命令文を、それぞれ分類して、グループ化して、
その全体の流れを順番に矢印で表したものをフローチャートと呼びます。

一般的なフローチャートとは違い、
文書であるアルゴリズムを、図と言葉と線、矢印でもっとわかりやすくしたもの。

アルゴリズムで作った、順番を、さらに図と線、矢印で細かく表現したのがコンピュータ界のフローチャートです。

また図形には意味があり、
四角形や、丸の形で、処理とか準備とか、判断とか、見てわかるようになってます。


map

 


 

プログラミングに不向きな人はいない。
プログラミングの基礎は、これで終わりです。
え?

プログラミングとは、なんでしたか?
人間が意図したことを実行するように、コンピュータに命令文として仕込むこと。

その命令文は、なにで作りますか?
機械語で作ります。

その命令文を作るためには?
アルゴリズムとフローチャートを活用する

わかりやすく、正確に、あらゆることを想定して順番に。

プログラミングにおいて、最も大切なことは何でしょうか?
理論的に考えること。

プログラミングすることに、文系、理系も関係ないですと、この本では書いてます。

ただ、向き、不向きはあるかもしれないです。とも書かれてます。

人に、よるかもですが、プログラミングのスクールに通ってもできない人もいる。
独学で、できる人もいます。
やってみたいと、思っても、難しくて、できないとかもあります。

プログラミングに不向きな人とは?
物事を理論的に考えられず、想定外などの問題を想像したり、それへの対応を、できない人というか、苦手とする人など。

でも、根気よく頑張って理論的に考える癖をつけて、それができるようになれば、誰でもプログラミングはできます。と説明されてます。

 


 

4時間目、読者の方が簡単なプログラミングを実践するためのガイド

プログラミングを実践してみよう。
試しに、その日に書けた、動かせた。

プログラミングも、真似しながら覚えるのが効率的。
とりあえず、動けばOK、まずは真似てみる。

また、すべての文を、厳密に書かなくてもOK
まずは、気楽に書いてみるのがいいですと説明されてます。

変えていい順番。変えてはいけない順番。
プログラミングの基本は
①順番処理
②分岐
③反復
を学びました。

①順番処理
順次処理は時間軸に沿って順番に処理を進めていきます。


着替える→ドアを開けて外出するという、順番を
ドアを開けて外出する→着替える。と逆にするのは、支障が出そうです。
順番を自由に入れ替えるのは難しいケースもあります。

他にも、解説してます。
変えて、いい順番と、変えてはいけない順番があります。
 


 

②分岐
大きな分岐と小さな分岐。

分岐(ぶんき)
https://ja.wikipedia.org/wiki/分岐

プログラミングの基本の2つ目である、分岐。

雑誌などにある、恋愛タイプ診断などの占いで、
問に、思い立ったらすぐ行動で、はい/いいえ。があります。

これは分岐を利用したイメージです。

また、分岐には、全体に影響のある大きなものと、影響のあまりない小さいものがあります。
車のドライブで、右へいくか、左へいくかで、到着する場所が違ってくるのが大きな分岐です。

右へ行っても、左に行っても同じ場所に着くが見える景色が変わる。これは小さな分岐です
ただし、小さな分岐にも、軽視できないケースもあります。
 


 
③反復
反復は効率アップの大きな武器
プログラミングの基本の3つ目である、反復。


紙をハサミで切ると言う作業をマニュアル化するとき、
同じ文章で100回書くのは効率が悪いです。

紙をハサミで切るを100回繰り返すとした法が表現のうまさ、マニュアルを書く文量と手間が省けます。

プログラミングでは、For文
といった命令文を使うことで同じ処理を繰り返す反復が可能です。

など解説
 


 

言語ごとに、どんな違いがあるのか。

この本で、使うのは
BASICをベースにしたプログラミングの入門者向けツール
Small Basicです。

他に
C言語
C++
Object-C
Java
javascript
Ruby
などあります。


programming-map

 


 

この本ではMicrosoft社が無料で、提供している
BASICをベースにしたプログラミングの入門者向けツール
Small Basicをダウンロードしてインストールする仕方など解説してます。

Microsoft社
無料
Small Basic

http://smallbasic.com/

Windowsでの解説です。


small-basic

 


 

カンタン。タノシイ。カッコイイ。小学生からのプログラミング Small Basicで遊ぼう!! 単行本 – 2017/7/14

プログラミング教育が小学校で必修化!
「マンガのようにスラスラ読める」実用書
カラーイラストや大きな文字で、子どもから高齢者まで、わかりやすくナビゲーターのキャラクターといっしょに学び進められる。

 


 

Small Basicではじめるプログラミング Kindle版

 


 

Small Basicでlet’sプログラミング―もっと思いどおりにパソコンを使おう! 単行本 – 2011/11/1

 


 
本ではWindows版の解説しか載ってないので、
Macを使ってる人は、利用てきないかも。

プログラミングで使う画像は

かわいいフリー素材集 いらすとや を解説。

http://www.irasutoya.com/

サンプルのプログラムでは
Small Basicソフトを使い、文字、線、動く図形、画像、音の出し方などをしていきます。

本には、プログラムのソースも載ってます。
サンプルのソースなど、ダウンロードできるようになってないので、
模写するのは、勉強になるかもですが、不便かもです。

子供用の本ではないと、思いますが

3時間目までは、人によっては、ためになるかもです。

4時間目は、Windowsのユーザーしか使えない、
Small Basicのソフトを使ってのプログラミングの説明なので
Macのパソコンを使ってる方はプログラミングをできません。

出来ればWindowsやMacを使う。両者を載せてほしいかもです。

人口的に、Windowsを使ってるユーザーが多いので、Windowsを載せてるかもですが。

4時間目は、人によっては、あまり、勉強に、ならないかもです。

世界一やさしいプログラミングの本って、読み手によって、理解度が変わります。

 


 

インドの小学校で教える プログラミングの授業 (青春新書インテリジェンス) 新書 – 2017/1/6
織田 直幸 (著), ジョシ・アシシュ (監修)

おすすめ

Tíːsign