【感想・ネタバレ】教養としてのコンピューターサイエンス講義 第2版 今こそ知っておくべき「デジタル世界」の基礎知識のレビュー

あらすじ

デジタル時代に活躍するための「教養」をこの1冊で身につけよう!
プリンストン大学の一般人向け「コンピューターサイエンス」の講義が1冊に。
デジタル社会をよりよく生きるための知識を伝説の計算機科学者がやさしくお伝えします。

好評をいただいた第1版から2年、早くも第2版が登場です。
第1版の「ハードウェア」「ソフトウェア」「コミュニケーション」の3部構成から、第2版では「データ」を新設、4部構成となりました。
第4部「データ」では、第1版では「コミュニケーション」に含まれていた「データと情報」「プライバシーとセキュリティ」が移設・補強されるとともに、「人工知能と機械学習」が加わりました。
第2部「ソフトウェア」の「プログラミングを学ぶ」では、第1版でのJavaScriptでの説明に加えて、Pythonを用いた説明も加わりました。
また、コロナ禍によるデジタル環境の加速について追記されるなど、全面的に内容が見直されています(末尾の目次をご覧ください)。

私たちの身の回りには、情報機器があふれています。そうした機器を使いこなしてデジタル社会をよりよく生きるためには、コンピューターやソフトウェア、インターネット、さらにはデータに関する知識が欠かせません。本書は、パソコンやスマホをはじめとするコンピューターや、ネット、ウェブサイトがなぜ動くのか、データの扱いを含めどう安全に使いこなせばいいのかを、理系・文系を問わない「一般の人」を対象に、イチからやさしくお伝えします。

...続きを読む
\ レビュー投稿でポイントプレゼント / ※購入済みの作品が対象となります
レビューを書く

感情タグBEST3

Posted by ブクログ

内容は体系的かつ非常にわかりやすい
資格取得のための勉強よりも、実態がわかりやすかった
ただし、技術的な説明において図が少ないため、別途画像検索を併用した方が、わかりが良い

0
2024年06月16日

Posted by ブクログ

# 1周目 読み終えた
「コンピューターサイエンス講義」というタイトルよりも、横に少し小さく書かれている「今こそ知っておくべきデジタル世界の基礎知識」の方が内容をよく表している。特にプライバシーとセキュリティについての警句が各所に置かれているので、コンピューターとインターネットに触るのが少し怖くなるくらいだった。インターネットが怖く思えるのは、最近はすっかり薄れていた感覚で、知らずに麻痺していたのが解けたようだった。

## 14章を読んだ
次にくるものは?

締めくくりの章。ここまで読んでくればおそらくは予想がつくとおり、決して技術の発達によって未来が明るくなるような楽天的な予想をしていない。まだ未解決の問題がたくさん残っている。それらを残したままより良い方向へ進むには無理があるように思える。コンピューターは今のままでも十分面白いものだけど、まだまだ改良の余地はあるだろうし、ここでストップしてしまうようなことは望まれない。そうはあってほしくないと思う。


## 13章を読んだ
プライバシーとセキュリティ

この本では何度もプライバシーとセキュリティについて注意喚起されてきた。コンピューターサイエンスと題している本だが、本当に伝えたいことはコンピューターの細々とした仕組みについてではなく、これらではなかったのかとさえ思える。プライバシーとセキュリティは同一視されやすい。プライバシーが漏洩することは危険でもある。セキュリティーを確保することははプライバシーを守るためにも役に立つ。両者を守るためにも必要不可欠なのが暗号の技術であり、そこに注目している。暗号アルゴリズムの重要性は色んな所で耳にするが、ようやく、初めてその重要性を感覚的に理解できたかもしれない。


## 12章を読んだ
人工知能と機械学習

多くのメディアが賛美する近年のAIに関わる動向について、やはり誇大広告が紛れ込んでいると見る立場のようだ。そうであると分かっていても、これだけ持ち上げられたら無関心を保つことは難しい。中立的でありながら、なんとかうまく溶け込めるようになりたいものだ。短い章ではあるが、ざっくりと現状がどうなっているのかを知ることができた。


## 11章を読んだ
データと情報

検索エンジンから話が始まる。そしてトラッキングに関する警告につながっていく。インターネットでの活動は必ず追跡されている。それはやはりプライバシーの観点から望ましくない。そもそも収集されたデータは何に使われるのだろうかというと、広告のために利用されるのが主で、そのために売買されているようだ。それ以上の悪いことにも利用されている可能性もある。トラッキングから少しでも逃れるために、意識的に対策を行わないといけない。ささやかながら普段の行動を変えることで、できることもある。


## 10章を読んだ
ワールド・ワイド・ウェブ

セキュリティに関していくらか楽観的な自分でも強い不安を覚えるくらいに、Webの負の側面が強調されている。公共の場の無線LANサービスなんかは絶対に使わないでおこうと心に決めた。

いつからか、Webを利用する上でのプライバシーをあまり考えなくなってしまっていた。Webブラウザはほぼデフォルト設定のままで、JavaScriptは実行し放題、唯一入れているプラグインはDuckDuckGoのプライバシーガードのみになっている。一番確実な手段はネットワークケーブルを引っこ抜く、あるいはWi-Fiのスイッチをオフにしてしまうことだろう。それでは不便極まりないので、少しずつ制限を弱めていくと、どこかで妥協点が見つかるはずだ。その妥協点は本当に安全なのかは全くわからない。インターネットに接続している時点で、そうでない場合と比較にならないくらい、コンピューターは危険にさらされている。そんな中でできることなどたかが知れているのではないか、そんな諦めがあった。Webブラウザに対する信頼もある。ここ何年かの間で、Webブラウザはさらに洗練されてきた印象を受ける。きっとこのWebブラウザならそんなに間抜けなことはしないだろうと安心して使っていて、実際に目に見えるような形で問題に遭遇したこともない。昔はもっと懐疑的であった。時代が変わってWebの安全性は少しは改善されてきたのかと思って懐疑心は薄れてきていた。しかし、安全になったようなことなど全くないようだった。残念なことだ。


## 9章を読んだ
インターネット

インターネットは重要だ。いくらネットワークの社会インフラが整っていても、コンピューターでそれを活用できなければあまり意味がない。インターネットにつながっていないコンピューターもあまり面白みがない。20年くらい前のゲーム機なんかはネットワークにつながってなくても面白いものではあった。それは、コンテンツがインターネット以外の媒体で提供されているからあまり問題にならなかったのだろう。PCにはコンテンツがほとんど含まれておらず、インターネットから入手することが前提となっていたところがある。今や、インターネットにつながらなければWindowsはライセンス認証すらできなくなっている。もはやコンピューターとインターネットは切り離せないもの考えて良い。

インターネットを支えるソフトウェア技術はTCP/IPであり、重要性が強調されている。ネットワークプロトコルは階層化されている。ある階層のプロトコルはその他については一切関与せずに、愚直に自分のことだけをこなしていく。このモデルは大成功した。今のところほとんど完璧に機能しているとみなしてもよく、裏舞台で実験されていたとしても、表立って新しいモデルに置き換えようという動きはない。TCP/IPについてしっかり学んでおくことはまだ当分の間、必須科目であり続けるのだろう。


## 8章を読んだ
ネットワーク

古来から人力でどうやって遠く離れた場所に情報を伝達してきたか、それから機械を使うようになって、電子を使った手段に発展してきた。ネットワークは技術的な課題だけではなく、個人、企業、政府、その他の団体にまたがって、社会的な課題も含んでいる。特にコンピューターの利用に関わる話題として、無線ネットワークの実現に注目する。携帯電話の利用は当たり前になりすぎて、つながるのが当然のような感覚でいるが、背後では複雑なことが行われていることを忘れないでおきたい。


## 7章を読んだ
プログラミングを学ぶ

JavaScriptとPythonを少しやってみる。意外なことに、これまでになく平凡な内容だった。プログラミングの経験のない人にとっても特別に優れたガイドではなさそうだし、経験者にとっても特別に得るものが多いわけでもなさそうに思えた。もしプログラミングの講師をするなら言語はPythonを選択するそうだ。もし自分が初めてプログラミングの講座を受講するなら、ラズパイで電子工作をPythonで学びたい。Webブラウザの環境よりも遥かにプログラミングをしてコンピュータを操っている実感が得られる。Arduinoでももちろん良い。問題は楽しいと思えるかどうかだ。オンラインコンパイラではプログラムが動作しときの楽しさが激減してしまうのが問題だ。

言語を学ぶだけのか、プログラミングを学ぶのかにより適した材料に違いはあるだろう。Webの偉大さは認識しているつもりだ。それでも、Webプログラミングが最初に学ぶべきものなのかどうかには否定的な立場を取る。JavaScriptが最初の言語として優れているようには見えないというのもある。Pythonが広く利用されているのは、機械学習やその他のAI技術やデータサイエンスなど、そういった技術的な背景があるからであって、Python自体が特別最初の言語に向いているわけでもないように思う。Pythonを学ぶ人すべてがAIやデータサイエンスに関わりたいわけではないだろう。かといって、他に良い言語があるわけでもないので、別にそれで不利益があるわけでもない。


## 6章を読んだ

ソフトウェアシステム

OSとアプリケーション。OSの役割について、なぜ必要なのか、何を行っているのか。汎用化が進んでいる。特殊目的のハードウェアであっても、新たに専用のOSを開発するコストを差し引くと、Linuxなどを採用するケースが多くなってきている。現代普及しているOSは、Microsoftのものを除くと、ほとんどがUnix系列になっている。これは少し寂しい話だ。アプリケーションはWordがよく引き合いに出されてきた。ここではWebブラウザーが取り上げられている。Webブラウザーの役割がOSに近いところがあるからだ。WebブラウザーをOSとするコンピューターシステムのようなアイデアをありがちだが、実現しないのだろうか。ChromeOSの存在が気になる。


## 5章を読んだ
プログラミングとプログラミング言語

アセンブリ言語と高級言語。知的財産権。オープンソースソフトウェア。どれも自分にとって重要な話題だった。まったく目新しい話題であるわけではない。プログラミングを始めてから、少しずつ経験を積むにつれて、最後にはオープンソース、別の言い方をするとフリーソフトウェアにたどり着くのが自然な流れであるように解釈できなくもない。それだけが唯一の正解であるなどとは思わないし、そういう意図で構成された章であるわけでもないだろう。自分の場合にはよく当てはまっているし、それで良かったと思うだけだ。プログラミング言語のようなコアなツールはオープンソースでなければ支持を得るのは難しいという主張には完全に同意する。


## 4章を読んだ
アルゴリズム

アルゴリズムは料理のレシピのように例えられることがある。この例えはイメージしやすくて便利なのだが、コンピューターに仕事を依頼するレシピとしては不完全でもある。コンピューターに依頼するときは、料理のレシピのような曖昧な記述は一切許されない、融通の利かないものだ。

線形時間 N の探索と、対数時間 log N の二分探索を比較して、対数時間アルゴリズムがいかに優れているかを明らかにする。線形探索では、データが1000増えれば1000ステップ増加する。二分探索では、10ステップくらいしか増えない。10億増えても30ステップしか増えない。データが多くなるほど対数アルゴリズムの優位性は際立つ。ソートアルゴリズムについてもO(N^2)とO(N logN)では大きな違いが出てくる。最後にP=NP問題について触れられていている。


## 3章を読んだ
プロセッサーの内部

プロセッサーの動作をシミュレートする、おもちゃのコンピューターを使って解説が進められる。アセンブリ言語の経験があるのなら馴染み深いものだ。おもちゃではあっても、その原理は変わらない。フェッチ、デコード、実行の処理サイクルは本物のコンピューターと同じである。本書で強調されていることに、命令もデータも同じようにメモリにロードされる、ストアドプログラム方式の流れを体験できる。プロセッサーの性能は指数関数的に向上していくことが予言されていて、そして真実となった。しかし、物理的には大きな進化を遂げながら、やはりその原理は変わっていない。単純に処理速度を向上させる単純な目標に絞ることができたのも後押しとなったのだろう。性能が上がったことによる恩恵で、単に短時間で計算が行えるにとどまらず、根本は同じことなのだが、コンピューターによっていろんなことが可能となった。この傾向はこれからも続いていくのだろうか。


## 2章を読んだ
ビット、バイト、そして情報の表現

二進数について。なぜコンピューターは二進数を扱うのか。アナログとデジタルの違い。どのようにして写真や音楽や動画をビットで表現しているのか。全く未知の話題ではなかった。ビットやバイトという名称の由来は何なのかなどの豆知識が披露されていて、読んでいて飽きない内容だった。


## 1章を読んだ
コンピューターとは何だろう?

めっちゃ読みやすい。コンピューターの発展の歴史について柔らかく語られている。自動車の基本的な構造が変化していないのと同様に、コンピューターもフォン・ノイマン型のアーキテクチャから変わっていないという対比は分かりやすい。それでいて、性能は1960年代から桁違いに向上している。基本アーキテクチャを変えることもなく、これだけの性能の向上を達成しているのはよく考えると興味深い。PCがどうなっているのか、各コンポーネントの仕組みと役割が解説されている。PC自作派の人にはおなじみだろうけど、最近はパーツで購入して自分で組む人が減ったような気がするので、こういうのも必要だろう。少なくともコンピューターに関わるなら、教養としてでだけなく、実用的な面からも知っておいたほうがいい内容だ。


## 0章を読んだ
はじめに

特にプライバシーの危機が強調されている。あらゆる情報、例えば、ある個人が今どこにいるとか、どんなものを買ったとか、インターネットでどんなサイトにアクセスしたとか、そういうのはすべて記録されている。そして、様々なところで売り買いされたり、悪用されたりする可能性がある。そう聞いてもあまり驚かないのは、感覚が麻痺しているからだろうか。もし、自分一人だけの情報がダダ漏れになっている、とかだと嫌な感じがするけど、世界全員がそうであるというのなら、仕方ないというか、諦めに近い気持ちになる。心理的な対策として、PCに保存されているデータはすべて見られているくらいの気持ちでいて、見られて困るような変なものは入ってこないようにしている。しかし、これはあまり健全ではないし、そういう話でもない。困るのは、本当にセキュリティが必要な、アカウントの認証情報やクレジットカードの情報なんかだろう。これらがダダ漏れになるのは流石に気分が悪い。もっと深刻なのは、セキュリティが脆弱な社会というのは、土台が不安定な上に立っている建物のようで、ちょっとしたことで崩れてしまう危機感すら感じさせる。


## 前書きを読んだ
原題は "Understanding the Digital World" のようだ。本来の対象読者は、エンジニア、数学者、物理学者のような技術的背景を持つ人たちではないと書いてある。コンピューターの専門家向けの本ではないという意味で、教養と呼ぶのは誤解のない良い名前だ。

丁寧に書かれている良い前書きなのだけど、一つだけ気になるのがある。ネットワークを介した攻撃者のことをハッカーと読んでいるが、カーニハン先生が本当にそういう文脈でその単語を使うのかどうか気になって、Google Booksを覗いてみたら本当にhackerと書いているようで、意外だった。

0
2023年09月26日

Posted by ブクログ

コンピュータサイエンスの入り口を幅広く初学者向けに解説されている。しかし、易しく理解できる分野だけではない。
この本で学習できることは多い、有益。これだけ体系的に解説されているのはすばらしい。

0
2022年09月03日

Posted by ブクログ

幅広い知識が何となく身につく。
本の中での主題はプライバシーやセキュリティに関して、一般人が取れうる対策や危機感を感じられるようにすることのような感じもした。

0
2025年08月20日

Posted by ブクログ

ハードウェアからプログラミング、データやセキュリティ、ネットワークまで、歴史や中身の解説まで、平易な言葉で体系的に整理されたコンピューターの教科書。ここまで纏めらた本も中々無いだろうという位、網羅的で非常に価値ある内容だと思うが、反面、人によっては冗長で不要な部分もあるだろうから、一ページ目から丁寧に読むのではなく、必要な部分だけ目を通しても良いのだろう。

下記はメモ書き。私の関心の散漫さのせいで、繋がりが分かりにくいが、幅の広さは伝わるかなと思う。

ー プロセッサーによっては、電力消費を抑えるために処理速度を犠牲にするやり方を採用している。バッテリーから電力を得ているか否かによって、動的に速度調整が行われることさえある。早いコアと遅いコアを複数備えて異なるタスクに割り合っているプロセッサーもある。

ー 検索エンジン、オンラインショッピング、ソーシャルネットワーク、いわゆるクラウドコンピューティングなどの大規模ウェブサービスは、すべて分散コンピューティングシステムであり、何千ものコンピューターが連携して、多数のユーザに結果を素早く提供する。

ー 兵器などの軍事システムは、世界の金融システムと同じように、完全にコンピューターに依存しています。サイバー戦やスパイ活動は現実にある脅成です。2010年に発生したStuxnet (スタックスネット)ワームは、イランのウラン濃縮用遠心分離器を破壊しました。2015年12月にウクライナで発生した大規模停電は、ロシア由来のマルウェアが原因でしたが、ロシア政府は関与を否定しています。その2年後、Petya (ペトヤ)という名のランサムウェアを使った2回目の攻撃が、ウクライナの様々なサービスを妨害しました。2017年に発生したWannaCry (ワナクライ)と呼ばれるランサムウェア攻撃では世界中で数十億ドルの損害が引き起こされましたが、これについて米国政府は北朝鮮が責任を負っていると正式に非難しています。2020年7月には、ロシアのサイバースパイ集団が、Covid-19 ワクチン候補に関する情報を盗み出そうとしたとして、複数の国から非難されました。

ー GIF は256色しかサポートしていませんが、PNGは最低でも1600万色に対応しています。どちらも写真画像向けではありません。これらの技術は、すべてロスレス圧縮を行います。この圧縮では情報が失われないため、圧縮を解除するとオリジナルの情報が正確に復元されます。直観に反するように思えるかもしれませんが、元の入力を正確に再現する必要がない場合もあります、つまり近似バージョンで十分な場合です。そうした状況下では、ロッシー(非可逆)圧縮技術を使うことでさらに良い圧縮を行えます。ロッシー圧縮は、人間が見たり聞いたりするコンテンツに最もよく使用されます。デジタルカメラの画像を圧縮する場合を考えてみてください。人間の目は、互いに似通った色を区別できないため、入力の正確な値を保持する必要はありません。もっと少ない色で十分ですい少ないビットでエンコードできます。

ー WhatsApp がFacebook:(現Meta)の製品であり、iMessageがAppleの製品であるのに対して、Signal はオープンソースのソフトウエアです。エドワード・スノーデンは、安全な通に適したシステムとして Signalを推奨し、自らも使用しています。多くの人が利用しているZoom 社のビデオ会議システムは、256ビット AESによる会議のエンドツーエンド暗号化を謳っています。しかし、2020年に米国連邦取引委員会(FTC)が提出した訴状では、実際には Zoomが暗号鍵を手元に保持し、AES-128暗号しか使用しておらず、Safari ブラウザーのセキュリティ機構をバイパスするソフトウェアを密かにインストールしていたと主張されています。

0
2024年08月25日

「IT・コンピュータ」ランキング