情報システム学科 ソフトウェア入門...

22
プログラミング基礎 ガイダンス c-learningコード:

Upload: dangdieu

Post on 17-Feb-2018

241 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

プログラミング基礎

ガイダンス

c-learningコード:

Page 2: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

授業概要

この講義では前期のプログラミング入門をうけて、プログラミングの最も基本的な方法である構造化プログラミングの理解を目指し、2年次以後で取り扱うプログラミング応用abのための基礎作りを行う。言語は引き続きJavaを用いる。

到達目標: Javaを用いて構造化プログラミングを行うことができる。

Page 3: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

授業計画

1. ガイダンス・Java言語概論

2. Javaのコンパイルと実行

3. データ構造(1) 変数の型、変数の代入、キャスト

4. 演算子と式、標準入出力

5. 制御構造(1) if文、switch case文

6. 制御構造(2) for文、while文、do while文

7. 制御構造(3) 多重ループ、break文、continue文

8. 中間テスト・解説

9. データ構造(2) 参照型(1) 文字列

10. データ構造(3) 参照型(2) 1次元配列

11. データ構造(4) 参照型(3) 多次元配列

12. メソッド(1) クラスメソッド、return文

13. メソッド(2) 引数

14. メソッド(3) クラス変数、参照渡し

15. 総まとめと復習

学年末定期試験あり

Page 4: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

注意事項

科目URL: http://www.edu.tuis.ac.jp/~mackin/programming/

準備学習・時間外学習: 予習は事前に指定され、毎回必須とする。また、復習課題を必ずすること。

成績評価の方法: 期末試験60%、課題等40%で評価する。出席2/3に満たないものは、欠席不可とする。

テキスト: 「ITText Java基本プログラミング」(今城哲二編、オーム社)

参考図書: 「やさしいJava(第6版)」(高橋麻奈、ソフトバンク) (第5版も可)

他科目との関連: 2年次以降のプログラミング関連科目の基礎となる。

履修条件: 1年次前期のプログラミング入門を履修していること。

受講上の注意: 遅刻、欠席をしないこと。全クラスノートPCを利用するため、毎回持参すること。

Page 5: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

授業の進め方

90分の授業時間の多くを演習に費やす。そのため、事前の予習は必須

提出課題・予習含めて、毎週4時間程度の授業外学習課題が出る

プログラミング言語は、自然言語(英語など)と同じく、どれだけ集中した時間をかけて、繰り返しを行ったかが重要

プログラミング入門より深く、難しくなる。同じ努力なら成績は下がる

Page 6: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

プログラミングとは

プログラム:コンピュータを動作させる手順を書いたもの

(例:写真表示のプログラム)

写真データを読む→画面表示できるデータに変換→画面に表示する

コンピュータはプログラムの通りに動作する

プログラムが間違っているとコンピュータもプログラムの通りに間違った動作をする

Page 7: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

プログラミング言語の誕生

コンピュータの心臓部であるCPU(中央演算装置)では、非常に単純な命令(マシン語)しか理解できない

– メモリからデータを読む・書き出す

– 計算(足し算、ビット演算、比較)

– 特定の条件の時に、別の命令に制御を移す

しかし、プログラムの手間がかかり、ミスを探すのが大変

そこで、人の言葉に近い「プログラミング言語」が開発された

Page 8: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

様々な高級プログラミング言語

何千種類もプログラミング言語が生まれている

FORTRAN (1957)

LISP (1958)

COBOL (1959)

BASIC (1964)

LOGO (1967)

C (1972)

Java (1995)

Page 9: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

自然言語とプログラミング言語

自然言語(日本語、英語など)

少し間違っていても、適当に(コンテキストに合わせて)解釈される(例:きのうはかさをわすれてしまいた)

プログラミング言語

少し間違うだけでプログラム全体が動かない、あるいは、プログラムが途中で止まってしまう

厳密で曖昧さがない

Page 10: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

構造化プログラミング(structured programming)

3つの基本制御構造(逐次、分岐、反復)、および関数、ブロックを用いて、プログラムの制御および構造を分かりやすくした

階層構造も重要

2年次のオブジェクト指向プログラミングの基礎となる

Page 11: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

なぜJavaを使うのか

現在システム開発の主流言語– 特にサーバサイドで多く利用されている

本格的なオブジェクト指向言語→大規模なソフトウェア開発向き

様々な環境で動作(UNIX(Linux), Windows, Macintosh, Android, …)

移植性が高い=portable

インターネットとの親和性が高い

Page 12: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

Javaの特徴

• オブジェクト指向言語

• コンパイラ・インタプリタ言語

• マルチプラットホーム

• ネットワーク機能

• アプレット

• ガーベジコレクション

• 汎用描画機能

• C/C++類似性

• マルチスレッド機能

Page 13: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

開発元: Javasoft(1995) → Sun → Oracle

Java SE JDK (J2SE SDK)

Java SE JRE (J2SE JRE)

Java EE (J2EE)

Java ME (J2ME)

ツール:

IDE (NetBeans, Eclipse, など)

javadoc

Javaの開発・実行環境

Duke

Page 14: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

javac クラス名.java

java クラス名

java -jar JARファイル.jar

JARファイルの例) rt.jar

Javaの実行方法

Foo.class

Bar.class

Baz.class

FooBar.jar

Page 15: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

パッケージ

パッケージとは、複数のクラスを機能ごとにまとめたクラスの集まり(ディレクトリ構造)

java.lang パッケージ

– Java言語の基本的な機能に関するクラスの集まり

java.io パッケージ

– 入出力に関するクラスの集まり

java.util パッケージ

– 基本ではないが、便利な機能に関するクラスの集まり

import java.lang.*; のように宣言する。

Page 16: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

パッケージ

すでに、パッケージのクラスを利用している。

– String, Integer クラス (java.lang パッケージ)

– InputStreamReader, BufferedReader クラス (java.ioパッケージ)

java.lang String

Integer

Page 17: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

APIレフェレンス

javadoc コマンドにより、生成されている Java標準形式のクラス・マニュアル

パッケージ・クラスごとに分かれており、各クラスごとに利用できる全てのフィールド(データ)やメソッド(機能)の意味と呼び出し方法が記述されている。

javadoc形式のコメントをソースコードに埋め込むだけで、javadocコマンドが自動的に生成する

/** */ などを利用する。

Page 18: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

javadoc 形式コメント例

public class BasicGraphics{

private BasicCanvas canvas;

/**

* 黒色。color()メソッドの引数で利用。

* @see #color

*/

public static byte BLACK = BasicCanvas.BLACK;

javadoc形式

Page 19: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

javadoc 実行例

% javadoc Hello.java

Page 20: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

実習環境

全クラスノートPCを利用する

Linux上でEmacsでコーディングを行い、コマンドラインからJavaを実行する(前期と同じ)

次回までにLinuxとコマンドライン操作の復習を行っておく(特に前期Windowsクラスの学生)

Page 21: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

初心に返る

入学当初は「コンピュータに強くなりたい」

「プログラミングに強くなりたい」と思っていたはず。

初心に返って、もう一度がんばってみよう。

Page 22: 情報システム学科 ソフトウェア入門 ガイダンスmackin/programming/guidance2017.pdf · この講義では前期のプログラミング入門 ... 「ITText Java基本プログラミング

次回までの予習

テキスト「ITText Java基本プログラミング」(今城哲二編、オーム社)1章を良く読んでくること。

次回、授業開始直後に1章から理解度確認4問程度出題します。