本講義では、プログラミング言語Javaを用いてプログラミングの基本を学ぶ。 プログラムの制御構造と配列などのデータ型を理解し、簡単なプログラムを作成することを目標とする。 また、アプレットなどについても触れる。
「スケジュール」の欄を参照
http://www.cis.twcu.ac.jp/~konishi/index-j.html
授業内容に応じて参考資料を紹介する。
毎回の課題80%と試験20%で成績を評価する。
以下の基準にしたがって成績を評価する。
課題のプログラムはすべて提出すること。
試験は最後の授業の時間に実施する。
メール・アドレス: konishi@cis.twcu.ac.jp
コンピュータの台数の関係により、履修希望者が40名を越えた場合は抽選を行います。 抽選用紙には、時間割番号(現代教養学部はJJ202B, 文理学部と現代文化学部はJ202B)を記入してください。
この授業の内容は、一言で言うと、プログラミングです。 プログラミング ( programming )とは、プログラムを作成することです。 それでは、プログラムとは一体何かと言いたくなるでしょう。 これを説明するには、パソコンの仕組みを理解する必要があります。
パソコンの部品の中で、最も重要なのがCPUです。 CPU ( Central Processing Unit )は、中央処理装置と訳され、加減乗除などの演算をしたり、他の部品を制御したりします。
次に重要なのが、記憶装置です。 記憶装置 ( memory unit )は、文字通り、情報を記憶する装置です。 記憶装置は、主記憶装置と補助記憶装置に分類されます。
主記憶装置 ( main memory unit )は、単にメモリと呼ばれたり、 RAM ( Random Access Memory )と呼ばれたりします。 主記憶装置の中の情報は、CPUから直接読み書きできますが、電源を切ってしまうと、主記憶装置の中の情報は消滅します。
一方、 補助記憶装置 ( auxiliary memory unit )とは、具体的にはハードディスク、フロッピーディスク、CD-ROM, DVD-ROM, USBメモリなどのことです。 補助記憶装置の中の情報は、CPUから間接的にしか読み書きできませんが、電源を切っても、補助記憶装置の中の情報は保持されます。
なお、パソコンには、CPUや記憶装置の他にも、キーボード、マウス、ディスプレイなどの部品があります。 これらをまとめて、 ハードウェア ( hardware )と呼びます。
CPUは演算や制御を行う装置ですが、どんな演算をするかや何を制御するかは決まっていません。 CPUが何をするかは、人間が命令を与えると決まります。 命令 ( instruction )とは、CPUに行わせる演算や制御を示す情報です。
人間は、CPUに対して、演算や制御の詳細を命令の列として与えます。 すると、CPUはその命令の列に従って、具体的な演算や制御を行うのです。 この命令の列が プログラム ( program )です。 CPUがプログラムに従って演算や制御を行うことを、プログラムを 実行する ( execute )と言います。 パソコンが動くとは、CPUがプログラムを実行することです。
以上をまとめると、人間がプログラムを作成してパソコンに与えると、パソコンはそのプログラムに従って動くというわけです。 つまり、プログラミングができるようになれば、パソコンを思い通りに動かせるようになります。
CPUにプログラムを実行させるには、CPUが直接読み書きできる主記憶装置に、そのプログラムを格納する必要があります。 しかし、主記憶装置は電源が切れると、その中の情報は消滅します。 そこで、主記憶装置と補助記憶装置を次のように使い分けます。
パソコンの電源が入る前、プログラムは、ハードディスクやCD-ROMなどの補助記憶装置に格納されています。 パソコンの電源が入ると、必要に応じて、プログラムは主記憶装置にコピーされます。 そして、CPUは主記憶装置の中のプログラムを実行します。 パソコンの電源を入れてから使えるようになるまで時間がかかるのは、補助記憶装置から主記憶装置にプログラムをコピーしているからです。
なお、プログラムの集合体は ソフトウェア ( software )と呼ばれます。 この言葉は、ハードウェア(元々の意味は金物)の反対という意味で作られた言葉です。
また、ソフトウェアという言葉はソフトと略されることが多く、ワープロ・ソフトや表計算ソフトのように使われます。 ワープロ・ソフトも表計算ソフトも、もともとは誰か(実際は技術者集団)が作ったプログラムなわけです。
この授業ではプログラミングを学ぶわけですが、勉強すると何がよいのかについて説明しておきます。
1. プログラマになれる。
プログラマ ( programmer )とは、プログラムを作成する人のことです。 この授業より難しい勉強が必要になりますが、プログラマとしての職が得られるかもしれません。
2. パソコンをより便利に使える。
たとえ10行程度のプログラムでも、道具として役に立つことがあります。 自分でプログラムを作成し、それを自分の道具にすることで、パソコンをより便利に使うことができます。
3. パソコンについての理解が深まる。
プログラミングの経験があれば、パソコンがどのように動いているのか、ある程度理解ができます。 パソコンにトラブルが発生しても、適切に対処できるかもしれません。
プログラミング言語 ( programming language )とは、プログラムを作成するときに使う言語です。 プログラマは、何らかのプログラミング言語を選択し、その文法に従ってプログラムを作成します。 作成したプログラムをパソコンに与えると、パソコンはそのプログラムを実行します。 プログラミング言語によっては、人間が理解できるプログラムをCPUが理解できるプログラムに翻訳するという作業を行います。
Java とは、1995年にSun Microsystems社から発表されたプログラミング言語です。 Javaは、ネットワークやGUI(Graphical User Interface)など、現代的な機能が充実しています。 特に、アプレットとよばれる、ホームページにプログラムを埋め込む技術は、Javaが一気に有名になった切っ掛けでもあります。 また、Javaは基本的にマルチプラットホームであり、一度プログラムを書けば、それはWindowsでもMac OS XでもLinuxでもSolarisでも動きます。 Javaの言語体系は比較的整理されているので、プログラミングの入門にも適しています。
一般的に、プログラムを作成するには、プログラム開発用ソフトウェア(言語処理系、開発環境などとよばれる)を用意する必要があります。 プログラマは、開発用ソフトウェアに備わっている機能を利用して、プログラムを実行できるものにしたり( コンパイル 、 compile )、プログラムの間違いを見つけたり( デバッグ 、 debug )します。
Javaの開発用ソフトウェアには、いくつか種類があります。 この授業では、Mac OS X標準の、 JDK (Java SE Development Kit)を用います。 プログラミングの学習が目的なら、JDKの提供する機能で十分でしょう。 JDKには、いくつかのバージョンがあります。 情報処理センターのシステムには、JDK 5.0がインストールされていので、授業ではそれを用います。
自宅のパソコンにJDKをインストールすれば、自宅でこの授業の自習ができます。 CD-ROM付きのJavaの本を買い、その本に従ってインストールするのが簡単です。 本を買いたくなければ、インターネット経由で入手することもできます。 例として、Windows 2000/XP/Vista/7が動いているPCに、最新版のJDK(JDK 6)をインストールする方法を説明します。
はじめに、Administratorとしてログオンします。
次に、JDK 6のインストール用ファイルを手に入れます。 URL
から「JDK 6 Update (番号)」の「JDKダウンロード」ボタンをクリックし、「Platform」メニューでWindowsを選択し、「Download」ボタンをクリックします。 ユーザ名とパスワードを求められますが、「Skip this Step」をクリックするとダウンロードが始まります。 ファイルの大きさは約76Mバイトです。
ダウンロードが終了したら、ダウンロードしたファイルを実行(アイコンをダブルクリック)します。 質問に答えていくと、フォルダC:\Program Files\Java\jdk1.6.0_(番号)が作られ、必要なファイルやフォルダがその中にコピーされます。
続いて、普段のユーザとしてログオンし直します。
最後に、フォルダC:\Program Files\Java\jdk1.6.0_(番号)\binにパスを通します。 「コントロールパネル」→「システム」→「詳細」または「詳細設定」→「環境変数」と選択し、ユーザー環境変数PATHの値にC:\Program Files\Java\jdk1.6.0_(番号)\binを追加します。 (パスが複数ある場合はセミコロンで区切ります。) これでインストールは完了です。
2007年9月に、情報処理センターのシステムが更新されました。 Mac OS Xであることは変わりませんが、一部のアプリケーションがバージョン・アップしています。
この授業に関係するアプリケーションは次のようなものです。
アプリケーション | 更新前 | 更新後 |
---|---|---|
ターミナル・ソフト | ターミナル | ターミナル |
テキスト・エディタ | Jedit 4 | Jedit X |
ウェブ・ブラウザ | Safari | Safari |
メール・ソフト | Apple Mail | Safari+GMail |
「ターミナル」とSafariは、Mac OS Xに付属しているソフトウェアです。 Jeditは、Artman 21が開発したソフトウェアです。 GMailは、Googleが提供しているメール・サービスです。
Jeditの起動の仕方は以下の通りです。
Jeditを終了するには次のようにします。
なお、Jeditの字が小さくて読みにくい場合は、次のようにしてください。
「ターミナル」の起動の仕方は以下の通りです。 もし、入力モードが日本語(メニューバーに「あ」)なら、これを英字(「A」)に切り替えておきます。
「ターミナル」を終了するには次のようにします。
なお、「ターミナル」の字が小さくて読みにくい場合は、次のようにしてください。
Javaでプログラムを作成すると、たくさんのファイルを扱うことになります。 そこで、授業用のフォルダcomp2bを作り、そのフォルダの中で作業を行うことにします。 再び「ターミナル」を起動して、以下のように入力してください。
asiaa1:~ b08a001$ mkdir comp2b asiaa1:~ b08a001$ cd comp2b asiaa1:~/comp2b b08a001$
ここで、mkdirはディレクトリを作成するコマンドです(MaKe DIRectory)。 また、cdはカレント・ディレクトリを変更するコマンドです(Change Directory)。 なお、ディレクトリとフォルダは同じ意味です。
今日の授業では、Javaのプログラムが与えられたとき、そのプログラムをどうやって動かすかについて説明します。 今日はプログラムの内容を気にする必要はありません。
Javaプログラムの作成から実行までの手順は以下の通りです。
「コンパイラ」、「インタプリタ」、「バイトコード」などの用語に耳慣れないかもしれません。 ある程度Javaに慣れたら説明しますので、今は気にしないでください。
ここで、再びJeditを起動します。 そして、次のプログラムをそっくりそのまま入力します。 アルファベットの大文字を小文字に変えたりしないでください。 /*...*/は入力する必要はありません。
/* 1*/ class GoodAfternoon { /* 2*/ public static void main (String[] args) { /* 3*/ System.out.println("Good afternoon!"); /* 4*/ } /* 5*/ }
次に、このプログラムをファイルに保存します。 Javaのプログラムを保存するときには、ファイル名の拡張子を 〜.java にする必要があります。 今日は、ファイル名を GoodAfternoon.java とします。
新規に作成したプログラムをファイルに保存するには次のようにします。
練習のため、タイトルバーの赤ボタンをクリックしてウィンドウを閉じます。 そして、再びこのファイルを開くことにします。
以前作成したファイルを開くには次のようにします。
なお、更新したプログラムをファイルに保存するには次のようにします。
プログラムをファイルに保存したら、次に「ターミナル」で javacコマンド を実行します。 プログラムは GoodAfternoon.java に保存されていますので、 javac GoodAfternoon.java と入力してください。 プログラムが正確に入力できていれば、GoodAfternoon.class というファイルが生成されます。
asiaa1:~/comp2b b08a001$ ls GoodAfternoon.java asiaa1:~/comp2b b08a001$ javac GoodAfternoon.java asiaa1:~/comp2b b08a001$ ls GoodAfternoon.class GoodAfternoon.java asiaa1:~/comp2b b08a001$
ここで、lsはファイルをリスト・アップするコマンドです(LiSt)。
もし「エラー1個」のようなメッセージが表示されたら、どこかに入力ミスがあります。 ファイル GoodAfternoon.java を見直して、入力ミスを正し、保存して、もう一度 javac コマンドを実行してください。 エラーメッセージの見方は後述します。
javac コマンドは、〜.java ファイルをもとに 〜.class ファイルを生成します。 この 〜.class ファイルの内容が、 バイトコード ( bytecode ) です。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。
最後に、「ターミナル」で javaコマンド を実行します。 バイトコードが GoodAfternoon.class に格納されているので、 java GoodAfternoon と入力してください。 (ファイル名から .class を取り除きます。)
asiaa1:~/comp2b b08a001$ java GoodAfternoon Good afternoon! asiaa1:~/comp2b b08a001$
実は、もとのプログラムは、Good afternoon! と出力するものです。 javaコマンドで、確かに実行できたことが分かります。
javacコマンドは、プログラム中におかしな点を見つけると、バイトコード・ファイルの生成を止め、エラーメッセージを出力します。
例えば、GoodAfternoon.java で、3行目
System.out.println("Good afternoon!");
を
Systemout.println("Good afternoon!");
と間違ったとします。 javacコマンドを実行すると、
asiaa1:~/comp2b b08a001$ javac GoodAfternoon.java GoodAfternoon.java:3: シンボルを見つけられません。 シンボル: 変数 Systemout 場所 : GoodAfternoon の クラス Systemout.println("Good afternoon!"); ^ エラー 1 個 asiaa1:~/comp2b b08a001$
というメッセージが表示されます。 これは、3行目の Systemout(記号 ^ の指す点)がおかしいという指摘です。
javacコマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、バイトコード・ファイルを生成できないので、プログラムは動かせません。
履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をメールで提出してください。 差出人は学内のメール・アドレス(b08a001@cis.twcu.ac.jpなど)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(4月9日)を明記してください。