Powered by SmartDoc

3 コンピュータの動作原理その1

二重登録者への注意

GJ13AとGJ13Bを両方履修登録することはできません.登録エラーになるので,どちらかひとつを選んで履修登録カードに記入すること.また,どちらを選ぶのかを,私に教えてください.

3.1 予備調査

皆さんがこれまでに履修した授業と既に持っている知識,この授業を履修する理由,授業への希望などを把握したいのでアンケートに記入してください.

3.2 はじめに

3.2.1 今回の学習目標

コンピュータと人間の違い

プログラム(プログラミング)とはどういう作業か?

なぜプログラムの勉強するのか?

コンピュータの構成:ハードウェアとソフトウェア

2進数(,8進数,16進数)

3.3 本題

3.3.1 コンピュータの特徴とプログラミング

コンピュータと人間は対照的な存在です。「コンピュータは難しすぎて使えない」第6章(1)には以下のような表が載っています。

表 3.3.1.1 コンピュータ vs 人間
コンピュータ 人間
とても高速 とても低速
エラーなし エラーだらけ
決定論的 不合理
無感情 感情的
文字通り解釈 察することができる
順番に処理 ランダムに処理
予測可能 予測不能
道徳無視 倫理的
バカ 知的

命令(指示)を、疑いもせず、あきもせず、疲れをまったく見せず、超高速スピードで、大量のデータにもくじけず、命令通りに正確に処理するのがコンピュータという種類の機械です。命令されなければコンピュータは動きません。この命令を作る作業が「プログラミング」です。命令が間違っていても、コンピュータは間違った命令どおりにしか動いてくれません。またこの命令には、精密な文法があります。コンピュータは「察することができない」ので,一字一句間違いなく,すべての手順を完璧にリストアップした命令を教ええてあげないと動きません.

この授業の目的は、プログラミング言語Cの文法にのっとって、コンピュータが正しく動作するように命令を書けるようになることです。

  1. アラン・クーパー著、山形浩生訳、翔泳社

3.3.2 ハードウェアとソフトウェア

コンピュータはハードウェアとソフトウェアの組み合わせで動きます。機械の部分がハードウェアで、機械に命令するプログラムの部分がソフトウェアです。

パソコンでおなじみのMicrosoft社のWindowsやApple社のMac OS、大学で使っているSun Microsystems社のSolarisなどは、ソフトウェアの中でも最も基本的な作業を受け持つ、OS (Operating System)という種類のソフトウェアです。Windows OSが動いているパソコンでも、OSだけをSolarisやLinuxに取り替えることもできます。Windowsの代わりにSolarisをインストールしたパソコンは、大学の情報処理教室にある端末とほとんど同じ動作をします。

ソフトウェアには、Internet ExplorerやNetscape Navigator、WordやXEmacsのような応用ソフトウェア(アプリケーションソフトウェア)もあります。これらのソフトウェアのほとんどは,今回学習するCの仲間のプログラミング言語で書かれています.みなさんも上達したら,XEmacsに匹敵するようなソフトを作れるかも!

3.3.3 なぜ2進数が必要か

人間は10進数で物を数えます。10のかたまりが2つと半端が7つある数のことを27と書き、2(に)じゅう7(なな)と読みます。10の塊で物を数える方法を10進数といいます。

コンピュータは10本の指を持っていないので、ほかの方法で数を数えます。現代のコンピュータは電気で動いていますから、電気ONの状態を1、電気OFFの状態を0として、ONとOFF2つの状態で数を数えます。これが2進数です。

下表に10進と2進の数の対応表を示しますが、ご覧のとおり2進数はすぐに桁が多くなってしまいますし、とても読みにくいです。そこで10に近い2のべき乗として、8進数や(8は2の3乗です)や16進数を使うことが多いです。16進数の場合、9より1個多い数を表す数字がないので、アルファベットのAを使います。BからFも同様です。ですから16進数で2Fと書いてあったら、これは16の塊が2つと半端がF、つまり15、のことですから、10進数で言うと47になります。

10進数と2進数の変換は少しややこしいですが、2進数と8進数と16進数を相互変換するのはとても簡単です。

表 3.3.3.1 10進数と2進数と8進数と16進数の比較
10進数 2進数 8進数 16進数
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 1 0000 20 10
17 1 0001 21 11
18 1 0010 22 12

2進数、8進数、16進数に関する詳細は「計算機科学入門」の「2進数入門」を参照してください。

3.4 やり残し

8進数、16進数の計算

3.5 おわりに

3.5.1 課題

・以下の2進数と10進数の変換をA4レポートで提出

  1. 5 -> (xxxx)2
  2. 8 -> (xxxx)2
  3. 15 -> (xxxx)2
  4. (110)2 ->
  5. (1101)2 ->
  6. (1111)2 ->

・次回は誰かを指名して,今回の学習ポイントが何であったかを説明してもらいます.

3.5.2 次回の学習目標

データの表現(文字の表現)

高級言語とコンパイル

アルゴリズムとデータ構造の重要性

プログラミングに必要な操作の復習(XEmacs,ファイル操作,shell)

初めてのプログラミング

3.5.3 予習範囲

  1. 「コンピュータ初級」あるいは「情報処理I」で学習した範囲でよいから、「東京女子大学計算機利用の手引き」を参照して、XEmacsの操作とUnixコマンドの機能を復習しておく。
  2. キーボード上の文字の位置を覚えていない人は、タイピングの練習もしておく。
  3. 教科書を購入して、0章と1章を読んでおく。