10代からのプログラミング教室 読んでみた。

[記事公開日]2018/03/20

[最終更新日]2024/09/01

14歳の世渡り術シリーズ大人まで

プログラミングの本とか読んでも、自分でプログラムを考えて作るって、普通っていうか、なかなかできないです。

今では、いろんなプログラミングの本が出ています。

この本、もっと昔に出ていればよかったかもです。

プログラミングの本って、読んでも年代や世代で、理解の仕方など違うかもしれないですが。

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

10代(14歳から)を対象にしてますが、大人が読んでも、わかりやすい本(内容)だと思います。

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

どんな科目も得意で好きな子もいれば、嫌いで苦手な子がいるように、
プログラミングの授業が嫌いだ、苦手だという子もいます。
なんで、プログラミングができないといけないの?。

本ではWindowsのパソコンを使い。プログラミング言語として
VBScript(ブイビースクリプト)を使っての仕方を解説してます。

Macのパソコンを使ってる方は、本を買っても、プログラミングが楽しめないので注意が必要かもです。

本には、プログラムのコードなど載ってます。

サンプルのデータなどダウンロードはないです。
この本を1冊読めば、基本は、絶対に理解できるようにしている。と書いてます。

目次
10代からのプログラミング教室 読んでみた。
Step1 コンピュータを知る
Step2 コンピュータは5つのことだけ覚えれば大丈夫
Step3 基本はとてもシンプルだ
Step4 プログラミング感覚を養う
STAGE2 プログラミング技術を身につけよう
プログラミング言語は、どう選ぶか
ほか

 


 
コンピュータ、どうやってつくったんですか?:はじめて学ぶ、コンピュータの歴史としくみ 単行本(ソフトカバー) – 2018/8/27
川添 愛 (著)

 


 

富士通パソコン
FMVキッズ
FMVがお届けする、こども向け情報サイトです。パソコンやインターネットの知識、 プログラミング、タイピングなどを楽しく学べます。
https://azby.fmworld.net/kids/

FMVキッズ:インターネット知識の泉
URLって何を表しているの?
https://azby.fmworld.net/kids/izumi/58/

 


 

Microsoft MakeCode Arcade
https://arcade.makecode.com

10才からはじめるプログラミング MakeCode Arcadeで自分だけのゲームを作ろう (日本語) 単行本 – 2020/12/23
Microsoft MakeCode Arcade(メイクコード アーケード)を使ったゲームプログラミングの入門書

 


 

空飛ぶプログラム~ドローンの自動操縦で学ぶプログラミングの基礎 (日本語) 単行本(ソフトカバー) – 2020/2/22

 


 

これで大丈夫! 小学校プログラミングの授業 3+αの授業パターンを意識する[授業実践39] 単行本 – 2018/4/9

 


 

マンガでわかる! 10才までに遊んできたえるプログラミング脳 単行本 – 2019/9/15

 


 

プログラムすごろく アベベのぼうけん おどろきの上巻 単行本 – 2019/9/26

 


 

パブロフくんと学ぶはじめてのプログラミング 単行本 – 2019/4/20

 


 

小中学生でもできるプログラミング (英和ムック) ムック – 2018/8/18

 


 

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

 


 

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

 


 

プログラミングのはじめかた (サイエンス・アイ新書) 新書 – 2018/4/17

 


 

先生と子どもがいっしょに学べるはじめてのプログラミング 単行本 – 2018/4/20

 


 

遊びながら楽しく学ぶ!小学生のScratchプログラミング 単行本 – 2018/5/15

 


 

人工知能と友だちになれる?: もし、隣の席の子がロボットだったら…マンガでわかるAIと生きる未来 単行本 – 2018/6/1

 


 

統計ってなんの役に立つの?: 数・表・グラフを自在に使ってビッグデータ時代を生き抜く 単行本 – 2018/5/15

 


 

プログラミングでなにができる?: ゲーム・ロボット・AR・アプリ・Webサイト……新時代のモノづくりを体験 (子供の科学★ミライサイエンス) 単行本 – 2018/4/10

 


 

コンピューターってどんなしくみ?: デジタルテクノロジーやインターネットの世界を超図解 単行本 – 2018/4/10

 


 

まだ、プログラミングの楽しさを知らないきみへ

きみの学校には、プログラミングの授業があるだろうか?
小学校の頃からやってる子もいる。
2020年からは小学校でも必修科目になります。

私は、数年前に出した本、
プログラムはなぜ動くのか
という本が広く読まれてから、仕事にも幅広く携わってきた。(たずさわる)

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識 単行本(ソフトカバー) – 2007/4

 


 

10代からのプログラミング教室 読んでみた。

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

目次は、このような感じです。
Step1 コンピュータを知る
Step2 コンピュータは5つのことだけ覚えれば大丈夫
Step3 基本はとてもシンプルだ
Step4 プログラミング感覚を養う
STAGE2 プログラミング技術を身につけよう
プログラミング言語は、どう選ぶか
ほか


content1


content2

Macのパソコンを使用の方だと、VBScript(ブイビースクリプト)は使えないので、
(MacにWindowsのソフトを入れて、動かせばできるかも)
この本を買っても手軽にプログラミングを楽しめないでいですが、
読むだけでも、ためになる本だとは思います。

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

 


 

なんで、プログラミングができないといけないの?

なんで、きみは、プログラミングを学ぶのだろう

なんの役に立つのだろう

それが、わからないと、やる気になれないかもしれない。

お父さんや、お母さんも、プログラミングのことを、ほとんどわかってないように見えるし、
別に、プログラミングを使わなくても、生活できているように見える、かも知れない。

けれども、よく見ると、世の中はプログラミングで作られた、プログラムだらけなんだ。

大人の多くがスマートフォンを持っている。
スマートフォンは、プログラムで動いている。
そもそも、データや情報は、すべて、プログラムで出来ている。

例えば、テレビをつけたら、目に入ってくるもの
ニュースや天気予報などの、お知らせも情報です。

テレビゲームをやっていると画面に絵や音が出てくる。
そういうのも、情報です。

そういう情報を取り扱うのが、コンピュータで、それを動かす仕組みがプログラムです。

そもそも、今、電気で情報を送っているもの、ほとんど、すべてに
コンピュータが使われている。
そして、それらすべては、プログラムによって、動いている。
つまり、電気で情報を送ることが、ほとんどのモノの前提になっている今、
プログラミングは、今まわりに存在するモノができるまでの間に、必ず使われている技術と言うことができるかもしれない。

世の中の人に、適切な情報を適切に提供する仕掛けが、プログラムである。

でも、プログラムを知らなくても生きていける気が、する?。

プログラミングのことを知らなくても、スマートフォンは使えるし、
知らなくてもいいよ。と言う人はいないだろうか。

もちろん、道具を使うだけでいい、のであれば知らなくていいのかも知れない。
より便利に使いたいと考えるのであれば、知っておいたほうが、絶対に得をする。

例えば、ある道具を使っていて、壊れた時に、捨てるか、直せるかで判断できるというのは、中の仕組みがわかっているかどうかによる。

今の世の中で、最も幅広く使われている道具であるコンピュータを
より安全に効果的に効率的に使うために、すべての人が知っておくべきもの。
それが、コンピュータとプログラムの仕組みです。

AIがやってくれるのではなく
AIがやれるようなプログラムを、きみが作る

社会で話題になってるAI
AIに任せしまえばいいので、
AIってわかるかな?

コンピュータで人間と同様の知能を実現すること、
つまり、コンピュータに何かを考えさせるってことです。

AIとは、Artificial Intelligenceの略です。

人工知能
人工知能(じんこうちのう、英: artificial intelligence、AI)とは、「計算機(コンピュータ)による知的な情報処理システムの設計や実現に関する研究分野」を指す。
https://ja.wikipedia.org/wiki/人工知能

今、AIが騒がれているのは、AIというプログラムが必要とされていると考えたほうがいいです。

ものづくりがしたい人にとっては、ぜひともプログラミングを身につけておくべき能力です。

プログラミングができると、どんないいことがあるの?

プログラミングができれば、たった1人でも、アイデアを自分で形にできる。

作った料理を人に食べてもらうと嬉しい。
自分が描いた絵を素敵と言ってもらえると嬉しい。というのと同じで
自分が作ったプログラムが人に役立つと嬉しくなります。

パソコン1台あるだけでプログラムは作れます。

まだ、この世にないけれど、自分が欲しいと考えたもの。が
1年後には作れるかもしれない。
プログラミングさえできれば。

 


 

Step1 コンピュータを知る

STAGE1 おそれるな、相手を知ればおのずから道はひらける

プログラムはコンピュータを動かすもの。です。

コンピュータというものがあって、それを動かすものがプログラムで、
コンピュータへの命令を組み合わせる行為がプログラミングである。

またScratchなどのビジュアルプログラミングと呼ばれているプログラミングのツールなどあります。

Scratch
https://scratch.mit.edu

ツール(プログラムを作るための道具。)
Scratchは部品を組み合わせて、ブロックを積み重ねてプログラムを作り上げられるが、
これはプログラミングだと考えないほうがいいです。

用意されたパーツ、部品をただ当てはめるだけで、正解が導かれてしまうこともある。
それではゲームソフトと同じです。

文字を打ち込む本格的なプログラミングは1文字でも間違えればエラーになる。

プログラムは、それくらい壊れやすいということです。

 


 

プログラムはプログラムだけでは動かない。
プログラムはソフトウェア。
ゲーム機で言えば、ゲーム機本体がハードウェア。
ソフトがソフトウェア。
両方がそろわないと動かないです。

コンピュータも、それと同じで
プログラムは、コンピュータの動かし方が書いてあるだけ。
動かし方を伝えることを命令という言い方をする。

つまり、コンピュータへの命令がプログラムであり、
その命令を書く行為をプログラミングと呼んでいます。
 


 

コンピュータを動かすにはどうすればいいの?
プログラムは言葉で命令する。
コンピュータに、
「~せよ」「~せよ」と書き並べて命令する。

単純で簡単な命令を、どうやって組み合わせて、やりてたいことを実現させるか。
それがプログラムを作る意味でもあるし、それができるからプログラミングという行為や仕事に価値があります。

 


 

Step2 コンピュータは5つのことだけ覚えれば大丈夫

Step2
コンピュータは5つのことだけ覚えれば大丈夫
基本的には5つの装置から構成されています。
①入力装置
②記憶装置
③演算装置
④出力装置
⑤制御装置

 


 

入力装置

入力というのは、コンピュータの中にデータを入れること。
現状のコンピュータは自分で新たなデータを作り出すことはできない。
だから、何をする時でも、最初に外部から、なんらかの数値や文字のデータをコンピュータに入れてあげる必要がある。

キーボードを押す。音声を認識させる。
みんなの考えていることをコンピュータに入れるという行為を「入力」と呼ぶ。

スマートフォンの画面を触る行為も、人間がコンピュータにデータを入力しているよいうこと。
ゲーム機のボタンを押すことも同じです。

その入力されたデータを使って何かをするのが、コンピュータなので、
コンピュータにとって、最初にやってほしいことが入力です。
何かコンピュータを動かす、きっかけを与える行為は、すべて入力だと思ってもいいです。

コンピュータは何もしてない時、何をしているかというと、
基本的に「入力を待っている」と言えます。

コンピュータは、あらかじめ用意されていることしかやらないです。
こちらが無茶苦茶なことをやっても答えてくれはしない。

また、入れてほしい情報というのも決まっていて、
数字を入れるべきところに、名前を入れても、なにもならないです。
 


 

記憶装置

入力したものは、コンピュータの中に入ると、そのままコンピュータの中にとどまっている。
コンピュータの中に、とどまっていることを「記憶」と呼ぶ。

つまり、コンピュータは、覚えていることができる。
記憶がないと、どうなるか?
先に進まないです。

Amazonなどのショッピングサイトで、
商品を注文する時に、商品をカゴに入れて注文するを押して、
次のページに進んだら、何もなくなっていた。なんてことになったら先に進まない。
いつまで、たっても注文ができないです。

「入力」したものが維持されているから、商品を購入するところまで進める。

それを実現させるのが記憶装置です。

 


 

演算装置

演算というのは、計算のようなものをするのですが、
計算だけではない。
コンピュータという言葉は、日本語に直訳すると計算機。

電卓とコンピュータの違い。
電卓で、1足す2でやると3になる。

コンピュータでも同じように計算ができます。
コンピュータは、さらに、それ以外のことも多くできます。

例えば、1や2という数字を入れることで、正解か不正解かを判断するような
クイズゲームも作れます。
これが「演算する」ということです。

データを加工すると言ってもいいかもしれない。

例えば、ひらがなを漢字にするのも、演算です。

Google検索した時に、探したい文字を入れて検索を押して、出ててきたものは演算の結果だと言えます。

 


 

データベースというデータの集合から、演算をするということになる。
とにかく演算とは、外部から入力されたデータを、
コンピュータの中で目的の形に変換するということです。

だから、計算ではなく「演算」といいます。
情報を目的に合った形に変化させる行為。
なんらかの結果を得る行為。
それらがすべて、「演算」と言っていいと思います。

もちろん、これも、あらかじめプログラムに書かれていること以外は、
できないけれど。

コンピュータに入力して何か結果が出てきたら、それは「演算」であると考えられます。

ただ、ユーザーが入れた情報が確認のために、そのままディスプレイに出るのは演算とは呼ばないです。

演算は、英語でいうと、operationだから。
人によっては、processと言う人もいる。
 


 

出力装置

コンピュータが「演算」した結果。
目的の情報が得られたら、コンピュータを使っている人に見せる必要がある。

コンピュータの外に出す行為を「出力」と呼ぶ。

「計算結果が液晶ディスプレイに出る」と言うことが「出力」ということになります。

では、入力した文字が、そのままディスプレイに表示されるのは?
これも「出力」と言っていいです。
それは確認のための。

50とキーボードに入れて、何も出なかったら、
入れた人は、本当にコンピュータに伝わったんだろうかと、不安になる。
だから、確認のために、コンピュータは50という数字をディスプレイに出す。

この状態は出力だけれども、「演算」はしていない状態です。

さらに、表示されたということは、記憶しているという証拠にもなる。
パソコンに記憶されたからこそ、50と出たわけです。

 


 

制御装置

「制御」はプログラムを動かす、コンピュータを動かす仕組みです。

プログラムの内容を順番に見て、
(プログラムは「~せよ」という命令が順番に書き並べてあるものだから)
これを、順番にやってくれる。
つまりプログラムを理解してくれる仕掛け、ということ。

コンピュータが動いている時点で
「制御がされている」と言えます。

コンピュータのCPUという部分が、私達の書いた命令(プログラム)を1行ずつ読んで、
その読んだ内容をもとに、コンピュータを動かしている。

「入力せよ」という命令を、制御装置が読んだからこそ、入力が行われる。
「記憶せよ」という命令を、制御装置が読んだからこそ、記憶が行われる。
「演算せよ」という命令を、制御装置が読んだからこそ、演算が行われる。
「出力せよ」という命令を、制御装置が読んだからこそ、出力が行われる。

コンピュータは、1つのハードウェアしかなくても、外部から与えられた様々なプログラムを制御装置が読んでくれるから、どんどん新しいプログラムを使えるようになります。

①入力
②記憶
③演算
④出力
の4つがあるだけではダメです。

これを動かす制御という仕組みがないといけない。

①入力
②記憶
③演算
④出力
そして、
⑤制御の5つを「コンピュータの五大機能」と呼ぶ。

パソコンの構成要素で言うと
入力装置はキーボードやマウス
出力装置は液晶ディスプレイ
記憶装置はメモリ
制御装置と演算装置はCPU、プロセッサと呼ばれるものがやっている。

 


 

Step3 基本はとてもシンプルだ

コンピュータに命令できるのはシンプルなことだけ。

そのシンプルなモノを組み合わせることで複雑なことができるようにしている。

例えば、
「歩け」「止まれ」しかできない人に、「ダンスしろ」と言ってもわからないからできないでしょう。

でも、
「歩け」「止まれ」を繰り返すことで、ダンスに近い動きを作り出すことはできる。

ここで言う
「歩け」「止まれ」という基本的な命令の組み合わせで、目的の動作をさせることが、
「プログラムを作る」ということで、
そのプログラムを実行することが「コンピュータを使う」ということです。

この感覚がわかれば、もうプログラミングはわかったようなものです。

コンピュータにできることは
①入力すること
②記憶すること
③演算すること
④出力すること
⑤制御すること

制御というのは、プログラムの中身を読むことだから、プログラムの中には「制御せよ」という命令は出てこないです。

つまりプログラムの中にあるのは、制御を除いた4つの命令だけです。

入力装置があるから「入力せよ」という命令がある。
記憶装置があるから「記憶せよ」という命令がある。
演算装置があるから「演算せよ」という命令がある。
出力装置があるから「出力せよ」という命令がある。

これしかない。
というか、そもそも「他のことができない」というわけです。

そして、この4つの
「入力せよ」「記憶せよ」「演算せよ」「出力せよ」が書き並べてあるのが、プログラムというものです。

 


 

プログラムは長くなる

人間から見て1つのことをやるのであっても、プログラムでは、
この「入力」「記憶」「演算」「出力」
の4つに分解しなくてはならないです。

だから、必然的にプログラムは長くなる。

普段使っていて役に立つソフトなどは数百万行のプログラムでできているものもあります。

プログラムの大変さとは「長い」こと。
命令の1行1行は簡単だけど、目的に合わせたことを、
簡単な言葉に置き換えて並べるということが、大変です。
だからプログラミング自体は、とても簡単だけれども、役に立つプログラムを作ることは、
簡単ではないです。

でも、シンプルな基本だけわかっていれば、できる(プログラミングは)
基本を身につけるのは、何かを成し遂げるためには、とっても大事なことです。

この本を1冊読めば、その基本は、絶対に理解できるようにしている。

人が作ったプログラムを使っているだけでいいの?
自分で作ってみたいと思う気持ちがあれば、試さない手はない。

ちなみに、プロの世界でも、1人で、何万行も作るわけでは、ないです。

プログラミングと聞くと、プロなら、1人ですべての作業をするように思うからしれないけど、
そんなことはなくて、多い時には数百人で1つのプログラムを作る。なんてこともあります。

ひとりぼっちではなく、何人かで、一緒にやるんだと聞いたら、やる気になる人もいるかな。

 


 

Step4 プログラミング感覚を養う

では、実際にプログラムを作る時に、どのように命令するか。

例えば、「ボールを投げる」という行為を、どのようにコンピュータに伝えればいいだろうか?。

ボールの投げ方はいろいろあります。

ではコンピュータに伝えるべき情報は、
角度と力です。それが「入力」になる。

角度は45度、力はレベルを1から100までとした時の50くらい。

このように、45と50という数字を入れる。

この2つの数字をもとにした時、ボールが、どこに、どのくらいの時間をかけて進んでいくのかということを決めて、
プログラムとして書いておくことが必要です。
これが演算です。

入力する数が決まったら、今度は入力の仕方を、どのようにさせるのかについても、考えなくてはいけない。
例えば
「投げる」という言葉を入れるのか、ある具体的なボタンを押すのか。
スマートフォンの画面をこすると速く飛ぶようにするのか(小さなボタンを多く押すこと)

力のレベルを数字で10と入れるより100と入れるほうが速く動くとするのか。

ボールを投げる角度については、45と数字を入れさせるよりも、絵にして、手の位置を操作させるほうがわかりやすいかもしれない。

次に記憶のさせ方
記憶は、入力、演算、出力に必ずついて回るものです。
角度を「45」と入力したら、そのデータを記憶している。

演算する時は、記憶してあるデータ(角度45)を取り出して、
演算して(「角度45度の時の動きはボールが、真っ直ぐ前に飛ぶ」といったように決める)
その結果を、また記憶する。
出力する時も、記憶してあるデータを出力する。

最後に、出力を考えよう。
もし、ボールが飛んでいく絵を出してあげたいと思ったら、
どのタイミングで、どんな絵を見せるのか。
仕掛けも作らないといけない。

ボールの軌跡だけ見せるのか。
ボールのマークだけ見せるのか。
投げている姿も見せるのか。



ball

そういったことを、1つ1つ決めていく必要がある。

現実にボールを投げることを考えると、同じ角度で同じ速さであっても、
風が強かったり、変は方向に飛んでいったりする可能性はある。
そういったことは、プログラムに書いてない限り起きないです。

テレビゲームは大変リアルで、まるで本物のように見えるけれども、
なんとなくぎこちなく見えると感じたことはないだろうか。
その理由は
プログラムは、されたことしかしないです。
コンピュータが自動で判断しているわけではない。

プログラムの使い方は、あらかじめプログラムされるものだから、使う人が決められることではない。
だからこそ、作る側は、使う人のことを考えて、より、こちらのほうが便利では?と考えて作っていく必要があります。

 


 

ここまでの、まとめ
プログラミングを始める前には、
この五大機能の説明をしました。

しかも、そのうち「制御」は、プログラムを読む機能だから
「プログラムを作る」上では、意識しなくていい。

重要なのは、
「入力」「記憶」「演算」「出力」の4つです。

何かをしたいと思った時
「これをやるためには、何を外部から取り込めばいいだろう?」
「何を憶えていけばいいだろう?」
「どのように加工すれば、ユーザーに見せるべきものが作れるだろう?」
「見せてあげる方法は、どうすればいいだろう?」
と考える。

4つの動作は、すべてセットになっている。
これが基本中の基本。

プログラマの発想の仕方です。

 


 

マンガと図解でスッキリわかる プログラミングのしくみ 単行本(ソフトカバー) – 2018/2/19

 


 

STAGE2 プログラミング技術を身につけよう

真似から始めるトレーニング

プログラミング技術には、何十年もの伝統のようなものがあり、昔から様々な研究所やエンジニアが作ってきた、お手本が多くある。
それを真似ることから始めるといい。

これまで、いろいろな人にプログラミングを教えてきて感じたことは、
次の1歩を、なかなか踏み出せない人がいるってこと。

迷ったら、思いきってしてみよう。
失敗したら、何がダメだったかを考える。
そのダメだったモノを直すには、どのようにしたらいいかと試行錯誤することもプログラミングの醍醐味です。
思い通りの結果が得られるように直せたら、
「できた」「わかった」「動いた」という喜びがあります。

Step1
何を作りたいか考える

よく、プログラミングの教科書では、
キーボードで入力した2つの値を足し算してみましょう。なんてことから始めるけれど、
それは、とてもつまらない。
つまらないから、やる気にもならない。

では、何のプログラムを作ろうか?
複雑なものほど、長いプログラムが必要になります。

最初は、シンプルで役に立つ、
「肥満度チェック」のプログラム。
BMIの数値を1発で計算できるプログラム。

Step2
分解して考える
「BMIを求めよ」とただ言うだけでは、コンピュータは、その数字を求めることはできない。
命令を単純な「コンピュータにできること」に分解することが必要です。

「入力せよ」
「記憶せよ」
「演算せよ」
「出力せよ」

に分解します。

BMIは、
体重(kg)を身長(m)で2回割ることで計算される。

身長はcmではなく、m単位であることに注意してほしい。

身長が175cmなら、1.75mで計算する。
体重が、80kgなら、
肥満度は80÷1.75÷1.75で計算できる。

何度も繰り返すけど、
「入力、記憶、演算、出力、制御」がコンピュータにできることです。

どんな順番で、それぞれ行えばいいかに置き換える。
順番とは、命令を実行する順序のことです。

コンピュータは基本的に、プログラマに並べられた命令を、
上から下に向って1行ずつ順番に実行する。
これは、「制御」の機能です。

 


 

Step3
コンピュータの表現にする
実際にプログラムを書いてみよう。
Windowsのパソコンを用意して下さい。
この本では、プログラミング言語として
VBScript(ブイビースクリプト)を使う。

VBScript初心者入門講座
http://vbscript.pgtop.net

VBScript入門講座
http://vbscript.web.fc2.com

理由はWindowsパソコンで何もインストールせず、すぐ使えるし、構文がとてもシンプルです。
気楽にプログラミングが誰でも体験することができます。

プログラミング言語には、いくつか種類があります。
それぞれに守らなければいけないルールがあります。

どうして、このような書き方をしないといけないのかと思ったら。
それはルールなんだと。割り切ってほしい。

文書を打ち込むソフト、Windowsに用意されている、メモ帳を開く。

ほとんどのプログラミング言語の構文は、英語と数式を使います。
「おそらくこういう意味かな?」と考えて、打ち込んでみて下さい。



vbscript

また、プログラミング言語は欧米の人が作っているから、
半角文字で打たなくてはならないことに注意。

英語だから、単語の区切りには半角スペースが入ってることなど。

ところが、あれ?日本語も入ってるね。と
日本人だから、画面に表示する言葉は、「ひらがな」や「漢字」、つまり日本語でいいです。

その日本語は、ダブルコーテーションで囲む

囲めば、「命令」ではなく、「データ」だとみなされます。

では、すべて打ち込み終わったら、保存しよう。

「ファイル」メニューから「名前を付けて保存」を選択。
保存する場所は、デスクトップで。

ファイル名は、bmi.vbsにします。

ファイル名の拡張子は、.vbsにするのは、
VBScriptで作ったプログラムなので。

またメモ帳は、親切機能で自動的に拡張子を.txtにしてくれる。
.txtにならないように、「ファイルの種類」のところで「すべてのファイル」を選ぶ。

デスクトップに保存されたファイルをみると、bmi.vbsとなってるはずです。

できたプログラムを動かす。
できあがったプログラムを動かすには、bmi.vbsファイルをダブルクリック。

最初に、「身長(m)を入力してください。」と、ウィンドウが出るので
m単位で身長を入力。
例、1.75

そしてOKボタンを押すと
「体重(kg)を入力してください。」と、ウィンドウが出るので
体重を80入力。

そしてOKボタンを押すと
BMIの計算結果が表示されます。

BMIが25以上は肥満です。

 


 
Step4
プログラムを解読してみよう

どのようなプログラミング言語でも
結局のところ、英語と数式のような表現を使ってるだけです。

この記号や言葉は何を表しているのか?
1行ずつ説明していこう。

H = InputBox(“身長(m)を入力してください。”)

英文字H
ここで表されているのは「記憶」の場所。
「記憶」場所は、メモリ上にデータを貯めておくことだけど、
その貯めたところに、HやWのような名前をつけておく。

この記憶場所に名前をつけたものを、
プログラミングでは「変数」と言います。

箱をイメージしてほしい。
コンピュータメモリの中に自分のデータを入れる箱が用意されている。

そして、その箱に名前がついていると考えよう。

それが、プログラミングにおける「変数」です。

ここでは、身長を入れる「H」という名前がついた箱を、メモリ上に用意したということ。

多くのプログラミングの入門書に書いてある。
世界中のプログラマの多くが、変数に対してデータを入れる箱、というイメージを持っているはずです。

次に変数の名前にも注意しよう。

何が入ってるか、わからなくなってしまうので、
変数には名前をつけなくてはいけない。

付ける名前は自由だけど、プログラミング言語の命令は英語なので、
それに合わせて英語で名前をつけることが一般的です。

ここでは、身長を英語で言うとHeightだから、
その頭文字をとって「H」としました。

そのまま、Heightという名前をしてもいいです。
でも、英語1文字のほうが簡潔(かんけつ)でよいと私が思ったので、Hとしました。

 


 

記号「=」イコール

そして、この箱の中に情報を入れることを「=」で表す。
多くのプログラミング言語で、「=」を、箱の中に情報を入れる意味で使います。

右辺から左辺に入れます。という意味です。
多くのプログラミング言語で用いられてる表現で、「こういうものだ」と慣れていかないといけない。

また、VBScriptでは、等しいことも「=」表す。
つまり、VBScriptの「=」には、
「入れる」と「等しい」の2つの意味があります。

 


 

InputBox
データを入力(インプット)するための命令。
この命令によって、キーボード入力(キー入力)を行なうためのウィンドウが開く。

ウィンドウが開いただけでは、何をしたらいいかわからないから、
こプログラムを使う人に、「~をしてくれ」という文字列を表示する。

それを、「” “」ダブルコーテーションで囲む。
こういう約束なんだ。

ここでは、
“身長(m)を入力してください。” がウィンドウの中に表示される文字列です。

もしも、この、「” “」中に何も文字など書かないで
H = InputBox(“”)とすると、ウィンドウの中には何も表示されない。

VBScriptというプログラミング言語でキー入力をさせたいなら「 InputBox」を使う。
これを使えば、キー入力を行うためのウィンドウが出る。
ユーザーにやってほしいことを「” “」で囲んだ文列で示す。
その中に「入力してほしいこと」を書いてあげる。

このように、決められている文章(それを構文という言い方もする)をに従ってプログラムを書くということが
プログラミングであり、その中で使う言葉はあらかじめ決められている。

この
H = InputBox(“身長(m)を入力してください。”)という1行の命令によって、
キー入力された「身長」が変数Hに格納される。すなわち「記憶」される。
ディスプレイに文字も出しています。

1行の命令で、入力と記憶と出力が表されていると言えます。

 


 

憶えることは、実は少ない
プログラムの命令の種類は
「入力」「記憶」「演算」「出力」だけど、
入力だけする1行というものはなくて、
ある1行で、「出力して、キー入力して、結果を記憶する」ということを、あれこれやることになる。

 


 

2行目を考える
3行目を考える
の解説
 


 
数学で言うところの計算の方法

計算は、どのように行われるか。
プログラムを読む時に重要なのは、具体的な数値をイメージして読むことです。

Wには80という数値が入っていて、
Hには1.75が入ってるから

80÷1.75÷1.75という計算が行われると考えればいい。

なお、この時に計算を行っているのは、メモリではなくCPUという場所。
だからイメージとしては、
メモリの中のHとWという箱に入っていた値が、
CPUの中にコピーされて、CPUの中で計算が行われた結果が、メモリのBMIという箱に入る。

こういうことがイメージできるようになると、
コンピュータが装置として、どういうモノなのかということと、
プログラムが結びつくようになる。

つまり、コンピュータのハードウェアとソフトウェアが結びつくようになる。

それが真に、コンピュータの動作を理解したということです。

つまり、プログラムの、それぞれの行に記述された命令で、
「五大装置の何を動かしているのか」をイメージできてるか、どうかが、
真に、プログラムをマスターするための大きなポイントです。

 


 

4行目を考える。最後の行です。

 


 

「入力」は、InputBoxという命令(関数)
「記憶」は、変数への「=」で書く(演算子)
「演算」は、演算記号(演算子)で示す
「出力」は、MsgBoxという命令(ステートメント)

覚えることは、基本的に、これで終わりです。
コンピュータにできることが
入力、記憶、演算、出力であって、
プログラムの内容が
「入力せよ」「記憶せよ」「演算せよ」「出力せよ」
でできているのだから、これで全部のやり方がわかったんだよ。

 


 

Step5
改良できるポイントを探す

今、解説したようなサンプル通りに作って、それで終わり。としていては
プログラミングが、できるようにならない。

プログラミングをマスターする秘訣は、
まず、とにかくサンプルを、そのまま真似て、動作を確認すること。
でも、そこで終わりにすると、できるようにならないんだよね。

言語を使いこなすのだから、自分のアイデアを具現化できるようになることが、
最終目標なわけだ。

ただし、いきなりゼロから自分のアイデアで全部作るのは無理だから、サンプルを改造することで、
自分のアイデアを具現化する練習をするんだ。

この練習を、繰り返していると、ゼロから全部作ってみたくなることがあります。

それは、ゼロから全部作れるだけの知識が十分に得られるからです。

おそらく世界中のほとんどの、すべてのプログラマが、同様の方法でプログラミングをマスターしたと思う。
この方法以外に、プログラミングをマスターする方法はないと言っても、いいくらいです。

 


 

改良ポイント1
解説

 


 

うまいプログラムを書く

同じ結果が得られるなら、
「短いプログラム」「処理が少ないプログラム」がうまいプログラムです。

では、どうすれば、短かくできるだろうか?。
BMIの計算を行なう3行目の前に、
変数Hに格納れているcm単位の身長を100で割ってm単位にして、
その結果を再び、変数Hに入れ直すという命令の行を、新たに、追加すればいい。
「H = H /100」です。

イコールは「等しい」ではなく、「格納」です。
先ほどの改造では
100を掛ける処理を2個追加したが、今度の改造では、100で割る処理が1回で済む。
このほうが、処理が少ないから、うまいプログラムです。

BMIを計算する処理は、改造する前の
「BMI = W / H / H」に戻しておこう。

もちろん、正しく動けば、長くても構わない。
短く書いてあって動く方が、美しいプログラムです。

 


 

そういう意識を持ちながら、サンプルを見ると、様々なヒントを探せるはずです。
真似ることは、決して恥ずかしいことではない。
真似ているうちに、自分のモノとして、吸収され、応用ができるようになるからです。

日本語だって、まわりの人たちの真似をして覚えて、自分のモノにしたはずだ。
プログラミング言語だって同じだ。

一方で、将来プロのプログラマを目指すなら、「プロらしさ」という視点も重要です。

どんな仕事にも、プロらしさという感覚はあると思う。
プロらしさというのは「コストの意識」
つまり、どんなに良いモノでも、それを作り上げるために予定の何十倍もの時間や、
お金がかかっていては商売にならない。
どうしたらコストを下げらるかを考えるのが、プロらしくなるための重要なポイントです。

プログラミングの場合は、プロらしくすることは、
「わかりやすくすること」
わかりやすいプログラムを書くことです。

プログラムの良さは、「同じものを再利用できる」こと。

プログラムのコピーには、なんのコストもかからない。

今回のBMIのプログラムの場合、どちらがわかりやすいだろうか?
先に100で割る方がいいのか。
100を2回掛けることを入れた方がいいのか。

こういう判断は、プログラムお再利用する相手次第である。
その相手にとって使いやすいものになっていることが重要です。

こういう判断は人によって、違う。

ちなみに、プロのプログラマというものは、
自分が1番うまいプログラムが書けると思っている。

それは、「人が書いたプログラムは、よくわからないから」だ。

わからないものは下手だと思うよね。

万人が認める、わかりやすさなんていうのはないんだね。
だから、とりあえず「短くする」ことを目指すのでよいと思う。

 


 

改良ポイント2

サンプルプログラムも、本には載ってます。
このサンプルを自分の目的に合わせて応用すればいいです。

さらなる改良ポイント案

 


 

プログラムの命令や構文を、まとめて覚えるよりも、
作りたいものを作っていきながら、少しずつやり方を覚えていくほうが、ずっといいだろう。

プログラミングというものは、自分で言語を発明したのでない限り、みんな、他の人の作ったモノを見て学んできている。
できる。できないではなく。やったことがあるかどうか、なんだね。

これまでの経験の組み合わせが、自分のプログラムになる。
経験が少なければ、なかなか自分の思い通りにはならない。
私は、「プログラミングができない」という人には、
「できないんじゃなくて、真似の経験が足りないだけです」とアドバイスしてる。

みんな、真似してマスターしたのだから。
とにかく、真似してみることが大事です。

 


 
Step6

プログラミングのストーリー展開の作り方

プログラミングでは、プログラム全体のストーリーを、どう作るかが大事です。

「まっすぐ進む」「分岐する」「繰り返す」

この3つを感じられることが大事です。

プログラムの命令が順番に実行されることに「流れる」という
感覚を持ってほしい。

その流れ方の種類は
「まっすぐ進む」か「分岐する」か「繰り返す」か。
この3つを組み合わせることで、プログラム全体のストーリーが作られるんだ。

これまでは、プログラムの処理を
「入力」「記憶」「演算」「出力」の4つに分解することを学んだけれど、
それに加えてプログラムの流れを
「まっすぐ進む」「分岐する」「繰り返す」の3つで考えることも必要です。

「何を作るにしても処理を4つに分解し、流れを3つでとらえる。」
この感覚がつかめれば、プログラマ脳ができあがる。

つまり、プログラムを作る時の考え方をマスターできます。

数当てゲームのプログラム
コンピュータが選んだ数字を、ユーザーが当てるというゲームです。
コンピュータは1から100の中から、数字を1つ選ぶ。
ユーザーは、キーボード入力で、それを当てる。

当りでない場合はコンピュータが「もっと大きい」もしくは「もっと小さい」というヒントを出す。
ユーザーが入力した数が当たりでない限り、これを繰り返す。

当りなら「当たりです」と表示してゲームを終了する。

こういうストーリーのゲームです。

こういうストーリーの流れを表す時、
フローチャートという便利な図がある。

フローチャートは、その名前が示すとおり、
流れ(フロー)を表す図(チャート)です。

プログラムを作る前に、数当てゲームのストーリーを、フローチャートで表してみよう。

フローチャートには、いくつかの図記号があります。

これらを線で結ぶことで、処理の流れを表す。
プロのプログラマも、プログラムを作る前に、フローチャートを描いて、
プログラムのストーリーを考えることをよく行う。

フローチャートはプログラムの設計図となるものです。

flowchart


flowchart

 


 

プログラムもフローチャートも基本的に上から下に向って、
「まっすぐ進む」

分岐する場合は、ひし形の図記号で条件を示し、その条件がYesかNoかで、
その先の2つの処理のいずれかに分岐する。

これは、2つの処理のいずれかを選んでいるとも言える。

次のフローチャートは条件がYesなら「処理A」に分岐し、
Noなら「処理B」に分岐する。

分岐した後は、1つの流れに合流する。
処理の流れが上から下でない場合、処理を結ぶ線の先に矢印→を付ける。

繰り返す場合は、ハンバーガーの上と下のような形の図記号で処理を囲む。

 


 

それでは、数当てゲームのフローチャートを書いてみよう。
数当てゲームのストーリーを「まず、これをして、」「次に、これをして、」「その次に」
と区切って考える。

大ざっぱ描いていいです。


flowchart2

 


 

しかし、今描いたフローチャートのままでは、プログラムのイメージが想像できないかもしれない。

それは、データを入れる箱、つまり「変数」が示されていないからだ。

このようにしてみた。


flowchart3

 


 

プログラムを作る時に、必ずフローチャートを描かねばいけないわけではないが、
どうやってストーリーを作っていいか、わからない時は、自分の考えを整理するために、まず大ざっぱなフローチャートを描いて、
そこから少しずつ詳しくしていくことを、おすすめする。

 


 

Ifで分岐
Loopで繰り返し

完成したフローチャート(プログラムの設計図)を元に数当てゲームのプログラムを作ってみよう。

今度はLoopを使って、繰り返しを囲む表現だけをプログラムにしてみよう。

Ifで分岐する構文と、Loopで繰り返す構文がわかったので、
プログラム全体を書いてみよう。

 


 
命令や構文は、プログラムを使りながら覚える
こうやって、プログラミングの経験を積んでいくと、覚えていけると思います。

命令文と構文のまとめ表など載ってます。

 


 

インターネットを見ればVBScriptの構文が全て載っているWebページがある。

でも、、そちらを先に見るのではなく、この本でやってきたように、使っていく中で覚えていくといいです。

プログラミングというのは、どうやって自分の考え方を文章に表すか、ということなんだよね。

決まりごとがある部分(命令や構文など)もあれば、自分で判断する部分(変数の名前やプログラムのストーリー)もある。

わかりやすくするために、わざと変数を長くする場合もある。
Userと書くのがいいか、Uと書くのがいいか。

プログラミング言語は、昔は動けば、なんでもよかったけれども、今は、わかりやすさが、かなり重視されているようになってきている。

 


 
Step7
さぁ もっと作ってみよう

何かの役に立つプログラムのことを、ユーティリティと呼ぶ。
「便利なもの」という意味。

プログラムというのは、アイデアを具現化することに価値がある。という話を聞いたことがある。
アイデアがあるのにまだ利用されていないモノがあるんじゃないか。という目線が大事。

ユーザーのことを考えてることから初めてみよう。

なんでも作られるわけではない。
グラフィックス(画像)を出すのはVBScriptは苦手だから、ロールプレイングゲームを作りたい場合は、文字で行う必要がある。

文字だけでも、アイデア次第で、楽しいゲームが作れるよ。

連携させれば、絵やグラフィックスや音を出すことができる。
連携というのは1つのプログラムから別のプログラムに処理を依頼すること。

1つのプログラムだけで全てを実現しようとするのではなく、周りに依頼できることも知っておこう。

大事なことは、全部自分で作ることではなく、自分でアイデアを考えることです。

 


 

サンプルの提案
「何を作るにしても処理を4つに分解し、流れを3つでとらえる」
これがプログラマ脳。
つまりプログラムを作る時に考えることだ。

いろいろアイデアを出してみよう。
どうしたら楽しくなるかを考えて工夫を加えてみよう。

身近なもので考えたほうがいいかもしれない。

ゲームなら、もう1回やりたいと思わせられるか、どうかが大事です。

 


 

理想のプログラム
プログラムにも、美しいかどうか、というものがあって、理想のプログラムというのは、
印刷してA4用紙1枚に収まるものだ。
多くても、せいぜい2枚まで。
それ以上になった場合は、分けたほうがいい。
つまり、それくらいの長さの区切りで物事を考えろ、ということだ。

文書だから、1つのまとまりのストーリーを1枚で読ませたい。
その理由はメンテナンスをする時の便利さというものもあるけれども、
切れ目がないと、何か間違いがあっても、原因となる部分を特定するのが困難になってしまうんだ。
A4用紙1枚とA4用紙10枚では、どちらがやる気になる?

 


 

プログラミングは、きみを変える「言葉」

実際にプログラムを作り、改良するという経験をしてみて、どうだっただろうか?。
「改良を繰り返す」というのは重要なことで、
「思ったことを具現化する」という細かなステップを何度も繰り返すことで、
技術が身についていく。

これができるか、どうかが、プログラミングをできるか、どうかにかかわる。

改良をするところまで。たどり着けて、「つらかった」だけで終わった人はいないと思う。
できたぞ!という快感を得たんじゃないだろうか。

年齢も関係ない。プログラミングは、年齢の壁を気にすることなく、アイデア次第で世界中の人に役立つなどの成果を体験することができる。

プログラムは自分の思った通りに動くと、とても楽しい。
達成感や、喜びがあるし、インターネットで発表することもできる。
人の反応を見ることもできる。

大事なのはアイデアで、どんなに高度な事をやるか、どうかではない。

英語を学ぶのと同じで、人間にはもともと言語を覚える能力があると思うし、繰り返し練習すれば、必ず身につく。

1度「できた」という快感が得らるまではツライ。
でも、それを知れば、絶対に面白くなる。プロにだってなれる。

もっと、できるように、なりたくなった君へ
プログラミングの専門書を買ってきて、勉強して、1冊やり切ると、自分で何か作りたくなってくると思う。

だから、プログラミングの解説書を1冊読んでみるといいと思う。
「推薦図書」は、あえて挙げない。

自分に合ってる本、みて「わかりやすい」と思う本を探してみるといいです。

さっとは読めないと思うよ。
少なくとも3回は読まないとわからない。

そうやって学び続けたい、もっとうまくなりたい。というモチベーションに、この本がなってくれればと思う。

 


 

プログラミング言語は、どう選ぶか

オランダの、TIOBEというソフト会社が、プログラミング言語の人気ランキングを毎月発表している。

TIOBE Index | TIOBE – The Software Quality Company
https://www.tiobe.com/tiobe-index/

それを見ると、トップ20がわかる。
それを参考にして、興味を持てそうな言語を選ぶと良いとおもう。

なんで、こんなにプログラミング言語が多くあるんだろう?。

ある人の本に、「それは楽がしたいからだ」と書いてあった。
要するに、この言語では不便だ。と感じた人が、
自分でもっと楽にプログラムが作れる言語を作ろうと考えて、新たな言語が生まれるのだ。

ただ、この「楽だ」というのも「何が楽か?」という話はあって、
短く書けるからといって、簡単というわけではなく、覚える事がその分、多かったりもする。

英語が世界の第一言語であるように、
プログラミング言語の第一言語として君臨しているのが、
C言語というものだ。

どの言語にすればいいか悩むくらいならC言語をやってみるといい。

この本ではC言語の解説はしていない。
なぜなら敷居が高いから。

プログラミングするための専用ソフトをインストールする必要もある。
でも、この本で、VBSriptができるようになったら、他の言語にもトライしていくといいです。

ちなみに、VBSriptは、ランキングの中ではVisual Basicと示されている言語の仲間だ。

VBSriptから発展するのであれば、Visual Basicを、まずしてみるといいです。

 


 

英語はやっておこう。嫌いにならない程度に
プログラムの命令の多くは、英語で書かれるものだ。

今やインターネットで世界中から情報を得られるわけだけれども、
英語圏の情報を検索していると、プログラミング言語を作った本人の話まで知ることができる。
これってすごい面白い。

 


 
欲しいものが、なんでも作れると思っていい

作れるかな?作れないかな?などとは考えずに、まずは欲しいものを作ってみよう。
トライすることが大事だろう。

プログラミングは世界を広げる言葉
プログラミングはプログラムを作るための特殊技能だ。
マスターすれば、趣味だけでなく、仕事にも使える。

様々なプログラミング言語があって、流行り廃りもある。

流行っている言語は、それを使って作れるプログラムのニーズが高いってことだ。

プログラミング言語は世界中で使える共通語だ。

プログラミングの仕事はパソコン1台あれば、いつでもできてしまう。
つい無理をしてしまうからハードワークだと言われることもある。

この本、1冊でプログラミングの基礎をマスターできるように書いてきたつもりだけれども、

使いこなすまでには、もちろん時間がかかるだろう。

自分のやりたいことを決めて、それに似たサンプルを探す。
自分の目的にあったように変えていく。

これを繰り返していくことで、考えたことを表現できる力が身につくと思います。

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

おすすめ

Tíːsign