講義コード 1411J
講義名 ソフトウェアデザインII
(副題)
開講責任部署 全体
講義開講時期 秋学期
講義区分
基準単位数 1
時間 0.00
代表曜日 木曜日
代表時限 4時限
開講学科 情報処理学科
必選別 選択
履修セメスター 第2セメスター
その他
担当教員

職種 氏名 所属
准教授 ◎ 宮川 幹平 (指定なし)

講義概要
本実習は、Java言語によるプログラミングを取り扱う授業である。
Javaは、学びやすい文法構成を採用しているほか、大規模開発にも対応できるオブジェクト指向言語であり、様々なコンピュータ環境において同じように動作する(Write Once, Run Anywhere)といった特徴を持っている。そのため、コマンドラインアプリケーションやウィンドウアプリケーション、Webアプリケーション、モバイル端末用アプリケーションなど、幅広い分野でJavaが活用されている。
本実習では、上記のような多様な応用分野でのJavaプログラミングに挑むための基盤として、Javaの基本文法とオブジェクト指向プログラミングの基礎を実践的に学んでいく。
到達目標
・基本型変数及び文字列クラスの宣言・初期化、定数の宣言・初期化、代入・演算、キーボードからの入力(Scannerクラス利用)、コンソールディスプレイへの出力、条件分岐と繰り返し構文、論理演算、構文の入れ子、配列の利用、メソッドの定義と利用について、Javaの文法に則った表現ができる。
・素数判定・最大公約数の計算・探索・整列といった基本的なアルゴリズムに基づき、これらを実装したJavaプログラム(コンソールプログラム)を作成できる
履修のポイント及び留意事項
実習授業であり、1回でも欠席すれば授業に追いつけなくなる可能性がある。欠席分を取り戻すことは学生諸君の自己責任であることに注意されたい。また、プログラミング技術の修得に演習は必要不可欠である。授業時間以外において、課題だけに留まらず、数多くのプログラムを作成することを期待する。
講義日程
テーマ内容
第1週Javaの世界と開発環境、Javaプログラムの基本構造Javaによるプログラミングの基本的な流れについて学ぶ。また、最も基本的なプログラム構造を例として、インデントとコメントの重要性について理解する。
第2週変数と定数、式の評価基本的なデータ型と種別について理解するとともに、変数の宣言・代入・初期化の方法、定数の宣言について学ぶ。
リテラルの表現方法、式の構成要素と評価の流れ、演算子とその優先順位・結合規則、自動型変換・キャストについて学ぶ
第3週基本的なクラスライブラリの利用(キーボードからの入力、乱数生成、数学計算等)Scannerクラスを利用したキーボードからの入力と変数への格納方法を学ぶ。
その他、今後のプログラムにおいて用いるいくつかのクラス・メソッドについて紹介する(Mathクラス、Randomクラス、Dateクラス等)
第4週制御構造(1)条件分岐(if構文)と繰り返し(while構文)の基本的な記述方法とともに、ブロックの記述方法と変数のスコープ、条件(論理式)の記述方法について学ぶ。
第5週制御構造(2) 分岐構造のバリエーションとして、else句の省略、ifの入れ子、switch構文について学ぶ。
第6週制御構造(3)繰り返し構文の基本文法を学ぶ。
指定回数の繰り返しや論理演算を用いた条件式の表現、入力値の自己チェックの手法を学ぶ。
繰り返し構文のバリエーションとしてdo-while構文の構成と使いどころについて理解する。
第7週制御構造(4)繰り返し構文のバリエーションとしてfor構文について学ぶとともに、多重ループ・breakとcontinueによる繰り返しの制御について理解する。
第8週配列(1)配列の宣言と初期化、配列型変数(参照型変数)の意味について理解する。
配列の初期化、コピー、全列挙のプログラムを構成できる。
第9週配列(2)拡張for構文を用いた配列処理の手法を理解する。

第10週配列(3)
演習課題
多次元配列(配列の配列)の定義とその特徴について理解する
演習:High and Lowゲームの作成
第11週メソッド(1)メソッドの定義、引数・戻り値の利用、オーバーロード、引数とローカル変数のスコープについて理解する
これまで学習してきた基本的な処理をメソッド(クラスメソッド)として実現・利用する手法を理解する

、線形探索、二分探索のアルゴリズムを活用した探索プログラムを作成する
第12週メソッド(2)値引数の意味、配列引数、コマンドライン引数の利用と挙動について学ぶ。

第13週実践1線形探索法・二分探索法・基本選択法、基本交換法、基本挿入法に基づくプログラムを作成する。
第14週実践2基本的な再帰アルゴリズムに基づくプログラムを作成する。
(べき乗・フィボナッチ数列・クイックソート)
第15週クラスとパッケージ複数クラスによるプログラムの作成、パッケージの概念について理解する

他の授業科目との関連
「ソフトウェアデザインI」については履修済みであることを強く推奨する。また、「ソフトウェアデザインIII及びIV」を履修するためには、本授業の内容を理解することが必要不可欠である。
また、「アルゴリズム」と連携して授業を展開するため、並行して履修すること。
その他、ソフトウェア開発プロセスに関しては「システムマネジメント」の内容が参考になるだろう。また、オブジェクト指向に関する概念的な内容については「ICT経営論」で学ぶことが出来る。
その他、コンピュータシステムに関する科目群「コンピュータ科学基礎」「コンピュータシステム」「コンピュータネットワーク」「データベース」等は、プログラマとしての基本教養として履修しておくことが望ましい。
評価方法
(1)文法に関する理解度を図る小テストの成績:50%
(2)提示アルゴリズムを実装したプログラムの品質:50%
上記の合計点により評価する。
教科書
スッキリわかるJava入門
インプレスジャパン
参考図書
明解 Javaによるアルゴリズムとデータ構造 柴田 望洋
ソフトバンククリエイティブ
オフィスアワー(授業相談)
いつでも可
学生へのメッセージ
プログラミングは実際に作ってみなければ上達しません。プログラミングを楽しんでください。
準備学習の内容
テキストは自習に適したものを指定してある。毎回、次回学習する範囲を指示するので、各自予習しておくこと。授業時間にテキストを端から端まで一緒に読む、などといったことは行わない。