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

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

講義概要
本実習は、Java言語によるプログラミングを取り扱う授業である。
Javaは、学びやすい文法構成を採用しているほか、大規模開発にも対応できるオブジェクト指向言語であり、様々なコンピュータ環境において同じように動作する(Write Once, Run Anywhere)といった特徴を持っている。そのため、コマンドラインアプリケーションやウィンドウアプリケーション、Webアプリケーション、モバイル端末用アプリケーションなど、幅広い分野でJavaが活用されている。
本実習では、「ソフトウェアデザインIII」の内容を引き継ぎ、Javaの基本文法に関する理解を深めるとともに、Androidアプリ作成を体験し、その基本技術を修得する。
到達目標
・例外処理、文字列操作、コレクション、ストリームの利用について理解する
・Androidアプリ開発について、実践的なプログラミング学習に向けた基本を修得する。
履修のポイント及び留意事項
実習授業であり、1回でも欠席すれば授業に追いつけなくなる可能性がある。欠席分を取り戻すことは学生諸君の自己責任であることに注意されたい。また、プログラミング技術の修得に演習は必要不可欠である。授業時間以外において、課題だけに留まらず、数多くのプログラムを作成することを期待する。なお、テキストは自習に適したものを指定してある。毎回、次回学習する範囲を指示するので、各自予習しておくこと。授業時間にテキストを端から端まで一緒に読む、などといったことは行わない。

授業後半のAndroidアプリ開発においては、Android端末を持参することを推奨するが、義務とはしない。(何台かはこちらで用意する)
講義日程
テーマ内容
第1週復習ソフトウェアデザインIIIの内容を再確認する実習課題に取り組む
第2週様々なクラスObjectクラスと暗黙の継承、Comparableインタフェース、Cloneableインタフェース、equalsメソッド、toStringメソッド、hashCodeメソッド、cloneメソッド、compareToメソッド、等値と等価の違い、ラッパークラスの利用について学ぶ。
第3週例外処理例外処理の基本概念とともに、例外クラスとその種類、例外の捕捉・伝搬・発生の方法について学ぶ。
第4週文字列操作Stringクラスの特徴とメソッド(調査・検索・切り出し・変換・分割・整形)のほか、StringBuilderクラス、StringBufferクラスの利用法について学ぶ。
第5週コレクション基本的なコレクションとして、ArrayList、LinkedList、HashMapについてその基本的な概要をつかむ。また、ジェネリクスの意義についてその基本を理解する。
第6週ストリーム入門ストリームの基本概念を理解し、ファイル入出力や、ネットワーク及びデータベースとの接続方法について、その基礎を理解する。
第7週Androidアプリ開発入門Androidアプリ開発環境とプロジェクト構成(Javaソースファイル、レイアウトファイル、文字列リソースファイル等)について理解し、エミュレーターもしくは実機上でHello,Worldアプリを実行する。
第8週基本ウィジットラベル・テキストボックス・チェックボックス等の基本ウィジットの配置と利用について学ぶ。
第9週ウィジットの配置複数のウィジットをまとめ、配置する方法の指定について学ぶ。
第10週画像リソースの扱い画像を表示するアプリのほか、ViewFlipperを用いたスライドショーアプリを作成する。
第11週タッチ位置の利用タッチ位置を活用した落書きアプリのサンプルを通じて、その処理の基本を学ぶ。
第12週各種センサーの利用GPSや加速度センサー等の利用方法について、サンプルを通じて学ぶ。
第13週インテントデータの受け渡しや起動といった、アクティビティ間の連携の方法(インテント:明示的インテント・暗黙的インテント)について学ぶ。
第14週実践(1)これまで学んだことを踏まえ、簡単なスマホアプリの制作に挑戦する。
第15週実践(2)これまで学んだことを踏まえ、簡単なスマホアプリの制作に挑戦する。
授業全体のまとめとJavaの最新状況についてのレクチャーを行う。

他の授業科目との関連
「ソフトウェアデザインIII」が履修済みであることが履修条件である。また「アルゴリズム」については履修済みであることを強く推奨する。
ソフトウェア開発プロセスに関しては「システムマネジメント」の内容が参考になるだろう。また、オブジェクト指向に関する概念的な内容については「ICT経営論」で学ぶことが出来る。
その他、コンピュータシステムに関する科目群「コンピュータ科学基礎」「コンピュータシステム」「コンピュータネットワーク」「データベース」等は、プログラマとしての基本教養として履修しておくことが望ましい。
評価方法
・実習課題の内容:50%
・文法に関する理解度を図る小テストの成績:50%
教科書
スッキリわかるJava入門
インプレスジャパン
ISBN番号
978-4-8443-3086-8
参考図書
明解 Javaによるアルゴリズムとデータ構造 柴田 望洋
ソフトバンククリエイティブ
ISBN-13: 978-4-797345230

はじめてのAndroidアプリ開発
山田祥寛
秀和システム
ISBN-13:978-4-7980-3585-7

AndroidエンジニアのためのモダンJava
山田祥寛
技術評論社
ISBN-13:978-4-7741-5878-5
オフィスアワー(授業相談)
随時、宮川の研究室に直接訪問して良い。また、Web教材における質問相談フォーラムを活用することを推奨する。
学生へのメッセージ
良いプログラムをたくさん見て、参考にしていってください。また、本やWebに掲載されている知識を、実際に自分で作ってることでわかることもたくさんあります。経験を大切にしましょう。
準備学習の内容
毎回の授業で提示される演習問題については自分自身で挑戦しておくこと。講義「アルゴリズム」の内容をよく確認しておくこと。