本講義では、情報科学の基本を学ぶ。 コンピュータの理論的な側面を経験することが目標となる。 毎回、機械語、コンパイラ、情報理論、計算理論などから初歩的なテーマを選ぶ。 理解を深めるために演習を行う。
授業内容に応じて参考資料を紹介する。
原則として毎回レポート課題を出す。 最後の授業では筆記試験を行う。 レポートの採点結果と試験の得点を総合して成績を決定する。
レポートはすべて提出すること。
レポート課題に取り組むこと。
コンピュータの台数の関係により、履修希望者が80名を越えた場合は抽選を行います。
この授業のテーマは「情報科学」です。 情報科学 ( computer science )とは、情報の構造や処理に関する学問です。 情報を処理するときにはコンピュータを利用しますので、情報科学はコンピュータに関する学問であるとも言えます。
コンピュータの勉強と言えば、電子メール、ウェブ・ブラウザ、ワープロ・ソフト、表計算ソフトなどの使い方と考えることでしょう。 これらは、コンピュータの文具としての側面です。 文具以外にも、コンピュータには、技術的な側面と理論的な側面があります。
コンピュータは、高度な文具を実現するために、複雑なハードウェアと複雑なソフトウェアを組み合わせてできている機械です。 この複雑な機械を現実のものにしているのが、コンピュータの技術です。 そして、複雑な機械をきちんと構成するためには、それなりの理論が必要です。 この理論こそが、コンピュータの理論、すなわち情報科学です。
コンピュータの理論を理解するには、プログラミングを学ぶのが効果的です。 しかし、この授業ではプログラミングは扱いません。 プログラミング以外の方法で、コンピュータの理論を経験します。
具体的には、次のような動機付けを行います。
この授業では、理論を紹介するだけではなく、理解を深めるための演習も行います。 演習を行うには、実際に動くシステムが必要です。 この授業では、そのシステムとしてJavaプラットフォームを用います。
Java とは、1995年にSun Microsystemsが発表したプログラミング言語です。 現在、JavaはCやC++と並ぶ主要な言語に位置付けられています。 Javaの重要な特徴の一つに、マルチ・プラットフォームであることがあげられます。 つまり、一度Javaでプログラムを書けば、それはWindowsでもLinuxでもSolarisでもMac OS Xでも動くのです。 自宅のパソコンにJavaプラットフォームをインストールすれば、自宅でも演習ができます。
この授業では、完成されたJavaプログラムをそのままコピーして実行します。 プログラムの一部を書き換える場合もあります。 Javaプログラミングの経験は必要ありません。 もしJavaの知識があれば、より深く理解できるはずです。
この授業では、次のようなアプリケーションを利用します。
Jedit は、アートマン21が開発したテキスト・エディタです。 Emacs は、GNUプロジェクトが開発したテキスト・エディタです。 「 ターミナル 」は、Mac OS Xに付属しているターミナル・ソフトウェアです。
今日は、これらのアプリケーションの使い方を覚えながら、授業の準備をします。
この授業では、演習でいくつかのプログラムを入力します。 すでに自分でプログラムを保存している学生もいると思いますので、授業用のフォルダを作り、そこに演習で作ったファイルを置くことにします。
もし、「フォルダ」という言葉を聞いたことがなければ、これを「ディレクトリ」と読み替えてください。この授業では、フォルダとディレクトリは同義語です。
はじめに、「ターミナル」を起動します。 「ターミナル」を起動するには次のようにします。
次に、授業用のフォルダを作成します。 この作業は一度行えばよいものです。 「ターミナル」で次のように入力してください。
b04a001@AsiaA1:~% mkdir comp2l b04a001@AsiaA1:~%
続いて、Jeditを起動します。 Jeditを起動するには次のようにします。
今日は、次のプログラムを実行します。 このプログラムは、データ7を格納し、それを出力するものです。
/* 1*/ class Ex1 { /* 2*/ public static void main (String[] args) { /* 3*/ int x = 7; /* 4*/ System.out.println(x); /* 5*/ } /* 6*/ }
プログラムをファイルに保存するには、次のようにします。
プログラムを実行するには、「ターミナル」で次のように入力します。
b04a001@AsiaA1:~% cd comp2l b04a001@AsiaA1:~/comp2l% javac Ex1.java b04a001@AsiaA1:~/comp2l% java Ex1 7 b04a001@AsiaA1:~/comp2l%
確かに、データ7が出力されました。
最後に、Emacsを起動します。 Emacsを起動するには次のようにします。
今日は、先ほど実行したバイナリ・ファイルの内部をのぞき見し、データ7を6に変造します。 バイナリ・ファイルを編集するには、次のようにします。
再び、「ターミナル」でプログラムを実行します。
b04a001@AsiaA1:~/comp2l% java Ex1 6 b04a001@AsiaA1:~/comp2l%
確かに、データ7が6に変造されました。
履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をメールで提出してください。 メールの差出人は学内のアドレス(b04a001@twcu.ac.jpなど)とし、メールの宛先はkonishi@twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(9月30日)を明記してください。