買い物かごへ

今日からモノ知りシリーズ
トコトンやさしいアルゴリズムの本

定価(税込)  1,620円

著者
サイズ A5判
ページ数 158頁
ISBNコード 978-4-526-07900-9
コード C3034
発行月 2018年11月
ジャンル ビジネス

内容

2020年から義務教育に「プログラミング」が正規科目として導入される。そのプログラミング(コーディング)したい事柄、コンピュータにやらせたい処理などの考え方とまとめ方で必要なのがアルゴリズム。本書は、アルゴリズムの考え方や仕組みが、自然に身につくやさしい入門書。

坂巻佳壽美  著者プロフィール

(さかまき かずみ)

●略歴

1950年8月 東京に生まれる

1974年3月 日本大学理工学部電気工学科卒

1974年4月 東京都立工業技術センターへ研究員(電気)として入所

2006年4月 地方独立行政法人東京都立産業技術研究センターに独法化
(約40年間、中小企業への組込みシステム技術に関する技術指導に従事)

2015年4月 職場を退職し、自称「システム設計コンサルタント」


●主な著書

制御技術者のための組込システム入門 日刊工業新聞社(2007)

組込みシステムのハードウェア設計入門講座 電波新聞社(2008)

絵で見る制御システム入門 日刊工業新聞社(2010)

はじめてのVHDL 東京電機大学出版局(2010)

JTAGテストの基礎と応用(電子出版) CQ出版社(2011)

VHDLによるFPGA設計&デバッグ オーム社(共著)(2012)

知っておきたい計測器の基本 オーム社(共著)(2014)

はじめてのFPGA設計 東京電機大学出版局(2014)

など

目次

第1章 こんな“やり方”もアルゴリズム


1 なぜ、今、アルゴリズムが求められるのか? 「良いアルゴリズム」

2 “123456789”を9回足すと? 「面白くて使える“やり方”」
3 迷路から必ず脱出できる方法 「問題を解決する“やり方”」

4 誕生日当てマジック 「怪しくて楽しい“やり方”」

5 よく使うものを選び出すやり方 「自己組織化探索」

6 水道配管の水抜きのやり方 「操作のコツを示す手順」

7 お札の数え方 「要領よく数えるやり方」
8 メリットがあってこそアルゴリズム 「“やり方”こそが「アルゴリズム」」



第2章 学校で習った“解き方”もアルゴリズム


9 +-×÷と( )の優先順位 「四則演算のルール」

10 文章題の解き方いろいろ 「どういう条件で何が問われているのか」

11 橋を渡る時間(通過算) 「先頭が入ってから、最後尾が出るまで」

12 トンネル内にいる時間(通過算) 「最後尾が入ってから、先頭が出るまで」

13 直線に木を植える(植木算) 「直線上という条件」

14 円形に木を植える(植木算) 「円形には端はない」

15 鶴と亀はそれぞれ何匹?(鶴亀算) 「差分をイメージするアルゴリズム」

16 鶴亀算の別解 「連立方程式での解き方」

17 平方根を求める(開閉法) 「高校レベルの計算法」



第3章 “速算術”というアルゴリズム


18 お買い物は暗算で(補数) 「おつりの計算」

19 速度の計算(時速) 「時速60㎞を基準にする」

20 インド式計算法(足し算・引き算) 「速算術の仕組み」

21 インド式計算法(掛け算・割り算) 「全ての数の組合せを考える」

22 (A5)2の計算 「一の位が5の二桁の数の二乗」

23 AB×ACの計算 「十の位が同じで、B+C=10の二桁の数の掛け算」

24 AB×CBの計算 「一の位が同じで、A+C=10の二桁の数の掛け算」



第4章 そろそろアルゴリズムについて


25 アルゴリズムとプログラムの違い 「プログラムの中身はアルゴリズム」
26 アルゴリズムを考えてみよう 「価値ある生活のアルゴリズム」

27 ある朝の出来事! 「自分だけのアルゴリズムを見つける」

28 もし、自分がロボットだったら 「アルゴリズムに従ったプログラムで動く」

29 実験してみよう! 「あいまいさの少ないアルゴリズムとは」
30 ある上司からの指示 「必要な情報を漏れなく正しく伝える」



第5章 アルゴリズムの見える化


31 アルゴリズムにはパターンがある 「五つの処理パターン」

32 チャートで表すとパターンがわかりやすい 「フローチャートと図記号」

33 順に処理を進めるパターン 「順次処理」

34 二つに分かれるパターン 「二分岐処理」
35 三つ以上に分かれるパターン 「多分岐処理」

36 決まった回数だけ繰り返すパターン 「反復処理1」

37 やってみなければわからないパターン 「反復処理2」
38 具体例:自販機でジュースを買うチャート 「パターンの組合せ」

39 具体例:うどんの作り方チャート 「チャート化の利点」



第6章 事務計算のアルゴリズムを考える


40 機械計算機から電子計算機へ 「計算をする機械の進歩」
41 事務処理システムでのアルゴリズム 「定型的処理の組合せ」

42 要領よく並べ替えるアルゴリズム 「ソート」
43 素早く探しだす 「サーチ」
44 順序よく混ぜ合せる 「マージ」

45 データ同士を突合せる 「マッチング」
46 典型的な給料計算のアルゴリズム 「マスターとトランザクション」



第7章 技術計算のアルゴリズムを考える


47 方程式を解く(二分法) 「着実に答えが出せる方程式の解法」
48 方程式を解く(ニュートン法) 「上手に使うと速い方程式の解法」
49 連立方程式を解く(ガウス・ジョルダン法) 「n元連立方程式の解法」

50 データにフィットした直線を引く 「最小二乗法」

51 波形の成分を調べる 「高速フーリエ変換」



第8章 アルゴリズムをscratchで試そう


52 Scratch(スクラッチ)とは? 「試して使える教育用プログラミングアプリ」

53 ネコを動かしてみよう! 「キャラクタを動かすアルゴリズム」
54 アルゴリズムの5パターンとの対応 「制御ブロックによるパターンの記述」

55 スプライトとコスチュームを変更する 「キャラクタのコスチュームを数える」

56 音も出せるよ! 「アニメーション動作のスクリプト」
57 入力機能を利用しよう! 「各種キー入力とマウスの座標入力」
58 ゲーム作りに挑戦! 「ゲームの企画書はアルゴリズムそのもの」

59 スプライトと音と背景を準備する 「アルゴリズム作成前にスプライトを選ぶ」

60 ロケットと稲妻のアルゴリズムを考える 「要となるスクリプトの設定」
61 むしむしのアルゴリズムを考える 「終わりのないスクリプトを強制終了させる」




【コラム】

●アルゴリズムは何にでもある
●再帰的アルゴリズムは面白い

●円を描くアルゴリズム

●メモリに関するアルゴリズム(スタックとキュー)

●複数のスプライトが同時に動くわけ

●なぜ、あいうえお順にソートできるのか?

●割り込みは合法なのだ!
●私が考えるプログラミング教育




参考文献

Scratchの使い方(簡易マニュアル)​

はじめに

私の“アルゴリズム生活〟

 私は、これまでコンピュータと40年間付き合ってきました。そのせいか、性格や物事のやり方が、コンピュータに似てきてしまったように思われます。コンピュータは、常に効率よく演算し、できるだけ早く処理することを考えて(実際には人間が考えたプログラムに従って)、それを実行しています。私も、何かをする前には、やり方を考えてから行動します。

 ある日、朝目が覚めたとき、まず始めに着替えをしようか? それとも顔を洗おうか? トイレに行こうか? と悩みました。そして、今日は出かける予定なのでスーツを着る日だと気がつき、まず顔を洗うことにしました。なぜなら、水はねでスーツを汚さないようにと考えたからです。ところが、私には、水に触るとオシッコがしたくなるという変な癖があるので、結局は、①トイレ、②洗顔、③着替え、の順に行動することに決めました。

 またある日は、スーパーへ買い物に行くことになり、どうせ車で行くのなら、畑(市から市民農園を借りているので)に寄って、野菜の収穫をしてこようと考えました。そして、収穫した一部を、孫の家に届けようとも思いました。さてこの場合には、どの順に行動すればよいのでしょうか? 畑で作業すると土で汚れます。汚れた格好でスーパーへ行きたくありません。それに、孫にお菓子も届けたいので、まずはスーパーへ、次に畑へ、そして最後に孫の家へ、という順に決めました。
 ところが、畑に行ったところで、たまたま隣の畑で作業していた知人と、野菜作りの話題で盛り上がり、そのまま帰宅してしまいました。孫の家へ行くのを忘れてしまったのです。これは、私が人間だからこそ起こしてしまった間違いです。コンピュータだったら、絶対にこんな間違いはしません。

 このように、何をするにしても、いろいろな方法を考えることは大切です。このとき考えた“いろいろな方法”こそが“アルゴリズム”なのです。しかし、行動を開始する度に、いちいち「効率の良い方法はどっちだ?」などと考え込んでいたら、かえって効率が落ちるばかりか、煩わしくて頭が変になってしまいかねません。
 私は行動する前に、常にいろいろなアルゴリズムを考えますが、無意識の内にも、ちゃんと目的に合ったメリットの出せるアルゴリズムを選択できて、きちんとした行動のできる理想の人材を目指して、日々の生活を送ってきました。これこそが、私にとっては永年の“アルゴリズム生活”だったというわけです。

 本書では、身の回りに溢れているアルゴリズムを紹介し、アルゴリズムはコンピュータプログラム専用というものではなく、普段の生活の中でも大いに役立つものであることを知っていただき、十分に活用してもらいたいという思いで執筆しました。 
 特に、2020年から“プログラミング”が義務教育の科目として取り入れられることが決まり、子供たちがアルゴリズムを学ぶ際の一助となることを意識した内容にしました。また、プログラマを目指す学生の参考書としてや、新人エンジニアの研修テキストなどにも対応させたつもりです。専門書を読み始める前に、一読いただけると幸いです。

 なお、本書の出版は、小生が地元の小学校のプログラミング支援を行った際に作成したパワーポイントがきっかけとなり、日刊工業新聞社の鈴木徹部長のご指導により実現いたしました。ここに改めて感謝する次第です。

著者しるす

買い物かごへ