[小西ホームページ]   [目次・索引]   [次の授業]

コンピュータIIB(Javaプログラミング入門)第1回

目次
1.1 教員の紹介
1.2 シラバス
1.2.1 内容
1.2.2 到達目標
1.2.3 スケジュール
1.2.4 教室外の学習方法
1.2.5 教材(テキスト)
1.2.6 教材(参考書等)
1.2.7 成績評価方法
1.2.8 成績評価基準
1.2.9 備考
1.3 履修者の抽選
1.4 プログラミング言語Java
1.4.1 プログラミング言語とは
1.4.2 Javaとは
1.4.3 情報処理センターのJava環境
1.4.4 自宅で自習するには
1.5 授業の準備
1.5.1 システムの更新
1.5.2 授業用フォルダの作成
1.6 プログラムの動かし方
1.6.1 全体の手順
1.6.2 プログラムの入力と保存
1.6.3 コンパイル
1.6.4 プログラムの実行
1.6.5 プログラムのエラー
1.7 アンケート1
1.8 参考文献
索引
javacコマンド   javaコマンド   SDK   コンパイル   デバッグ   バイトコード  

1.1 教員の紹介

名前
小西 善二郎(こにし ぜんじろう)
肩書き
東京女子大学非常勤講師
連絡先
konishi@cis.twcu.ac.jp

1.2 シラバス

1.2.1 内容

本講義では、プログラミング言語Javaを用いてプログラミングの基本を学ぶ。 プログラムの制御構造と配列などのデータ型を理解し、簡単なプログラムを作成することを目標とする。 また、アプレットなどについても触れる。

1.2.2 到達目標

  1. プログラミングの基本を理解する。
  2. 簡単なプログラムを作成できるようにする。

1.2.3 スケジュール

  1. ガイダンス
  2. アプレット
  3. 変数と式
  4. 条件文
  5. 繰返し文
  6. 配列(1)
  7. 配列(2)
  8. 手続きと関数(1)
  9. 手続きと関数(2)
  10. レコード
  11. 文字と文字列
  12. より高度な話題

1.2.4 教室外の学習方法

原則として毎回レポート課題を出すので、その課題に取り組むこと。

1.2.5 教材(テキスト)

http://www.cis.twcu.ac.jp/~konishi/index-j.html

1.2.6 教材(参考書等)

授業内容に応じて参考資料を紹介する。

1.2.7 成績評価方法

レポートおよび筆記試験

1.2.8 成績評価基準

以下の基準にしたがって成績を評価する。

  1. レポートについては、正しいプログラムを作成しているか。
  2. 筆記試験については、プログラミングの基本を理解しているか。

1.2.9 備考

レポートはすべて提出すること。

筆記試験は最後の授業の日に実施する。

メール・アドレス: konishi@cis.twcu.ac.jp


1.3 履修者の抽選

コンピュータの台数の関係により、履修希望者が40名を越えた場合は抽選を行います。 抽選用紙には、時間割番号J202Bを記入してください。


1.4 プログラミング言語Java

1.4.1 プログラミング言語とは

プログラミング言語とは、簡単に言えば、人間がパソコンに対して命令するときに使う言語です。 パソコンは、プログラミング言語を理解して、その命令に従って動きます。 プログラミング言語を使って命令を順番に並べたものが、プログラムです。

世の中には、ワープロ・ソフトやゲーム・ソフトなど、色々なソフトウェアが存在します。 これらのソフトウェアの本質は、何らかのプログラミング言語で書かれたプログラムです。 パソコンは、プログラムに書かれた命令に従って、ワープロ・マシンやゲーム・マシンのように動くのです。

1.4.2 Javaとは

Javaとは、1995年にSun Microsystems社から発表されたプログラミング言語です。 Javaは、ネットワークやGUI(Graphical User Interface)など、現代的な機能が充実しています。 特に、アプレットとよばれる、ホームページにプログラムを埋め込む技術は、Javaが一気に有名になった切っ掛けでもあります。 また、Javaは基本的にマルチプラットホームであり、一度プログラムを書けば、それはWindowsでもMac OS XでもLinuxでもSolarisでも動きます。 Javaの言語体系は比較的整理されているので、プログラミングの入門にも適しています。

1.4.3 情報処理センターのJava環境

一般的に、プログラムを作成するには、プログラム開発用ソフトウェア(言語処理系、開発環境などとよばれる)を用意する必要があります。 プログラマは、開発用ソフトウェアに備わっている機能を利用して、プログラムを実行できるものにしたり( コンパイルcompile )、プログラムの間違いを見つけたり( デバッグdebug )します。

Javaの開発用ソフトウェアには、いくつか種類があります。 この授業では、Mac OS X標準の、Java 2 SDK (Software Development Kit)を用います。 プログラミングの学習が目的なら、SDKの提供する機能で十分でしょう。 Java 2 SDKには、いくつかのバージョンがあります。 情報処理センターのシステムには、バージョン1.5.0がインストールされていので、授業ではそれを用います。

ちなみに、Java 2はバージョン2という意味ではありません。 バージョン1.2.2以降、JavaはJava 2とよばれるようになったのです。

1.4.4 自宅で自習するには

自宅のパソコンにJava 2 SDKをインストールすれば、自宅でこの授業の自習ができます。 CD-ROM付きのJavaの本を買い、その本に従ってインストールするのが簡単です。 本を買いたくなければ、インターネット経由で入手することもできます。 例として、Windows 2000/XP/Vistaが動いているPCに、Java 2 SDK 1.5.0をインストールする方法を説明します。

はじめに、Administratorとしてログオンします。

次に、Java 2 SDK 1.5.0のインストール用ファイルを手に入れます。 URL

http://java.sun.com/j2se/1.5.0/ja/download.html

から「JDK 5.0 Update (番号)」の「ダウンロード」ボタンをクリックし、使用許諾契約(License Agreement)に問題がなければチェックを入れて「Continue」ボタンをクリックし、オフライン・インストール用のファイルを選択してダウンロードしてください。 ファイルの大きさは約52Mバイトです。

ダウンロードが終了したら、ダウンロードしたファイルを実行(アイコンをダブルクリック)します。 質問に答えていくと、フォルダC:\Program Files\Java\jdk1.5.0_(番号)が作られ、必要なファイルやフォルダがその中に展開されます。

続いて、普段のユーザとしてログオンし直します。

最後に、フォルダC:\Program Files\Java\jdk1.5.0_(番号)\binにパスを通します。 「コントロールパネル」→「システム」→「詳細」または「詳細設定」→「環境変数」と選択し、ユーザー環境変数PATHの値にC:\Program Files\Java\jdk1.5.0_(番号)\binを追加します。 (パスが複数ある場合はセミコロンで区切ります。) これでインストールは完了です。


1.5 授業の準備

1.5.1 システムの更新

2007年9月に、情報処理センターのシステムが更新されました。 Mac OS Xであることは変わりませんが、一部のアプリケーションがバージョン・アップしています。

この授業に関係するアプリケーションは次のようなものです。

表 1.1  授業に関係するアプリケーション
アプリケーション 更新前 更新後
ターミナル・ソフト ターミナル ターミナル
テキスト・エディタ Jedit 4 Jedit X
ウェブ・ブラウザ Safari Safari
メール・ソフト Apple Mail Safari+GMail

「ターミナル」とSafariは、Mac OS Xに付属しているソフトウェアです。 Jeditは、Artman 21が開発したソフトウェアです。 GMailは、Googleが提供しているメール・サービスです。

Jeditの起動の仕方は以下の通りです。

  1. DockのFinderアイコンをクリック。
  2. サイドバーの「アプリケーション」をクリック。
  3. 「Jedit X Folder」をダブルクリック。
  4. 「Jedit X」をダブルクリック。

Jeditを終了するには次のようにします。

  1. タイトルバーの赤ボタンをクリック。
  2. メニューバーで、「Jedit X」→「Jedit Xを終了」とクリック。

なお、Jeditの字が小さくて読みにくい場合は、次のようにしてください。

  1. ウィンドウをクリック。
  2. メニューバーで、「書式」→「フォント」→「大きく」とクリック。

「ターミナル」の起動の仕方は以下の通りです。 もし、入力モードが日本語(メニューバーに「あ」)なら、これを英字(「A」)に切り替えておきます。

  1. DockのFinderアイコンをクリック。
  2. サイドバーの「アプリケーション」をクリック。
  3. 「ユーティリティ」をダブルクリック。
  4. 「ターミナル」をダブルクリック。

「ターミナル」を終了するには次のようにします。

  1. exit と入力。
  2. タイトルバーの赤ボタンをクリック。
  3. メニューバーで、「ターミナル」→「ターミナルを終了」とクリック。

なお、「ターミナル」の字が小さくて読みにくい場合は、次のようにしてください。

  1. ウィンドウをクリック。
  2. メニューバーで、「表示」→「大きく」とクリック。

1.5.2 授業用フォルダの作成

Javaでプログラムを作成すると、たくさんのファイルを扱うことになります。 そこで、授業用のフォルダcomp2bを作り、そのフォルダの中で作業を行うことにします。 再び「ターミナル」を起動して、以下のように入力してください。

asiaa1:~ b08a001$ mkdir comp2b
asiaa1:~ b08a001$ cd comp2b
asiaa1:~/comp2b b08a001$

ここで、mkdirはディレクトリを作成するコマンドです(MaKe DIRectory)。 また、cdはカレント・ディレクトリを変更するコマンドです(Change Directory)。 なお、ディレクトリとフォルダは同じ意味です。


1.6 プログラムの動かし方

1.6.1 全体の手順

今日の授業では、Javaのプログラムが与えられたとき、そのプログラムをどうやって動かすかについて説明します。 今日はプログラムの内容を気にする必要はありません。

Javaプログラムの作成から実行までの手順は以下の通りです。

  1. エディタ(Jeditなど)を用いてプログラムを入力する。
  2. 入力したプログラムをファイルに保存する。
  3. Javaコンパイラ(javac)を用いてプログラムからバイトコードを生成する。
  4. Javaインタプリタ(java)を用いてバイトコードを実行する。
プログラムの実行までの流れ
図 1.1  プログラムの実行までの流れ

「コンパイラ」、「インタプリタ」、「バイトコード」などの用語に耳慣れないかもしれません。 ある程度Javaに慣れたら説明しますので、今は気にしないでください。

1.6.2 プログラムの入力と保存

ここで、再びJeditを起動します。 そして、次のプログラムをそっくりそのまま入力します。 アルファベットの大文字を小文字に変えたりしないでください。 /*...*/は入力する必要はありません。

/*  1*/ class GoodAfternoon {
/*  2*/     public static void main (String[] args) {
/*  3*/         System.out.println("Good afternoon!");
/*  4*/     }
/*  5*/ }

次に、このプログラムをファイルに保存します。 Javaのプログラムを保存するときには、ファイル名の拡張子を 〜.java にする必要があります。 今日は、ファイル名を GoodAfternoon.java とします。

新規に作成したプログラムをファイルに保存するには次のようにします。

  1. ウィンドウをクリック。
  2. メニューバーで、「ファイル」→「別名で保存...」とクリック。
  3. 「名前」欄に、ファイル名(今日は GoodAfternoon.java)を入力。
  4. 「名前」欄の右の三角ボタンを数回クリックし、詳細表示に変更。
  5. ホーム→「comp2b」とクリック。
  6. 「エンコーディング」メニューで「Unicode(UTF-8)」を選択。
  7. 「改行タイプ」メニューで「Unix(LF)」を選択。
  8. 「保存」をクリック。

練習のため、タイトルバーの赤ボタンをクリックしてウィンドウを閉じます。 そして、再びこのファイルを開くことにします。

以前作成したファイルを開くには次のようにします。

  1. もしDockにJeditアイコンがなければ、上記の要領でJeditを起動。
  2. DockのJeditアイコンをクリック。
  3. メニューバーで、「ファイル」→「開く...」とクリック。
  4. ホーム→「comp2b」→ファイル名とクリック。
  5. 「開く」をクリック。

なお、更新したプログラムをファイルに保存するには次のようにします。

  1. ウィンドウをクリック。
  2. メニューバーで、「ファイル」→「保存」とクリック。

1.6.3 コンパイル

プログラムをファイルに保存したら、次に「ターミナル」で 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 ) です。 バイトコードは、もとのプログラムとは似ても似つかない、特殊な文字の並びです。

1.6.4 プログラムの実行

最後に、「ターミナル」で javaコマンド を実行します。 バイトコードが GoodAfternoon.class に格納されているので、 java GoodAfternoon と入力してください。 (ファイル名から .class を取り除きます。)

asiaa1:~/comp2b b08a001$ java GoodAfternoon
Good afternoon!
asiaa1:~/comp2b b08a001$

実は、もとのプログラムは、Good afternoon! と出力するものです。 javaコマンドで、確かに実行できたことが分かります。

1.6.5 プログラムのエラー

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コマンドは必ずしも本当の間違いを指摘するとは限りませんが、エラーメッセージを参考にしてプログラムを直してください。 エラーがなくならない限り、バイトコード・ファイルを生成できないので、プログラムは動かせません。


1.7 アンケート1

履修者の予備知識を確認するため、アンケートを行います。 以下の質問に答え、回答をメールで提出してください。 差出人は学内のメール・アドレス(b08a001@cis.twcu.ac.jpなど)とし、宛先はkonishi@cis.twcu.ac.jpとします。 メールの本文には、学生番号、氏名、科目名、授業日(4月10日)を明記してください。

  1. 次の問題が自分でプログラムを作成して解けるかどうかを答えてください。 解ける場合は、どのプログラミング言語かも答えてください。

    問題: 100円を両替する方法は何通りあるかを計算してください。 使える硬貨は、100円、50円、10円、5円、1円とします。 なお、この種の問題は、両替問題(Count Change Problem)と呼ばれます。

  2. 授業内容に関して、何か希望がありましたら答えてください。
asiaa1:~/comp2b b08a001$ java CountChange
1: 100円1枚、50円0枚、10円0枚、5円0枚、1円0枚
2: 100円0枚、50円2枚、10円0枚、5円0枚、1円0枚
3: 100円0枚、50円1枚、10円5枚、5円0枚、1円0枚
4: 100円0枚、50円1枚、10円4枚、5円2枚、1円0枚
5: 100円0枚、50円1枚、10円4枚、5円1枚、1円5枚
6: 100円0枚、50円1枚、10円4枚、5円0枚、1円10枚
7: 100円0枚、50円1枚、10円3枚、5円4枚、1円0枚
8: 100円0枚、50円1枚、10円3枚、5円3枚、1円5枚
9: 100円0枚、50円1枚、10円3枚、5円2枚、1円10枚
10: 100円0枚、50円1枚、10円3枚、5円1枚、1円15枚

...

155: 100円0枚、50円0枚、10円0枚、5円4枚、1円80枚
156: 100円0枚、50円0枚、10円0枚、5円3枚、1円85枚
157: 100円0枚、50円0枚、10円0枚、5円2枚、1円90枚
158: 100円0枚、50円0枚、10円0枚、5円1枚、1円95枚
159: 100円0枚、50円0枚、10円0枚、5円0枚、1円100枚
asiaa1:/~comp2b b08a001$

1.8 参考文献


[小西ホームページ]   [目次・索引]   [次の授業]

2009年4月10日更新
小西 善二郎 <konishi@cis.twcu.ac.jp>
Copyright (C) 2009 Zenjiro Konishi. All rights reserved.