2015年度 シラバス学部

プログラミング関連科目

2016/02/01  現在

科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
1年
単位数
/Credits
4.0
責任者
/Coordinator
大津山 公平
担当教員名
/Instructor
久田 泰広 , 大津山 公平 , 出村 裕英 , 平田 成 , 中里 直人 , 北里 宏平 , 三瓶 岳昭 , 小川 佳子 , 大藤 建太
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/29
授業の概要
/Course outline
C言語によるプログラミングは会津大のような情報系の学生に取って非常に重要なスキルであるにも関わらず、充分なスキルを持たないまま研究室に配属され、苦労する学生が多い。この理由として、C言語の範囲が広いため、充分な概念、スキルなどを得ないまま終了し、それが後に尾を引くことが一因として挙げられる。また、後続授業(アルゴリズムなど)の要求するプログラミングスキルがかなり高い事も一つの要因である。
以上の理由により、プログラミングCのイントロダクションという位置づけでプログラミング入門を開講し、C言語の内容を、プログラミング入門とプログラミングCの2講義で1年かけてじっくりと講義する。併せて基本的な計算機の構造を紹介し、コンピュータシステムの概念の把握の手助けも行う(関連授業として1年後期のコンピュータシステム概論がある)。

このシラバスは我々教員と履修する学生のとの間の契約である。我々は履修生の下記項目の習得に責任を持つが、履修生は真摯に学ぶ態度を持って履修する事が要求される。
授業の目的と到達目標
/Objectives and attainment
goals
本科目の目的と到達目標は以下の通りである。(コース受講後には以下の能力を得る、または説明出来る事が期待される)
・プログラミングの概念を理解する
 →問題が与えられた時に、それを解くためのプログラムを作成するまでの一連の動作を身につける。
 →フローチャートを理解・作成し、そこからプログラムを作成することが出来る。
・分岐・ループ・配列・関数などのC言語の基本概念を理解する
 →それらを利用したプログラムが記述出来るようになる
・良いプログラミングスタイルを身に付ける
 →他人が見て理解し易いプログラムを作成出来る
授業スケジュール
/Class schedule
週ごとの詳細は以下の通りである(ハンドアウト目次より。右側の数字は対応するハンドアウトのページ)
なお、若干のスケジュール変更がある場合もある。
第1回 コンピュータとは〜Helloの表示 p.1〜6
コンピュータ・ソフトウェア・ハードウェア・OS・アプリケーション・
高級言語・C言語・コンパイラ・Helloの表示・printf・改行
第2回 変数・入出力・演算 p.7〜12
変数・変数名の規則・予約語・変数宣言・初期化・代入
printf/scanf・演算・演算子・演算の順序と優先順位
第3回 様々な型・型変換 p.13〜17
その他の整数型・浮動小数点型・型変換・
printf/scanfの書式
第4回 選択(分岐) ? if、switch/case - p.18〜23
データ構造・アルゴリズム・コーディング・
連接・選択・繰返し・if・条件式・関係演算子・オペランド・
真・偽・if-else・switch-case・default・break
第5回 ループ(その1) - while - p.24〜29
インデント・フローチャート・ループ・while・見張り方式・
インクリメントデクリメント演算子・前置・後置・代入演算子・無限ループ
第6回 ループ(その2) ? for ? p.30〜35
カウンタ方式・for・break・continue・
より良いプログラム・インデント・効率の良い変数使用法
第7回 1次元配列 p.36〜41
配列・添字(インデックス)・要素・配列の初期化・
配列を使用する基準・配列サンプルプログラム
第8回 特別演習 p.42〜46
これまでの復習を様々な形態の演習を織り交ぜて行います。
第9回 2次元配列 + 中間試験 p.47〜50
二次元配列の宣言と構造・行・列・対角要素・マクロ・
二次元配列の初期化・行列の加算・行列の乗算
第10回 スペシャルレクチャ(講義資料なし)
皆さんの先輩や、企業に勤めている人にプログラミングの話をして頂きます。
第11回 2次元配列の復習と応用 p.51〜56
2次元配列の復習・リダイレクト(リダイレクション)・パイプ・
標準エラー出力・画像回転・画像白黒反転・ノイズ除去
第12回 関数(その1) p.57〜62
関数とは・引数・仮引数・関数の定義・関数の呼び出し・
プロトタイプ宣言・戻り値・void型・return・
自動(ローカル)変数・標準ライブラリ関数・stdio.h
第13回 関数(その2) p.63〜68
ニュートン法・数の桁数・ある桁の数・2進数とは・
2進数から10進数への変換・エラーチェック・強制終了・exit()
第14回 総復習・良いプログラミングのスタイル p.69〜74
プログラムの分かり易さ・プログラムの効率・デバッグ・
インデント・コメント・マクロ
第15回 これまでのまとめなどを行います(ハンドアウト資料なし)
教科書
/Textbook(s)
・C言語によるプログラム[基礎編] 第二版、内田監修、オーム社
・プログラミング入門/C ハンドアウト(売店にて販売する)
*ハンドアウトは必須である。必ず授業開始までに購入すること。またこのハンドアウトは後期プログラミングCにて引き続き使用するので大切に使用すること。
成績評価の方法・基準
/Grading method/criteria
以下の4項目による
・クイズ(講義中に実施する小テスト)10%
・演習課題 30%
・中間試験 10%
・期末試験 50%
クイズは出席確認も兼ねている。規定の出席数(2/3以上)に足りない者は放棄とみなす。中間・期末いずれかの試験を受けない場合も放棄となる。
なお、既にある程度のプログラミングスキルを所有する学生については授業の最初に試験を行ない、一定のスキルを持つと認定された者はスキルに応じて講義、演習の出席が免除される。詳しくは初回の授業若しくはメールにて説明があるので応募すること。

[履修上の留意点]
この講義は全てのプログラミング授業の先駆けとなるものであり、全員の履修を希望する。高校や独学で既にある程度のプログラミングスキルを所有する学生については授業の最初に試験を行ない、一定のスキルを持つと認定された者は講義、演習の出席が免除される。
履修にあたっては以下の事を厳重に守らなければならない。
・授業・演習には遅刻・欠席しない事。全実施回数の1/3以上欠席した者は定期試験を受ける事が出来ない(つまり放棄となる)。遅刻に関してもしかるべきペナルティを与えるものとする。
・演習課題・クイズ・定期試験などで不正行為(人の課題のコピー、試験のカンニング等)を行った場合は、学則に従って前期履修科目全ての単位を没収する。
演習課題の提出は電子的に行う。一部の問題の締め切りは演習時間終了時であり、それ以外は基本的に一週間以内に提出する。締め切りに遅刻した場合はシステム的に提出が出来なくなるので注意すること。(但し忌引き、本人の傷病等の場合はその限りではないので教務に届け出た上で申し出る事)
履修上の留意点
/Note for course registration
先修科目:なし
重要な関連科目:後期プログラミングC,後期コンピュータシステム概論
履修規程上の先修条件:なし
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
学外から
http://www.u-aizu.ac.jp/course/prog0/
学内WSでは以下を使用する事(より新しい情報や、成績情報等こちらのURLでしか見れない情報がある)
file:///home/course/prog0/public_html/2015/welcome.html


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
1年
単位数
/Credits
4.0
責任者
/Coordinator
大津山 公平
担当教員名
/Instructor
久田 泰広 , 大津山 公平 , 愼 重弼 , 奥山 祐市 , 平田 成 , 三瓶 岳昭 , 裴 岩
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/29
授業の概要
/Course outline
前期の「プログラミング入門」の講義を引き継いで、本講義は以下のような思想に基づいて構成されている。
・卒業研究や、後続授業(アルゴリズムなど)などの要求するプログラミングスキルはかなり高いレベルであり、それに対応するスキルを身につける。
・アルゴリズムに関するイントロダクションを行うことで、後続の授業への接続をスムーズにする。
・より大規模なプログラム作成のスキルを身につける。

このシラバスは我々教員と履修する学生のとの間の契約である。我々は履修生の下記項目の習得に責任を持つが、履修生は真摯に学ぶ態度を持って履修する事が要求される。
授業の目的と到達目標
/Objectives and attainment
goals
本講義では、以下のようなスキルの習得を目指している(コース受講後には以下の能力を持つ、または説明出来る事が期待される)
・前期プログラミング入門で習得したループ・配列・関数などをより理解し、有効に使用したプログラムを作成出来る
・この授業で習得する、文字・ファイル・ポインタ・構造体・再帰を理解し、それを利用したプログラムを作成出来る
・より大規模なプログラムを記述出来るようになる
・グループにて一つの大きなプログラムを作成出来る
・簡単なアルゴリズムの理解と実装を行う事が出来る
・良いプログラミングスタイルのプログラムを作成出来る
授業スケジュール
/Class schedule
週ごとの詳細は以下の通りである(ハンドアウト目次より。右側の数字は対応するハンドアウトのページ)
なお、若干のスケジュールやハンドアウトページの変更がある場合もある。
第1回 復習(1) p.76〜 81
授業情報・変数の型・ループ・配列・関数・文字型・
関数で電卓を作る
第2回 復習(2) p.82〜 87
変数の種類(自動・外部・静的)・2次元配列・リニア(線形)サーチ
第3回 ファイル操作 p.88〜 92
パイプとリダイレクト・ファイルオープン・ファイルの読み書き・
ファイルクローズ・文字配列
第4回 ポインタ(1) -アドレスー p.93〜 97
アドレス・変数の大きさ・ポインタ・間接演算子・文字列・ヌル文字
文字列の入出力・文字列ライブラリ関数
第5回 ポインタ(2) -ポインタ演算ー p.98〜103
配列のアドレス・ポインタ演算・ポインタと配列の類似点/相違点・
文字列定数配列とポインタ配列
第6回 ポインタ(3) -ポインタの応用ー p.104〜108
関数の引数・値渡し/アドレス渡し・配列を引数にする・
main関数への引数・動的メモリ割り当て
第7回 これまでの復習と応用 p.109〜115
2次元配列のハンドリング・画像圧縮/復号・コマンドオプション・
文字版リニアサーチ
第8回 構造体(1) -基礎― p.116〜121
構造体の概念/利点・宣言/定義・初期化/代入・関数と構造体・
構造体配列・良くあるミス
第9回 構造体(2) -構造体とポインタ― p.122〜126
構造体へのポインタ・構造体のポインタ演算・構造体のネスト・
関数と構造体ポインタ・良くあるミス
第10回 構造体(3) -応用(リスト操作)― p.127〜133
連結リスト・リストの特徴・ノードの連結・リストの構造・リストの初期化
リストの検索・ノードの挿入・ノードの削除
第11回 各クラスにて企画
第12回 関数 p.134〜139
関数とは?・引数と戻り値・外部変数の利用・再帰
第13回 コンパイル p.140〜145
条件演算子・コンパイルの流れ・プリプロセッサ・マクロ関数・
条件コンパイルによるデバッグ・分割コンパイル・externとstatic
第14回 これまでの復習〜そしてこれから p.146〜150
判断に慣れる・文字列に慣れる・配列名はアドレス・合わせ技・
バリエーションを思いつく・そして今後
第15回 総復習(ハンドアウト資料なし)
教科書
/Textbook(s)
C言語によるプログラム[応用編] 第二版、内田監修、オーム社
プログラミング入門/C ハンドアウト(売店にて販売せず)

*なお、プログラミング入門とプログラミングC共用となっている。前期プログラミング入門時に購入した者は改めて購入する必要はない。再履修などで後期にハンドアウトが必要な場合は教員に問い合わせる事。
成績評価の方法・基準
/Grading method/criteria
以下の4項目による
・クイズ(講義中に実施する小テスト)10%
・演習課題 30%
・中間試験 30%
・期末試験 30%

クイズは出席確認も兼ねている。規定の出席数(2/3以上)に足りない者は放棄とみなす。中間・期末いずれかの試験を受けない場合も放棄となる。

[履修上の留意点]

 履修にあたっては以下の事を厳重に守らなければならない。
・授業・演習には遅刻・欠席しない事。全実施回数の1/3以上欠席した者は定期試験を受ける事が出来ない(つまり放棄となる)。遅刻に関してもしかるべきペナルティを与えるものとする。
・演習課題・クイズ・定期試験などで不正行為(他者の課題のコピー、クイズや試験のカンニング等)を行った場合は、学則に従って当該期履修科目全ての単位を没収する。

 演習課題の提出は電子的に行う。一部の問題の締め切りは演習時間終了時であり、それ以外は基本的に一週間以内に提出する。締め切りに遅刻した場合はシステム的に提出出来ないので注意すること。(但し忌引き、本人の傷病等の場合はその限りではないので申し出る事)
履修上の留意点
/Note for course registration
先修科目:なし
重要な関連科目:前期プログラミング入門、後期コンピュータシステム概論、2年前期アルゴリズムとデータ構造
履修規程上の先修条件:なし
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
本コースのウェブページは以下の通り
http://www.u-aizu.ac.jp/course/prog1/
学内WSでは以下を使用する事(より新しい情報や、成績情報等こちらのURLでしか見れない情報がある)
file:///home/course/prog1/public_html/2015/welcome.html



科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
2年
単位数
/Credits
4.0
責任者
/Coordinator
ヴィタリー クリュエフ
担当教員名
/Instructor
程 同軍 , 愼 重弼 , モハメド ハマダ , ヴィタリー クリュエフ , 北里 宏平 , 裴 岩 , 矢口 勇一 , 朱 欣 , 渡部 有隆
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites
P1 or P2

更新日/Last updated on 2015/01/30
授業の概要
/Course outline
Java and technologies utilizing this language dominate current programming trends.
The goal of this course is to study object-oriented programming using Java.

Connection with Other Courses
The Java Programming 1 course is a basic course for students who would like to specialize in programming, software engineering, and designing software applications. This course is also highly recommended for students who selected hardware design as their major.
授業の目的と到達目標
/Objectives and attainment
goals
The best way to become familiar with any programming language and programming technology is to study examples. The most appropriate way to obtain Java skills is to solve real problems on an individual basis.

In our course, we discuss in detail a large number of examples to illustrate Java concepts and we offer a set of problems for students to solve.
授業スケジュール
/Class schedule
The course covers the basic topics:
a) objects and classes with special focus on data abstraction and
encapsulation, inheritance, and polymorphism,
b) exception handing,
c) I/O issues.
All topics are illustrated with examples which are easy to understand by students.

The tentative schedule is as follows:
1. Introduction to objects
The Java Technology Phenomenon
The " Welcome to Java!" Application
What is an Object?
What is a Class?
Online Documentation
2. Language basis
Variables
Operators
Expressions, Statements, and Blocks
Control Flow Statements
3. Classes and objects
Classes
Constructors
Methods
Creating Objects
Using Objects
4. Inheritance (1)
Inheritance: Key Definitions
The Purpose of Inheritance
An Example of Inheritance
What You Can Do in a Subclass
Private Members in a Superclass
Casting Objects
Overriding Methods
Hiding Fields
Constructor Chaining
5. Inheritance (2)
IS-A versus HAS-A relations
The Object class as a Superclass
6. Debugging
Key Definitions
General strategy
jdb (a Command Line Debugger)
7. Polymorphism (1)
Introduction
Examples
The Mechanics of Polymorphism
Static and Dynamic Binding
Casting Objects
The instanceof Operator
8. Polymorphism (2)
Abstract Classes  
Private and Static Methods
Order of Constructor Calls
Designing Classes
Summary of Polymorphism
9. Interfaces
What is an Interface?
Interfaces in Java
Interfaces and Multiple Inheritance
A Sample Interface, Relatable
Using an Interface as a Type
Rewriting Interfaces
Abstract Classes vs. Interfaces
Summary of Interfaces
10. Packages  
What is a Package?
Creating a Package
Referring to a Package Member
Managing Source and Class Files
Examples
Summary of Creating and Using Packages
11. Exceptions (1)
Error Handling in C
What s an Exception?
Kinds of Exceptions
Exception Handling Keywords
Catching and Handling Exceptions
12. Exceptions (2)

Exception Handling in Java
Catching Exceptions
The throws Clause
Exception Chaining
Advantages of Exceptions

13. Basic I/O
I/O Streams
File I/O
14. Review

See the course home page below for details and updates.
教科書
/Textbook(s)
The Java Tutorial: A Short Course on the Basics (6th Edition) (Java Series) by R. Gallardo, et al., 2014. Electronic version

Head First Java 第2版 ―頭とからだで覚えるJavaの基本 大型本 by Kathy Sierra, et al., 2006.
成績評価の方法・基準
/Grading method/criteria
The final grade will be calculated based on the following weights:
Assignments - 50%
Quizzes during lectures - 15%
Final examination - 35%
履修上の留意点
/Note for course registration
Knowledge of programming concepts is necessary. Students should complete Introduction to Programming and C Programming courses.

履修規程上の先修条件:P1 プログラミング入門 または P2 プログラミングC

Formal prerequisites:P1 Intro.Programming or P2 C Programing
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
Course Website

References
The Java Tutorial: A Short Course on the Basics (6th Edition) (Java Series) by R. Gallardo, et al., 2014. Electronic version

Head First Java 第2版 ―頭とからだで覚えるJavaの基本 大型本 by Kathy Sierra, et al., 2006.


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
2年
単位数
/Credits
3.0
責任者
/Coordinator
成瀬 継太郎
担当教員名
/Instructor
黄 捷 , 浅井 信吉 , 成瀬 継太郎 , コンスタンティン マルコフ , ピエール-アラン ファヨール , イゴール ルバシェフスキー , 中島 有
推奨トラック
/Recommended track
CM,RC,BM,SE
履修規程上の先修条件
/Prerequisites
P1 or P2

更新日/Last updated on 2015/02/03
授業の概要
/Course outline
本講義は既にC言語を習得している学生を対象に、C++言語の基礎を教えることを目的とする。C++は1980年代中期にBell 研究所のBjarne Stroustrup により開発された、非常に強力なC言語の後継の言語である。具体的には、C++はC言語にクラスの概念とユーザ定義型の機構を付け加え、クラスと継承、動的結合という機能により、オブジェクト指向プログラミングを実現している。
授業の目的と到達目標
/Objectives and attainment
goals
本講義は、学生がC++プログラミングの本質を学ぶことを目的とする。具体的には、クラスとオブジェクトの生成の仕方、データのアクセス制限、クラスと階層の設計の方法、クラスの継承と動的結合、テンプレート関数、ジェネリック関数、反復子(イテレータ)、コンテナとSTLの使用である。履修学生はオブジェクト指向の設計方針を反映したC++のプログラムを開発できるようになる。
授業スケジュール
/Class schedule
第1週 序論と文字列の取り扱い
第2週 ループとカウンタ
第3週 データの集まりと反復子
第4週 プログラムとデータの組織化
第5週 シーケンシャルコンテナ
第6週 STLの利用
第7週 連想コンテナ
第8週 テンプレート関数とジェネリック関数
第9週 クラスの定義
第10週 メモリの管理
第11週 抽象データ型
第12週 値のように振る舞うクラス
第13週 継承と動的結合
第14週 メモリの自動管理
第15週 まとめ
(詳細は、講義を担当する教員により変わる。)
教科書
/Textbook(s)
各教員が指定する。
成績評価の方法・基準
/Grading method/criteria
演習:60%
中間試験:20%
期末試験:20%
(詳細は、講義を担当する教員により変わる。)
履修上の留意点
/Note for course registration
重要な関連科目:プログラミングC、プログラミングJAVA
履修規程上の先修条件:P1 プログラミング入門 または P2 プログラミングC
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
授業ホームページは授業中に指示する。
Steve Oualine, Practical C++ Programming, O'Reilly & Associates, 1st Edition, 1995
Bjarne Stroustrup, The C++ Programming Language, Addison Wesley, 3rd Edition, 1997
Ira Pohl, C++ for C Programmers, Benjamin/Cummings, 2nd Edition, 1994


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  後期 /Second Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
程 子学
担当教員名
/Instructor
黒川 弘国 , 鈴木 大郎 , 中島 有
推奨トラック
/Recommended track
履修規程上の先修条件
/Prerequisites

更新日/Last updated on 2015/01/27
授業の概要
/Course outline
本科目はコンセプトやモデルなどの面よりコンピュータ言語の本質について整理し、コンピュータ言語のパラダイム、モデル、種類・分類、コンピュータ言語の技術要素などを説明する。そして、広く使用されている言語または特徴のある言語について、生まれる歴史や開発者の意図に触れる機会を提供する。また、複数種類のコンピュータ言語の特徴を比較し、新しい言語を理解したり、設計したりするときに視点を提示する。 なお、幅広く様々なコンピュータ言語の特徴と本質を把握することに加えて、論理型言語Prologを講義のみならず、演習をも通じて深く学習する。
授業の目的と到達目標
/Objectives and attainment
goals
本科目の目的は、学生がコンピュータ言語のコンセプト、モデル、技術要点、と様々のコンピュータ言語の特徴を理解することにより、すでに先行科目で習った言語を整理したり、システム開発するときに必要な言語の選択を選択したり、新しい言語を学習したりするときの視点を持つことにある。
幅広くコンピュータ言語の知識の学習に加えて、Prologという論理型言語について、深く勉強し、Prologのプログラミングをも習得する。論理型言語の考え方に対する理解を深め、実際にPrologを用いて、問題解決の手段として体得する。
授業スケジュール
/Class schedule
(1) コンピュータ言語概説(1) および
Prolog:入門紹介、事実
(2) コンピュータ言語概説(2) 
Prolog: 推論規則
(3) コンピュータ言語の計算モデル(1)
Prolog: 定数、変数
(4) コンピュータ言語の計算モデル(2)
Prolog: パターンマッチ
(5) コンピュータ言語例(1) 
Prolog: 再帰の利用
(6) 異なる計算モデルの比較(1) 
Prolog バックトラック
(7) 異なる計算モデルの比較(2)、
Prolog カット

(8) 中間試験 ペーパー試験とプロジェクト

(9) コンピュータ言語の技術要点(1)
Prolog の入出力
(10) コンピュータ言語の技術要点(2) 
Prolog のデータベースの利用法
(11) コンピュータ言語例(2) 
Prologを活用する。最短経路の探索
(12) コンピュータ言語の構文論
(13) コンピュータ言語の意味論(1)
(14) コンピュータ言語の意味論(2)
(15) 総括復習 異なるコンピュータ言語の比較、新しい言語の必要性
教科書
/Textbook(s)
教科書
1) PrologとAI  Prolog への入門   
I. Bratko (著), 安部 憲広 (翻訳), 近代科学社 
2) プログラミング言語論
大山口 通夫、五味 弘 共著 コロナ社

成績評価の方法・基準
/Grading method/criteria
小テスト&出席状況 20%
演習の参加と課題  20%
中間試験とプロジェクト 30%
期末試験 30%
を通じて総合的に評価する。
履修上の留意点
/Note for course registration
P1 プログラミング入門
P2 プログラミングC
P3 プログラミングJAVA I
履修規程上の先修条件:
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
参考書
コーディングを支える技術
西尾 泰和 技術評論社


科目一覧へ戻る
開講学期
/Semester
2015年度/Academic Year  前期 /First Semester
対象学年
/Course for;
3年
単位数
/Credits
3.0
責任者
/Coordinator
白 寅天
担当教員名
/Instructor
黒川 弘国 , 白 寅天 , ピエール-アラン ファヨール
推奨トラック
/Recommended track
SE
履修規程上の先修条件
/Prerequisites
P3

更新日/Last updated on 2015/02/03
授業の概要
/Course outline
The Java Programming II is a course for the 3rd year students who had studied basics such as objects and classes, object oriented concept, exception handling, and I/O issues in Java. This course teaches some advance topics: annotation, reflection, threads, GUI, and network programming in Java.
In the first half of this course, we will study about topics related to Java language itself such as annotation, reflection, threads, GC, and GUI. In the second half, we will experience development of distributed network applications in Java on the Web and smart mobile device.
授業の目的と到達目標
/Objectives and attainment
goals
The Java programming language benefits Internet and WWW users from access to secure, platform independent applications that can come from anywhere on the Internet. It is useful to build applications for not only distributed network but also for general-purpose. The ability to execute downloaded code on remote hosts in a secure manner is a critical requirement for many organizations. This course enables students to improve Java programming technique and knowledge to develope applications using GUI, generics, thread programming, networking, smart phone programming in Java.
授業スケジュール
/Class schedule
1. Introduction and Java Basic Review
2. Java GUI (Events and AWT)
3. Java GUI (Swing)
4. Generics and Inner Class
5. Collections
6. Midterm Examination
7. Annotation, Documentation comments
8. Thread & Garbage Collection I
9. Thread & Garbage Collection II
10. Review on the topics studied (Generics, Annotation, and Threads)
11. Java Network I
12. Java Network II
13. Android Smart Phone Programming I
14. Android Smart Phone Programming II
15. Android Smart Phone Programming III
16. Term Project
教科書
/Textbook(s)
The Java Tutorial, 4th Edition, A Short Course on the Basics by  S. Zakhour, S. Hommel, J. Royal, I. Rabinovitch, T. Risser, and M. Hoeber, Sun Microsystems, 2006 (English version), 2007 (Japanese Version).
成績評価の方法・基準
/Grading method/criteria
1. Exercise Lab. and Report
2. Examination (Midterm and Final)
3. Term Project
4. Attendance
履修上の留意点
/Note for course registration
* Prerequisites:
- P1 Intro.Programming
- P2 C Programing
- P3 JAVA Programming I

* Other related courses:
- P4 C++ Programing
- P5 Computer Languages
- F1 Algo.and Data Struct.
- SE1 Web Engineering
- SE2 Web Programming
- SE3 Software Eng. I
- SE4 Software Eng. II
- SE5 Software Studio
- SE6 Distributed Computing
- N1 Communication Networking I
- N3 Computter Network Organizaion &Design
- S9 Computer System Engineering
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
1. Arnold, James Gosling, and David Holmes, The Java Programming Language, 4th Edition, SUN, 2006. (Japanese version by Pearson Education)
2. Ivor Horton, Java 2 JDK 5 Edition, Wiley Publishing, 2005
3. C.S. Horstmann, G. Cornell, Core Java, Sun Microsystem Press
4. J. O’Neil, Teach Yourself JAVA, McGraw-Hill
5. Kathy Sierra and Bert Bates, Head First Java (Head First) 2nd edition, 2005; Japanese edition, 2006.


このページの内容に関するお問い合わせは学生課 教務係までお願いいたします。

お問い合わせ先メールアドレス:sad-aas@u-aizu.ac.jp