200419 松林弘治 / 『子どもを億万長者にしたければプログラミングの基礎を教えなさい』

読書グラフィ 今日読んだ本

★松林弘治 / 『子どもを億万長者にしたければプログラミングの基礎を教えなさい』



●プログラミングスクール

NPO CANVAS

https://canvas.ws/


・グーグルが後援するプログラミング教育普及プロジェクト「PEG」

Programming Education Gathering

http://pegpeg.jp/



●大人がプログラミングを学んで得られるメリット


・大きな問題を小さな問題の組み合わせへと分解する分析力。


・小さな部品を効果的に組み立てることで、

 大きな目標を達成する論理的思考力。


・製品やサービスの提供側と使う側など、

 違う視点を持つ者同士を効果的につなぐ能力。



●プログラミング

プログラムを書くこと。



●プログラム

コンピューターにやってもらいたいことを、

コンピューターが理解できる方法で書いた手順書である。



●プログラムの語源

古代ギリシャ

「あらかじめ」(Pro-)「書き下ろされたもの」(-gramme)

という意味で構成されています。



●1970年代「プログラム:算譜(さんぷ)」

「プログラミング:作譜(さくふ)」

 という訳語が一部で使われていました。


 中国では「プログラム:程序」

「プログラミング:程序設計」と感じで表記します。



●状態遷移図

 機械やプログラムがどのように動くか、

 どのような状態を取りうるのかを整理するために使います。



●状態遷移表

「状態」(自動販売機でその時点での合計投入額はいくらか)と

「イベント」(硬貨を投入するなど)の組み合わせを表にしたもの。


「ある状態のときに、あるイベントが起こったら何を行うか」、

「次にどの状態に移るか」を表の形で表現したものです。



フローチャート

「コンピューターにこのように動いてほしい」という流れを、

 筋書きのように図を使って表したものです。


・長方形「処理(順次)」

 コンピューターに行わせる計算や作業などの処理そのもの。

例「投入額合計を計算」「おつりを計算」など


・ひし形「分岐(条件分岐)」

 ある条件が成り立つ場合、成り立たない場合に合わせて、

 処理の流れを変える処理。

例「投入額の合計が●円以上?」「おつりがある?」


・平行四辺形「入出力」

 フローチャートの対象に対して行われる入力・出力という動作。

例「硬貨投入を受ける」→入力、

 「切符を発券する」「おつりを出す」→出力


・反復(繰り返し)

 ある条件の間、一定の処理を繰り返す処理。



●プログラミング 3つの基本構成要素

(1)処理

(2)分岐

(3)反復



●プログラミングする人は、

3つの基本要素を組み合わせたプログラムを一つの処理としてまとめます。

そして、そのまとめたプログラムを複数作り、

階層的、構造的に組み立てていくことで、

より大きなプログラムを作るのです。


●構造化プログラミング



アルゴリズム

 問題を解く手順であり、

 その手順を矛盾なく厳密に表現する手段がプログラム。



●良いプログラムのポイント


・目的を実現できるように、

 過不足なくきちんとプログラミングされている。


・バグ(間違い)がない。


・何かトラブルや故障が起こっても止まったりせず

 対応できるようにしておく。


・コンピューターの資源(計算能力や記憶する場所)や時間を

 ムダに使いすぎない。


・プログラムが読みやすく書かれている


・製品としてのプログラム(ソフトウェア)が、

 利用者にとって使いやすい。


・あとで機能を追加したり変更したりしやすいように

 プログラムが作られている。



●CPUは驚くほど単純なことしかできない

・演算

 四則演算・ビット演算などの基本的な数値演算・論理演算。


・データの移動

 数値の読み込み、書き出し。


・実行制御

 条件分岐など。



#読書 #子育て #ビジネス

 

松林弘治 / 『子どもを億万長者にしたければプログラミングの基礎を教えなさい』