Review好奇心の赴くまま本を選び、読み終わったら感想を書きます。縺ア繧薙←繧峨�ョ譛ャ...拍手ランキング過去1週間の間に拍手はありません。普段PCを触っていないスマホ世代の中高生を対象としたプログラミング入門。数回で終わるクライエントサイドWEBプログラミング体験教室。全ページフルカラー(笑)。Chromeの「デベロッパーツール」機能を使う。Windows、Mac対応。「やってみよう!」的な内容。4章構成で、HTML(第1章約60ページ)、JavaScript(第2章約70ページ)、CSS(第3章約20ページ)の仕組みを軽く紹介した後、「診断アプリ」を作成(第4章約60ページ)して終了。厚手の紙を使っているが、ページ数自体は220ページ程度と(プログラミング関連書籍としてはかなり)少なめ。文字も大きく行間も広い(笑)ため、スイスイ読み進んでいける。「ジックリ取り組む」というタイプの本ではなく、本書全体が「新学期1回目の授業」のような内容なので、既に「プログラミングを覚えたい!」と鼻息荒くなっている意欲的な学生さんには当然もの足りないだろう。その場合、本書を数日で終わらせて(初学者の独習でも1日1章進むことは可能だろうと思う)、もっと本格的な「入門書」にサッサと進むが吉。表紙に「N高校のプログラミング教育メソッドを大公開!」とあるが、通常の学校教科書のようなお堅い本ではない。何はともあれ、まずは生徒にプログラミングを体験させる、ということに主眼を置いたオリエンテーション的な内容で、角川ドワンゴ学園の運営する通信制高等学校「N高等学校」でも、本書を「教科書」として用いているワケではないと思う(どうやら、3か月間の課外授業の教材の冒頭部を掻い摘んで書籍化したものが本書のようだ。「N予備校」の有料会員(月額1000円(税抜))になれば、残りの教材を見ることが出来るだけでなく、ネット配信される生放送授業を視聴したり、WEB上のフォーラムで講師や他の受講生に質問したり出来るようだ)。私自身は習う立場ではなく教える立場で本書を手に取ってみたのだが、(第4章以外は)正直ほとんど参考にならなかった。本書の目的は、読者にプログラミングスキルを身に付けさせることそのものにではなく、「プログラミングって誰にでも出来るものなんだ!」「アプリやサービスの裏側にある仕組みって意外と単純なものなんだ!」と実感させることにある。その点は割り切っているようで、網羅的な内容ではないことはもちろんのこと、他の入門書なら説明するようなことすら説明を省き(笑)、かなり端折り気味。「薄い内容」と言わざるを得ないが(正直言って、ここまで内容の薄いプログラミング入門は見たことがない(笑))、本書の内容は、受講生に対してその場で情報を補う講師の存在を仮定するなど、「N高等学校」「N予備校」の特長の1つである「ネットを介した双方向授業」を前提として構成されている、ということなのかもしれない(そういう意味では、「独習書」というより、やはり「授業で用いる教科書」なのか)。ちなみに、表紙や裏表紙、各章の扉ページに人気コンテンツの『ソードアート・オンライン』のイラストが用いられているが、本書の内容とは全くの無関係(笑)。いった見目麗しいCGを駆使したゲームを作る、という内容ではもちろんないし、RPG風に学習を進めていく、という趣旨の本でもないので、あまり表紙の印象に惑わされない方がいいと思う。表紙イラストで中高生のハートをつかむ、という作戦なのだろう(僕のようなオジサンのハートも射抜かれてしまいましたが(笑))。本文215ページ程度。ブルーバックス」の「B-2072」。プログラミング未経験者を対象としたPythonプログラミング入門。「Python入門」というより「プログラミング入門」という印象(最近は純粋な「プログラミング入門」が減ってしまったように思うが、初心者には絶対にそういう本が必要なのだ!)。サブタイトルは「プログラムを作りながら基本を学ぶ」。Pythonのバージョンは3.6。言えば、Windowsユーザー向け。Pythonの文法事項を1つずつ網羅的に紹介していくタイプの本ではなく、3つの作例を作りながら、その都度必要となる機能を学ばせていくスタイル。最初の3章はPython実行環境のインストールとウォーミングアップを行う準備編、1つ目の作例を作り終える10章までが入門編、WEBスクレイピングの初歩をかじり(11章)、数値データの統計処理(要約統計量の算出と散布図の表示)を行う(12章)最後の2章が発展編か。プログラミング未経験者でも何とか2〜3日で終えられる内容。400ページ弱と新書としてはかなりボリュームがあるが、見開き2ページでB5判の本の1ページに相当するような感じ、文章も繰り返しが多い(「同じことを少なくとも3回は書いている」と感じるホド(笑))ため、思いの外スイスイ読み進んでいける(200ページ弱のプログラミング入門と考えれば、むしろ薄い部類ではないか)。対象読者は全くのプログラミング未経験者で(ただし、PCの操作そのものにはある程度習熟している必要がある)、中高生や年配の読者を想定しているのか、開発・実行環境のAnacondaのインストールから手取り足取り懇切丁寧、「ただ1人の脱落者も出さない!」という気迫が伝わってくる冗長さ(笑)。Pythonはもちろん他のプログラミング言語経験者には適さないだろうと思う(他の入門書の途中で挫折してしまった、という人なんかにはいいかもしれないが...)。面白いもので、プログラミング関連書籍の世界には「入門書専門ライター」のような人が何人もいるのだが、この著者の特長は「1冊の本を通して読者に何を教え伝えるか」に関して「カリキュラム」がシッカリしている点だと思う。VBA』(2012年)、『入門者のJavaScript』(2014年)も凄く良かった。どちらも全くのプログラミング未経験者を対象にしており、到達目標は決して高くはないのだが、読者に直接語りかけるような口調で、言葉を尽くして確実にゴールまで導いてくれる。プログラミングの初心者が絶対に押さえなければいけないポイントは何か、それらを短時間で学習するのに最適な題材は何か、実によく考えられていると思う(目次を見ただけで、他のPython入門とはかなり異なる内容であることがわかる)。VBA等の)少人数のセミナーを行っているが、そういったセミナーの様子を紙上に再現したようなものなのではないか。マンツーマンで個人指導を受けているかのような雰囲気を味わえると思う。いう意味では、本書はPython入門講座の講師にも役立つ内容だろう。プログラミング言語の文法項目を1つずつ解説していくのは講師にとっては簡単だろうが、受講者としては「プログラミングの楽しさ・面白さ」を実感しづらい。未経験者が週末の2日間+αで、「これなら自分にも何か作れそうだ!」という気になれるような教材を用意するのは難しい。それを用意している、というところがこの著者の抜きんでている点なのだ。Pythonの文法項目や機能、主要ライブラリ、等を網羅的に取り上げていない以上、本書では全く触れられていないトピックも多い。済ませた後に、通常の「Python入門」に進むのが良いだろうと思う。はじめは「新書で1400円は高いな...」と思っていたのだが、200ページ程度の薄手のPythonチュートリアル系入門書と考えればお買い得かもしれない。本書では、Pythonの開発・実行環境として「Anaconda」をインストールし、(Anacondaに含まれている)統合開発環境の「Spyder」を用いている。10を例に挙げている。3そのもの)を用いても本書の内容を学習することは可能だと思うが、本書中に示されている画面画像と全く同じでないとダメ!という人は注意が必要かと思う。本書のサポートページから、作例で用いるファイル一式、付録PDF(実質5ページ)、等をダウンロードすることができる。本文380ページ程度(他に、索引として4ページ程度)。タレント兼プログラマ」(?)の著者による「プログラミングのすゝめ」。気分転換にカフェで読む軽い本、という印象。プログラミングはアイデアを実現するための手段、プログラミング学習で挫折しないコツ、プログラミング「初めの一歩」集、プログラミング言語ってこんな感じ、といった内容。小さな判型サイズのコンパクトな単行本で、おまけに余白も行間も広い(笑)。内容も薄く、本を読むのがもの凄く遅い僕でも2時間で読み終わった。最終章はまさに「蛇足」で、3章までの内容(150ページ弱)でまとめてしまった方が良かったのではないかと思う。読む前は、若い美女タレントによる昨今ハヤリの「子供のうちからプログラミングを学んでおこう!」というような本だろうと思っていたのだが...、読んでみるとやや毛色が違った。「こんなことできないかな?」というアイデアを実現するための手段はたくさんあった方がいい。いう手段の中の1つとして「プログラミング」というものもあるよ、という本。著者は「プログラミング」や「コンピュータ」「技術」そのものが好き!というタイプではないのだろうと思う(それが悪いという意味ではない)。コンピュータやインターネット、それらを操るためのプログラミング技術は、著者にとってはあくまでも「手段」に過ぎない(「目的」ではない)。普通はそういう人には「プログラミングをはじめよう!」なんて本を書く機会は巡ってこないだろうし、これまでこういう立場から書かれたプログラミング関連書を読んだことがなかったので、その意外性が少しだけ面白かった(そう言う意味では、数学・数学教育に関する本をたくさん書いている新井紀子氏の著書に似ているように思う。彼女は「数学」や「数学教育」は目的ではなく手段だ、と割り切っている)。プログラミング言語やWEB技術、電子工作の初歩を学んでみたものの、さて何を作ろうか?という段に至って「作りたいものが何も思い浮かばない...」という人は意外と多いのではないかと思う。ところが、著者には先に作りたいもの(アイデア)がある。それを実現するための手段の1つとしてICT技術「も」使う。「技術を極めてプロになる!」なんて気負わずに手軽な手段として割り切ってしまえば、プログラミングは意外と簡単だったりする(自分でコードを書けないなら、書ける人に書いてもらえばいいのだ。「手段」ならそれもアリだ)。アート系/クリエイター系の人で(「明和電機」のような(笑))、「『プログラミング』で何ができるんだろう?」という人に向いている本かもしれない。本文180ページ程度。教科書の文章は(僕のような文系人間から見ると)驚くほど素っ気ないもので、本書の記述も「アッサリ」した印象だが、言葉不足ではないので(文系読者の)独学にも使えると思う。140ページ程度の薄い本。「計算量(O記法)」「データ構造(配列・リスト、スタック・キュー、木構造)」「探索(2分探索木、2分探索法、ハッシュ法)」「整列(交換ソート・選択ソート・挿入ソート、シェルソート、ヒープソート、クイックソート、マージソート)」といった最小限の内容。ところどころに練習問題が設けられており、巻末に解答例が掲載されている。意欲のある学生さんなら、「時間をかけてジックリ取り組む」というより、「土日の2日間でこの本に書いてある内容を全てマスターする!」くらいの意気込みでバリバリ読み進めていった方がいいと思う。類書と読み比べて基礎固めをするのも吉(特に第4章「整列」の解説はあまり良くないので、他の本と併読した方が良いと思う)。掲載されているサンプルコード(JavaとC言語)やその解説が間違っている箇所があり(また、間違いではないにせよ不要な処理を行っていたり、適切とは思えない例もある)、間違いを全て発見し訂正するツモリで読むとシッカリ理解できると思う(笑)。僕が読んだのは「初版2刷」だが、些細な誤植は結構多い(特に「数値」に誤りが多い。出版社の本書のサポートページにも正誤表は掲載されていない(2017年05月現在))。全てのアルゴリズムにサンプルコードが示されているワケではない。「基礎から学ぶデータ構造とアルゴリズム」という内容の本。講義用の「アルゴリズムとデータ構造」の教科書は類書が実に多い。本屋で立ち読みしてみても正直似たり寄ったりで、本書も特に個性はないような...(著者としては「説明に図表を多く用いている」点が本書の「個性」だと思っているのかもしれないが...、本書の「無個性」振りはタイトルからも窺えようというものだ(笑))。紙数も少なく、しかも何かと中途半端なので、定価で購入していたらかなりガッカリしていただろうと思う。できれば古本を数百円で買いたい本。私自身は「類書を片っ端から立ち読みした中では、最もシンプルな内容で、かつ、最も易しそうだったから」という理由で本書を選び、古本を購入した。ちなみに、著者2人は北海道情報大学の先生のようで、自らの授業で使うために執筆した本なのだろうか?(授業の配布資料をまとめた本なのかもしれない。偏差値は40程度で、それくらいの大学の講義用教科書として適切な内容・レベルということなのだろうと思う。解答例、索引として10ページ程度)。静香(著)2012年インプレス☆☆☆プログラミング未経験者を対象とした「コンピュータ・アルゴリズム」入門。「プログラミングせずにプログラミングを覚えたい」というムシのいい人向け(笑)。ハッシュ探索法」、ソートのアルゴリズムとして「セレクションソート」「バブルソート」「インサーションソート」「クイックソート」、数値計算のアルゴリズムとして「エラトステネスのふるい」「ユークリッドの互除法」を各章20ページ弱のボリュームで1つずつ取り上げていく。図を用いて各アルゴリズムの「作戦」(処理の方針)について確認した後、具体的な処理の流れを「フローチャート」にまとめていき、最後に「疑似言語」化してお仕舞い、というのが各章の大まかな流れ。出題される形式に則っているようだ。特定のプログラミング言語を用いたコード例は掲載されていないが、プログラミング学習者は是非自力で書いてみるべき。コードよりもフローチャートの方がよっぽど「わかりにくい」ことが実感できるだろう(フローチャートはあまりにも「具体的」過ぎて、プログラムの「論理構造」を示すのには向いていない。プログラマはコードを見るとき「大事なところ」と「大事じゃないところ」を見分けつつ全体を眺めているが、フローチャートにはその濃淡が表われづらい。フローチャートには「空行」がないが、空行のないコードは(極端に短いコードを除けば)滅多にない)。「はじめに」でも触れられているが、本書は「データ構造」に関する解説を大胆に省いてしまっている。そのため、連結リストや木構造、スタックやキューを用いるようなアルゴリズムについては取り上げられていない。確かにそれでもサーチとソートの基本的なアルゴリズムや「エラトステネスのふるい」「ユークリッドの互除法」など(著者言うところの「定番アルゴリズム」)は紹介できてしまう。著者の狙いは(アルゴリズムの学習に先立つ)「データ構造の学習」段階での脱落を防ぐことで、これはこれでアリかもしれない。アルゴリズムの威力って凄い!」と腰を抜かすような(笑)例は木構造を扱うアルゴリズムに多いように思う(木構造を配列だけで実現することもできるが...)。本書と同じ平易さで、より高度なアルゴリズムを扱った続編を望む(もっとも、「高度なアルゴリズム」を必要とする人はこのテの本は読まないのかもしれない...)。本書の想定読者は...、「プログラミング自体に興味はないが、プログラミングを覚えなければならない人」なのかな、という印象。変な言い方だが、「プログラムを書かずにプログラムを書けるようになりたい人のための、いちばんやさしい資格試験対策本・アルゴリズム編」という印象を受けた。「プログラミングに興味のある高校生」には易し過ぎるだろう(中学生でちょうどいいか...)。広く一般社会人を対象とした「教養としてのアルゴリズム入門」というのともまた少し違った。「プログラムを書かずに、プログラミングのキモを学ぶことができるのか」と考えてみると...、これはこれで逆に非効率的なのではないか、とも思う。何と言うか、水に入らずに畳の上で泳ぎを覚えようとしているように見えるのだ。プログラミングの勘どころをつかむためには実際にプログラムを書いてみるのが一番。フローチャートでは複雑に見えたプログラムが、コードを書いてみたらよっぽどスッキリしていた、ということはいくらでもあると思う。ちなみに、著者経歴を見てみると東大文学部卒で、情報系の専門教育を受けた人ではなさそうなこと、おそらく塾講師や家庭教師等の経験があるのだろうことが、本書の説明の上手さにつながっているのではないか、と感じた。情報系の専門家であれば、「いくら何でも、これは言わなくてもわかるだろう」と言葉を省いてしまうようなところで説明を惜しまず、それぞれのアルゴリズムの「作戦」「狙い」を示してくれている。特定のプログラミング言語でのコード例を示すような本では、著者はつい「コードの説明」をしてしまいがちだが、本書では「初めにコードありき」ではなく、処理の流れや変数の値の変化を1つ1つ追っていった結果として「フローチャート」なり「疑似言語」なり(広い意味での「プログラム」)ができあがってくる。「結果としてプログラムができている」という形になっているのは良いと思う。電子書籍版のサンプルページを見てみたら説明の「勘どころ」が非常に良かったので早速購入したのだが...、ちょっと期待し過ぎだったかもしれない(笑)。「凄く良いページ」がたまたまサンプルに含まれていただけだった(笑)。教え方の参考にはなった(教える機会なんてありませんが(笑))。本文250ページ程度。コンピュータ・アルゴリズム」について学習する際の「暗黙知」を「形式知」に変え、読者に学習の指針を与えよう、という本(だと思う)。『探索』『ソート』『選択』『マージ』を小難しいと感じるあなたに」とあるが、最初の企画・趣旨から外れた本が出来上がってしまったのではないか、という気がする。第0章・第7章に当たる「序章」「Appendix」を含めて全8章構成。小さめの判型サイズで、文字が大きく行間も広いため、スイスイ読み進んでいける。表紙カバーの印象とは異なり妙に素人っぽいレイアウトの本で(紙も安っぽいし、印刷も黒の一色刷り)、本文で言及されている図がページをめくった次のページに載っているような例が多く、やや読みづらくも感じた。1冊全体を通して、「条件が変われば、用いるべきアルゴリズムも変わる」ということを述べている(のだと思う)読み物風の1冊。コンピュータが得意なのは(人間が直接扱うことのできないくらいの)大量のデータに対して反復処理を行うことだが、逆に言うと(人間が直接データを扱うときのやり方とは異なる)コンピュータ流のやり方が必要になる。その「やり方」の良し悪しは、データ量はもちろんのこと、データ処理の目的、優先事項、その他の様々な制約条件に応じてその都度変わる。その時に「この場合なら、このやり方」と選択できるようになる、ということが、アルゴリズムについて学ぶ意義、ということか。言葉を補って欲しい人向け、という印象。世の中には「手順を示してくれればそれでいい」という人もいるが、逆に「どうしてそうなのか、説明して欲しい」という人もいる。「分数の割り算は何故、分母と分子を引っくり返した掛け算に変形することができるのか」という問題について、(計算手順を身に付けているかどうかに関わらず)「理屈はどうでもいい」というタイプの人もいれば、「どうしても気になる」といつまでも気に病む(笑)タイプの人もいる。本書は後者のタイプの読者向け。特定のアルゴリズムについて具体的に解説している本ではない。そもそも「何故アルゴリズムについて考える必要があるのか」ということについて、わかる人には言わなくてもわかる「暗黙知」を「形式知」に変え、「わかったようなわからないような...」というモヤモヤ感を払拭しようという本。特定のアルゴリズムでの処理の流れや狙いが「わかる」というよりも、「何故わからないか」が「わかる」、その「モヤモヤ感の正体」が「わかる」という方向を目指したようだが、その目論見は...、成功してないんじゃないかなぁ...。技術評論社)に似ている、と感じた。『あなたはコンピュータを理解していますか?』はコンピュータ・サイエンスで用いられる基礎的な概念を(妙チクリンな)比喩で巧みに表現してみせた本なのだが、著者の解説の狙いと読者の理解がピタッと重なると「あぁ、そういうことか」と雲が晴れるように蒙が啓かれる、というタイプの本(逆に言うと、少しでも波長が合わないと全くわからないので、賛否両論になりがちな本)。本書にも、著者の狙い自体が「わかったようなわからないような...」という反応を引き出してしまいそうなところがある。その場合、「書いてあること自体は理解できるが、本当に伝えたいことが何なのかはサッパリわからない」という読後感を抱くことになるだろう(正直、僕はこれに近い)。「いちばんやさしいアルゴリズムの本」という、この書名は良くないと思う。内容を全く反映していないのだから、読んでみないことには何が書いてあるのか全くわからない。本書のように、その狙いが「わかるようなわからないような...」という本にこそ、適切な書名を付けるべきだと思う(もっとも、この内容だからこそ、適切な書名を付けられなかったのかもしれないが...)。編集者が書名を決めたのだろうと思うが、著者自身はどんな書名を考えていたのか是非知りたいと思う(それだけでも理解の助けになる)。本文200ページ程度(他に、「はじめに」「索引」として10ページ程度)。初級プログラマを対象に、中級へステップアップするために「知らない」では済まされない基礎知識をまとめた本。情報系の専門教育を受けた人にとっては「何を今更」といった内容なのだろうが、そうでない人にとっては基礎固めとして「1度は読まなければならない」「避けては通れない」類の本だろうと思う。「プログラミングとは」「コンピュータの仕組みとプログラミング」「データから見たプログラミング」「処理から見たプログラミング」「オブジェクトから見たプログラミング」という章立て。ポインタ・データ構造、演算と制御構造、オブジェクト指向プログラミング、GUIアプリケーション、といったテーマに沿って、(アセンブリ言語、C/C++、Javaを用いて)基礎的な知識や背景にある考え方について述べていく。ワリと厚いが、厚い紙を使っているせいで、読んでみるとスイスイ読み進んでいけた。個人的には特に前半が面白かった(要するに僕はアセンブリ言語に対する少年時代の憧れの気持ちからいまだ脱していないのだろう)。これはどんなプログラミング言語を使っていてもそうだろうと思うのだが、「簡単な処理を書くのにも四苦八苦」というレベルを脱し「普通の処理なら普通に書ける」ようになり、更に「もっと効率的に動作するコードを書きたい」「凝った処理を書かなければならない」というレベルに近づいてくると、コンパイラ系言語であれインタプリタ系言語であれ中間言語形式であれ、「自分の書いたコードが(どのようなマシン語・中間コードに変換され、CPU・インタプリタ・仮想マシン上で)どのように(解釈・)実行されるのか」ということを意識せざるを得なくなってくる(例えば、「0.1を10回足しても1.0にならない」というような事例(←コンピュータ・サイエンス的には超基本的な話)には、全くの初心者時代ではなく、ある程度プログラムを書けるようになった後で初めて出くわすことが多いように思う)。情報系の専門教育を受けておらず、見よう見真似でプログラミングを身に付けてきたプログラマにとって、その時にこういう本とタイミング良く出会えるかどうかは大きな分かれ道だと思う(本書でなくても別に構わないとは思うが(笑))。日経PB出版センター)がコンピュータ関連書籍としては異例のベストセラーになったのは、この頃に「情報系の専門教育を受けておらず、プログラミングの経験もないままIT企業に就職してしまったプログラマ」が急に増えたせいではないかと思う。技術評論社)で、いまだに時々本棚から引っ張り出してきてはチョコチョコと読み返す)。技術評論社)なんかも読み物として面白いのではないかと思っている。「玄人」は矢沢氏の著書をあまり評価しないようだが、彼は「素人」に的を絞っているワケで、「素人向けに面白オカしく解説する」ことに関してはやはり秀でていると思う(彼の「自称・ソフトウェア芸人」という肩書きはまさに「言い得て妙」だと思う)。プログラミングは突き詰めれば「コンピュータというハードウェアの(ソフトウェアによる)操作」なので、ハードウェアそのもののの仕組み(とその上で行われるソフトウェア実行の仕組み)を知らなければ、コンピュータに「効率的な処理」や「凝った処理」を行わせることはできない。仕組みがわかると、プログラミング言語の仕様が「何故そうなっているのか」がオボロゲながら見えてくる(例えば、アセンブリ言語の勉強をすると、「Cの謎」が少しずつ解けてくる)。それは長年の謎が氷解する経験なので、精神衛生的にも大変ヨロシイ。この分野にも「古典的名著」がいろいろあるのだろうが...、別に名著である必要はないのだ(笑)。レベルでいいので、コンピュータ・サイエンスの基礎を一通り抑えておくことが大事だと思う。個人的な話をすると、その昔、C言語の「ポインタ」で混乱して、普通の変数すらわからなくなったことがある(涙)。i)」となるハズだ)。その「値の代入先」が特定のメモリアドレスだとすると普通の変数だってポインタであって、それとは異なる(「普通の変数」ではない)「ポインタ変数」とはいったい何なのか?と大いに混乱した。この疑問には(恥ずかしながら)その後しばらく答えが出せなかったのだが、本書には「左辺に書かれたiはコンパイラによって、自動的にポインタに変換されているのです。これまでにかれこれ200〜250冊くらいのプログラミング関連書籍(ほとんどが初〜中級者向けの一般向けの本)を読んだことがあると思うのだけど、このことについてキチンと述べてくれていたのは本書が初めてである。StudioやEclipseの画面画像の一部としてコードを掲載しているため(コードに関しては)文字が小さく読みづらいこと、Q&A形式であるため話の流れがややブツ切り気味(特に後半)であること、等、気になる点もあるが...、こういう本をまさに今必要としている人は世の中にたくさんいるだろうと思う。古本を送料込みで500円程度で購入したのだが、お買い得だったと思う。本文315ページ程度。「サイエンス・アイ新書」の「264」。プログラミング未経験者を対象とした、読み物としての「アルゴリズムとデータ構造」入門。サブタイトルは「情報処理のかなめとなる考え方が手に取るようにわかる!」。「アルゴリズムってどんなもの?」「変数と配列」「データ構造」「アルゴリズムの基本を学ぼう」「並べ替えのアルゴリズム」「探索のアルゴリズム」「そのほかのアルゴリズム」「アルゴリズムとコンピュータ」といった章立て。見開き2ページで1トピック、左ページが文章による解説、右ページがイラスト、というレイアウト。通常の「アルゴリズムとデータ構造入門」に載っているような内容は第5〜7章のみで、「アルゴリズムとデータ構造」について学ぶための前提的な知識の「おさらい」的な位置付けか。み合わせ最適化、グラフ・ネットワーク・アルゴリズム、等の高度なアルゴリズムについては一切触れられていない。クリエイティブ)の第2〜3章から(2進数と論理演算について)数トピックずつを抜き出して、再構成したような本。「はじめに」を読み始めて、『「アルゴリズム」のキホン』の「はじめに」と最初の段落が全く同一であることに気付いたときには「内容を確認してから買えば良かった」と少し後悔したが、章立て、トピックの順序、その内容までほぼ同じであるものの、『「アルゴリズム」のキホン』よりも解説の文章が微妙に読み易くリライトされていること、右ページのイラストがより意味あるものに変わっていること、等を考慮すると...、「どちらか1冊を」と言われれば本書を推すかな、という印象(ただし、両方はいらない)。プログラミング未経験者向け。特定のプログラミング言語や疑似言語を用いたコード例の記載はないが、著者が念頭においているのはCやPascalといった(今や古典的な)プログラミング言語だろうと思う。「アルゴリズム入門」というよりも「プログラミング入門」と言った方が良さそうな内容で(これは『「アルゴリズム」のキホン』『「プログラミング」のキホン』もそうで、それぞれ『「プログラミング」のキホン』『「コンピュータ」のキホン』と言った方がシックリくる内容)、プログラミングの初歩の初歩についてジックリ語って聞かせてくれている。独学素人プログラマには、「プログラミング言語の入門書」だけでなく、こういった「プログラミングそのものについての入門書」が絶対に必要で、「プログラミング言語の文法は一通りおぼえたのに、プログラムが書けない」という初心者は本書のような本を一読してみると良いかもしれない。「新書がフルカラー印刷である必要はないだろう」と思っていたのだが、『「アルゴリズム」のキホン』と比較して、右ページのカラーイラストが効果的に使われているように思う(『「アルゴリズム」のキホン』はハッキリ言って不要ではないかと思われるイラストも多かった)。右ページのエレ・ガント博士(博士だけど若い!)、小学生(?)のアルゴ君、中学生(?)のリズムちゃん(←可愛い(笑))のやりとりが左ページの解説の言葉足らずな部分をうまく補っていると思う。本文185ページ程度。JUDGE)を活用して学ぶC/C++入門。情報系の大学の先生の書いたシンプルなプログラミング入門で、中高生から年配の読者にまで幅広く対応できそう。クラス、といった、まさに王道、極めてオーソドックスな「C++を用いたC言語入門」。レベル的には初歩の初歩、C/C++の必要最小限、コアの部分を簡潔に記している。ちなみに、第1部の第2章(AOJの利用方法)に関しては、WEB上で公開されているチュートリアルとほぼ同じ内容。「オンラインジャッジ」とは、ソフトウェア開発における「テスト」機能をWEBアプリケーション化して一般に公開したもので、主にプログラミングコンテスト(競技プログラミング)やプログラミング教育に活用されているもののようだ。JUDGE」は日本の会津大学が提供しているオンラインジャッジシステムで、本書の表紙によれば「日本最大級の“オンラインジャッジ”サイト」なのだとか(誰でも無料で利用することができる)。Programming」コースの課題に沿ってC/C++によるプログラミングについて教授していく、という趣旨(著者は会津大学の先生で、AOJの開発者だそうだ)。以前本書を見かけたときにはAOJではC/C++しか使えないのかと勘違いしてしまったのだが、C#、Java、JavaScript、Ruby、Python、PHP、Scala、Haskell、その他諸々、と様々なプログラミング言語に対応している。最近は「オンライン・コンパイラ」なるものも多数存在するようで、インターネットにつながったPCさえあれば(PCである必要すらない?)、WEB上でプログラミングを学べるようになっている。面白い時代になったものだ(ただし、AOJ自体はオンライン・コンパイラ機能を提供していない)。僕はアマチュアとしてのプログラミング歴は長いのだがプロとしての経験がないため、ソフトウェアによるプログラムのテストをほとんど経験したことがなかった(素人はテストしない!)。「オンラインジャッジ」の楽しさに目覚めたのはつい最近で、ITエンジニアのための転職支援サービスである「paiza」や「CodeIQ」で初めて体験した。考えてみると、プロはこういう環境でプログラミングしてるんだろうな〜。Programming」コースの課題はかなり易しめで、プログラミング自体全くの初めて、という初学者向け。それこそ1990年頃(25年前!?)のプログラミング入門と変わらないようなオーソドックス(と言うか、古典的)な内容なので、JavaScript、Ruby、Pythonといった最近の言語向きではないようにも思う(これらの言語には、文字列や配列、各種のデータ構造を操作するための便利なクラスやメソッドが最初から用意されていて、それらを用いてプログラミングを行うのが普通だが、本コースでそれをやってしまうと勉強にならない)。C/C++を用いて昔ながらのプログラムを書いていくのが王道だろう(ただし、「Cの壁=ポインタ」に関する踏み込んだ解説はほぼないに等しく、本書で壁を乗り越えられる人はいないだろう、とも思う)。本書は、一般向け公開講座のテキストや大学の演習の課題、等をもとにしたものなのだか。ワリと厚いが、厚い紙を使っているせいで、実質200ページ程度とプログラミング関連書籍としてはかなり薄手。プログラミング言語の入門書の中には「これでもか!」というくらい内容を詰め込み過ぎてしまう本も多いが、本書はワリとスカスカ(笑)。「言葉を省き過ぎ」ということではなく、多くの入門書ライターの視点とは異なる情報系の先生らしい表現も散見され、それがワリといい感じ(笑)。本書のシンプルな記述を見ていると、「あんまり難しく考え過ぎない方がいいのかも」という気になってくる。テキリージー!3078円という価格は正直ちょっと高い、という印象(この価格なら星2つ)。電子書籍版が紙の本の半額になっていたので購入した。1539円で値段相応、といったところか。マイナビ)として刊行されたようだ。個人的にはこの続編に期待しているので、続編も是非是非半額に...、して欲しい(笑)。本文210ページ程度(他に、演習問題の模範解答として35ページ程度)。「イチバンやさしい理工系」シリーズ中の1冊。プログラミング未経験者を対象とした、教養としての「アルゴリズムとデータ構造」入門。170ページ程度と薄く、「1500円+税」で値段相応、という印象。サブタイトルは「プログラミングの基礎となる『アルゴリズム』の手引き書」。「アルゴリズムとは」「変数と配列」「データ構造」「基本的なアルゴリズム」「並べ替えと探索」「そのほかのアルゴリズム」「アルゴリズムの計算量」という章立て。見開き2ページで1トピック、左ページが文章による解説、右ページがイラスト、というレイアウトなので、(コラム等を含めても)実質的には80ページ程度の本だとも言える。第4章で扱われている「基本的なアルゴリズム」とは、配列中の最大値・最小値を求めるだとか総和・平均値を求めるといった超基本的なもので、通常の「アルゴリズムとデータ構造」的な内容は第5〜7章に含まれる27トピックのみ。第5章では、ソートとサーチ、文字列探索の各種アルゴリズムについて、第6章では、「そのほかのアルゴリズム」として、ニュートン法、ガウスの消去法、台形法、ダイクストラ法、エラトステネスのふるい、関数の再帰呼び出しを取り上げている。動的計画法、組み合わせ最適化、グラフ・ネットワーク、等の高度なアルゴリズムについては触れられていない。ちなみに、表紙カバーにはオセロ(リバーシ)で遊んでいる2人(2匹?)のキャラクターが描かれているが、オセロのアルゴリズムについても取り上げられてはいない。プログラミング未経験者向け。特定のプログラミング言語や疑似言語を用いたコード例の記載はないが、著者が念頭においているのはC言語的な(伝統的な?)プログラミング言語だろうと思う。想定読者がよくわからない本で、中高生から年配の読者まで広く一般を対象とした「教養としてのアルゴリズム入門」と感じた。「アルゴリズムとデータ構造」を学ぶための基礎的な知識のおさらい、用語集、的な位置付けか。前半までは、コンピュータ・プログラミング用語をほとんど用いない「たとえ」による説明を上手いと感じていたが、後半になって現われるソート等の個々のアルゴリズムの言葉による説明はあまり上手くないと思う(図もあまり...)。プログラミング初心者は、第4〜6章で紹介されている各種のアルゴリズムをプログラミング言語を用いて実際に書いてみると、力がつくと思う(ただし、そのための「ヒント」は多くない)。アルゴリズムには「考え方・アイデア」と「実装」という2本の柱があるが、プロフェッショナルではない一般の読者がアルゴリズムについて学ぶ意義はその「考え方・アイデア」を学ぶことだと思う。解くべき問題を「どのように」解いているのか、その「工夫」のポイントを学ぶことが最も大切なことだと思うのだ(プロはまた違って、「如何に実装するか」という要素も同じくらい(あるいは「考え方・アイデア」以上に)重要なのだろうが...)。ところが、その「工夫」の解説があまり良くない。「問題を解くために何をしているのか」「効率的に処理するために、どのような工夫をしているのか」という話をしないで、「手順」の説明に終始してしまっている。アルゴリズムは問題を解くための「手順」そのものなのだから、アルゴリズムの解説が手順の説明になっているのは当然のことなのだが...、こういった一般書で大切なのは手順自体を伝えることではなく、その手順によって何故問題が解けるのか、その手順のどこが最大の工夫ポイントなのかを読者に伝えることだと思うのだ。その「考え方・アイデア」や「工夫」はプログラミング以外にも応用できるのだから...。これは著者の説明が上手いとか下手という問題ではなく、「理工系の世界の『説明』」というものがこういうものなのかな、とも思う。理工系の大学の教科書なんかを見てみると驚くほど簡潔だが、その「簡潔さ」の本質は「言葉を省く」ということにあるように思う。言葉を用いずに「手順」のみを伝える、というのが「理工系の世界の『簡潔』という言葉の意味」なのかもしれない。ところが、文系の人には(と言うか、僕自身のことだが)、「手順」そのものよりもその手順の背後にある「考え方・アイデア」を自分自身の言葉で言い替えて「理解」しようとするところがある(だから、文系の「説明」は言葉がどんどん増えていく)。いう意味で、理工系の「イチバンやさしい」を文系の人(僕だけ?)は「やさしい」と感じることができず、むしろ「不親切」にすら感じてしまう(「イチバン大事なこと」=「考え方・アイデア」が明示的には書かれていないから)。「どうして、あとたった一言が出てこないのかな〜」と何度か思った。本質を示すたった一言でいいのに。あと一言、「つい筆が滑って」しまったりしないのかな〜。“AutoPage”AutoPage最新お知らせ。