コンピュータサイエンスを学習できる記事をまとめました。このページから関連する記事にアクセスできます。
日本語では情報工学と言って、コンピュータに関する基礎知識です。たぶん、情報系の大学や専門学校で習います。
正直、現代のコンピュータはプログラミングを含めて難易度が下がってるので、この辺の知識が無くても普通に生きていけます。
では、なぜ学ぶのでしょうか。それは単に知ってることで有利な場面が多いからです。
理解できなくても1回学ぶと記憶に残ります。何も知らないゼロよりも価値があるとは思いませんか?
深く知らなくても知識は役に立つよね。
何事も広く浅く知る。そんな人間になりたい。
入門
デジタルとアナログの意味を考えたことはありますか? この2つはコンピュータを理解する上でとても大切です。ここでは両者の違いと、メリット・デメリットを解説します。 アナログ (analog) とは? 連続した量を他の連続した量で表示すること。 Wikipedia c...
日々お世話になるコンピュータ、搭載されてる装置の理解は大切です。ここではパソコンに限定して、知っておくべき主要な装置を学習しましょう。 スマホとかも同じ仕組みなの? うん。呼び方は違ったりするけど原理は同じだからね。ただ、利用されるメーカーとか部...
コンピュータを構成するのはハードウェアだけではありません。ハードウェアとソフトウェアを組み合わせることでコンピュータとして機能します。 そしてソフトウェアも様々な種類に分類され、機能に応じて役割が存在します。ここではどんなソフトウェアがあるのか学習し...
アプリケーションには大きく2つのインターフェイスが使われます。そもそもインターフェイスとは何か。GUIやCUI/CLIって何か。これらについて学習しましょう。 Interface (インターフェイス) エンジニアになると頻繁に聞く単語です。これは、ある要素がお互いに...
基礎
ここではコンピュータでも利用される数値の表現方法を学習しましょう。 数値の表現方法に2進数と16進数と呼ばれる仕組みがあります。これは2進数なら0と1のみ、16進数なら0から15の数値で数を表現する方法です。 全く分かりません。 難しく考えなくて大丈夫だよ...
ここでは2進数と16進数と10進数の相互変換を学びます。n進数を理解できてない人は、こちらを参考にしてください。 2進数を10進数に変換する方法 これは全てのn進数に言える理論です。まずn進数の桁上りについて考えてみましょう。n進数において桁が上がると...
ここでは小数点を含む数値を2進数で表現する方法を学びましょう。小数点以外はこちらの記事で解説してるので、不明な方はどうぞ。 小数を含む2進数を10進数に変換する方法 そもそも小数とは何でしょうか。まずは10進数で考えてみましょう。 0.25ってど...
2進数も10進数と同様に四則演算ができます。と言うより、数字に変わりないので16進数でも可能です。ここでは2進数の四則演算について学習しましょう。正直、ごく稀に使う足し算と引き算ができれば十分です。 2進数の足し算 10進数と変わらず桁上りが発生したら...
コンピュータの世界の単位、bit(ビット)とbyte(バイト)を理解しよう!
コンピュータの世界にも基礎単位が存在します。それがbit(ビット)とbyte(バイト)です。ここではコンピュータで使われる単位について理解しましょう。 bit (ビット) bitはコンピュータの世界の最小単位です。そしてbitは0か1の2種類の値しか表現しません。この時...
コンピュータと2進数には深い関係があります。それはどんな関係なのでしょうか。 これまで2進数や単位の話をしたけど何か気がつくことない? bitの1桁が2進数で表現できます。 そう。2種類の状態しか表現できないbitは2進数と相性がいいんだ。実のところコンピ...
64bitや32bitという言葉を聞いたことがあるかもしれません。今回はこれが何を意味するのか、学習していきましょう。 64bitや32bitの意味 この数字は1回に扱える情報量を意味し、64bitなら2の64乗の情報が扱えます。具体的な数字を示すなら、次のようになります...
コンピュータにはbit単位、つまり0と1だけで演算するbit演算が存在します。それがどんな演算なのか、今回は実用例も交えて学習しましょう。 ちなみにbit単位で演算すると言っても、実際にはbyte単位で処理されます。その場合は複数のbitを計算することになりますが、常...
前回の説明でbit演算を解説しました。その中のシフト演算について、伝えるべき特性があるので番外編として紹介します。別枠の理由は記事が長くなるのと、知っておくべき知識だけど使う必要はないからです。なお、前回の記事は以下です。 シフト演算すると何が...
ファイルやフォルダを当たり前に使ってると思いますが、プログラミングする場合はもう少し知識が必要になります。OSの努力により、ほぼ隠されて存在が見えませんが、それらは必要な知識です。ここで隠されてる知識を学びましょう。 階層型ファイル構造 意識した...
ファイルとは何でしょうか。エンジニアになるならファイルへの理解は必須です。ここでは何気なく使ってるファイルについて、より知識を深めましょう。 ファイルの概念 そもそもファイルとは何でしょうか。以前から話してる通りコンピュータは0と1しか扱えません...
ディレクトリとファイルには必ずパスが存在します。今回はそんなパスについて理解を深めましょう。 パス (Path) の概念 ディレクトリまたはファイルの存在する場所を指し示す文字列です。全てのディレクトリとファイルは必ず1つのパスを所有し、同一のパスを共...
初級
コンピュータは0と1しか理解できません。では、どうやって様々なデータを表現するのでしょうか。それを理解する前にコンピュータが数値を扱う仕組みを知っておきましょう。 と本題に入る前にひとつ。ここでの話題は初心者には難しいと思います。特に後半の話は理解が難...
0と1しか理解できないコンピュータ。では、どうやって文字や画像を表現するのでしょうか。ここでは最も簡単な文字の表現を学びましょう。 文字の表現方法 理論の話となるので、ここでは色々と簡略化して説明します。こんな文字は存在しませんが、大文字のAからZ...
コンピュータが複数個のbyteを扱う場合、そのbyteを並べる順番にルールがあります。これはバイトオーダ(byte order)とも呼ばれていて、大切な知識になります。 エンディアン (endian) の概念 2byte以上から構成される数値を並べる時、そのbyteを最上位から並べ...
プログラムで絶対に利用する変数、これをコンピュータサイエンスの視点から理解しましょう。汎用的な知識を得ることで、どのプログラミング言語を学ぶ時でも役に立ちますよ。 変数 (variable) の概念 その名前の通りで変化する数です。プログラムを作る時、全て...
プログラムで利用する便利な配列、これをコンピュータサイエンスの視点から理解しましょう。汎用的な知識を得ることで、効率のいいコードが書けたり、別のプログラミング言語を学ぶ時の役に立ちます。 配列 (array) の概念 配列は変数の集合です。例えばユーザ...
プログラムで利用するリスト構造、これをコンピュータサイエンスの視点から理解しましょう。汎用的な知識を得ることで、効率のいいコードが書けたり、別のプログラミング言語を学ぶ時の役に立ちます。 リスト (list) の概念 リストも配列と同じく複数個のデータ...
プログラムで利用するスタックとキュー、これをコンピュータサイエンスの視点から理解しましょう。汎用的な知識を得ることで、効率のいいコードが書けたり、別のプログラミング言語を学ぶ時の役に立ちます。 スタック (stack) データ構造の1つで、リストと同じ...