2024/12/22 現在 |
コンピテンシーコード表を開く 科目一覧へ戻る |
開講学期 /Semester |
2024年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
1年 |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
久田 泰広 |
担当教員名 /Instructor |
久田 泰広, 出村 裕英, 平田 成, 中里 直人, 北里 宏平, 三瓶 岳昭, 大藤 建太, ピシキン エフゲニー, 山田 竜平, 奥平 恭子 |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/29 |
---|---|
授業の概要 /Course outline |
(ICTGクラスはQ4に開講し、担当はピシキン先生です。ICTGクラスのシラバス情報は英語版を参照してください。) C言語によるプログラミングは会津大のような情報系の学生に取って非常に重要なスキルであるにも関わらず、充分なスキルを持たないまま研究室に配属され、苦労する学生が多い。この理由として、 1 C言語の範囲が広いため、充分な概念、スキルなどを得ないまま終了し、それが後に尾を引くこと。 2 後続授業(アルゴリズムなど)の要求するプログラミングスキルがかなり高い。 以上の理由により、プログラミングCのイントロダクションという位置づけでプログラミング入門を開講し、C言語の内容を、プログラミング入門とプログラミングCの2講義にてじっくりと講義する。 |
授業の目的と到達目標 /Objectives and attainment goals |
[対応する学習・教育到達目標] ・ 技術者としての専門的・倫理的責任を自覚し、情報科学技術を駆使して社会における要求を分析し、技術的課題を設定・解決・評価することができる ・数学・自然科学・情報技術分野の科目の専門的知識と、それらの習得を通して身につけた論理的な思考力や客観的判断力などの科学的思考力を、問題解決に応用できる 本科目の目的と到達目標は以下の通りである。(コース受講後には以下の能力を得る、または説明出来る事が期待される) ・プログラミングの概念を理解する →問題が与えられた時に、それを解くためのプログラムを作成するまでの一連の動作を身につける。 →フローチャートを理解・作成し、そこからプログラムを作成することが出来る。 ・分岐・ループ・配列・関数などのC言語の基本概念を理解する →それらを利用したプログラムが記述出来るようになる ・良いプログラミングスタイルを身に付ける →他人が見て理解し易いプログラムを作成出来る |
授業スケジュール /Class schedule |
週ごとの詳細は以下の通りである。 第1回 コンピュータとは〜Helloの表示 コンピュータ・ソフトウェア・ハードウェア・OS・アプリケーション・ 高級言語・C言語・コンパイラ・Helloの表示・printf・改行 第2回 変数・入出力・演算 変数・変数名の規則・予約語・変数宣言・初期化・代入 printf/scanf・演算・演算子・演算の順序と優先順位 第3回 様々な型・型変換 その他の整数型・浮動小数点型・型変換・ printf/scanfの書式 第4回 選択(分岐) if、switch/case データ構造・アルゴリズム・コーディング・ 連接・選択・繰返し・if・条件式・関係演算子・オペランド・ 真・偽・if-else・switch-case・default・break 第5回 ループ(その1) - while - インデント・フローチャート・ループ・while・見張り方式・ インクリメントデクリメント演算子・前置・後置・代入演算子・無限ループ 第6回 ループ(その2) for カウンタ方式・for・break・continue・ より良いプログラム・インデント・効率の良い変数使用法 第7回 1次元配列 配列・添字(インデックス)・要素・配列の初期化・ 配列を使用する基準・配列サンプルプログラム 第8回 フローチャート 主にフローチャートを中心に、これまでの復習を様々な形態の演習を織り交ぜて行う。 第9回 2次元配列 二次元配列の宣言と構造・行・列・対角要素・マクロ・ 二次元配列の初期化・行列の加算・行列の乗算 第10回 2次元配列の復習と応用 2次元配列の復習・リダイレクト(リダイレクション)・パイプ・ 標準エラー出力・画像回転・画像白黒反転・ノイズ除去 第11回 関数(その1) 関数とは・引数・仮引数・関数の定義・関数の呼び出し・ プロトタイプ宣言・戻り値・void型・return・ 自動(ローカル)変数・標準ライブラリ関数・stdio.h 第12回 関数(その2) ニュートン法・数の桁数・ある桁の数・2進数とは・ 2進数から10進数への変換・エラーチェック・強制終了・exit() 第13回 関数(その3) 自動変数と外部変数・スタック・キュー・数値計算と誤差 数値計算の例:自由落下 第14回 総復習・良いプログラミングのスタイル プログラムの分かり易さ・プログラムの効率・デバッグ・ インデント・コメント・マクロ スケジュールは若干変更する可能性がある |
教科書 /Textbook(s) |
・プログラミング入門/C ハンドアウト(売店にて販売予定) *ハンドアウトは必須である。必ず授業開始までに購入すること。またこのハンドアウトはプログラミングC(第三学期)にて引き続き使用するので大切に使用すること。 |
成績評価の方法・基準 /Grading method/criteria |
以下の4項目による ・クイズ(小テスト)20% ・演習課題 30% ・中間試験 10% ・期末試験 40% |
履修上の留意点 /Note for course registration |
授業、演習共に規定の出席数(2/3以上)が必要である。また、中間試験および期末試験を受けなければならない。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
参考書: ・C言語によるプログラム[基礎編] 第三版、内田監修、オーム社 授業webパージ: file:///home/course/prog0/public_html/2024/welcome.html (学内WS用) http://www.u-aizu.ac.jp/course/prog0/ (学外用、サブセット版) *一部アクセスできないページがある |
コンピテンシーコード表を開く 科目一覧へ戻る |
開講学期 /Semester |
2024年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
1年 |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
三瓶 岳昭 |
担当教員名 /Instructor |
久田 泰広, 愼 重弼, 三瓶 岳昭, ピシキン エフゲニー, 平田 成, イドゥニン パシャ ビン イブラヒム, 奥平 恭子, 仙波 翔吾, テーヌワラ ハンナディゲー アキラ サンジャヤ シリウィーラ |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/15 |
---|---|
授業の概要 /Course outline |
(ICTGクラスはQ1に開講し、担当はピシキン先生です。) (C1-C6クラス) Q2「プログラミング入門」に続く科目として、本科目は以下のような思想に基づいて構成されている。 ・卒業研究や、後続授業(アルゴリズムなど)の要求するプログラミングスキルはかなり高いレベルであり、それに対応できるスキルを身につける。 ・アルゴリズムに関するイントロダクションを行うことで、後続の授業への接続をスムーズにする。 ・より規模の大きいプログラムを作成するスキルを身につける。 (ICTGクラス) 英語版シラバスを参照してください。 |
授業の目的と到達目標 /Objectives and attainment goals |
[コンピテンシーコード] C-SD-003, C-SD-006 本科目では、以下のようなスキルの習得を目指す。(コース受講後に以下の能力を持つ、または以下を説明できる事が期待される) ・「プログラミング入門」で習得した、ループ・配列・関数などをより深く理解し、有効に利用したプログラムを作成できる ・この授業で習得する、文字・文字列・ファイル操作・ポインタ・構造体・再帰などを理解し、それを利用したプログラムを作成できる ・より規模の大きなプログラムを作成できる。また、グループで協力しながら一つの大きなプログラムを作成できる ・簡単なアルゴリズムの理解と実装を行うことができる ・良いプログラミングスタイルを身につける |
授業スケジュール /Class schedule |
(C1-C6クラス) スケジュールや講義ハンドアウトの変更があった場合は、授業開始時に説明する。 第1回 復習(1) 変数の型・ループ・配列・関数・文字型・関数で電卓を作る 第2回 復習(2) 変数の種類(自動・外部・静的)・2次元配列・リニアサーチ 第3回 ファイル操作 ファイル操作の方法・ファイルの読み込みと書き込み・文字配列 第4回 ポインタ(1) -アドレス- アドレス・変数の大きさ・ポインタ・間接演算子・文字列の操作と入出力・ヌル文字 第5回 ポインタ(2) -ポインタ演算- ポインタ演算・ポインタと配列の類似点/相違点・文字列定数配列と2次元文字配列 第6回 ポインタ(3) -ポインタの応用- 関数の引数・値渡し/アドレス渡し・配列を引数にする・コマンドライン引数・動的メモリ割り当て 第7回 構造体(1) -基礎- 構造体の概念・宣言と定義・構造体メンバ・関数と構造体・構造体配列 第8回 構造体(2) -構造体とポインタ- 構造体へのポインタ・構造体のポインタ演算・構造体の入れ子・関数と構造体ポインタ 第9回 構造体(3) -応用(リスト操作)- 連結リスト・リストの構造・リストの操作(初期化、検索、挿入、削除) 第10回 復習・リストの続き 第11回 関数 引数と戻り値・外部変数の利用・再帰 第12回 コンパイル コンパイルの流れ・プリプロセッサ・マクロ関数・条件演算子・条件コンパイル・分割コンパイル 第13回 応用 2次元配列のハンドリング・2次元配列の動的確保・画像処理 第14回 これまでの復習, そしてこれから (ICTGクラス) 英語版シラバスを参照してください。 |
教科書 /Textbook(s) |
(C1-C6クラス) プログラミング入門/C ハンドアウト*(売店にて販売予定) *ハンドアウトはプログラミング入門とプログラミングCで合本となっている。Q2プログラミング入門で購入した者は改めて購入する必要はない。再履修などでQ3にハンドアウトが必要な場合は教員に問い合わせること。 (ICTGクラス) 必要な資料はLMSにて配布する。 |
成績評価の方法・基準 /Grading method/criteria |
(C1-C6クラス) 原則、以下の3項目による ・クイズ(各講義の時間に実施する小テスト)20% ・演習課題 30% ・試験 50% (ICTGクラス) 100点満点中、 ・学期中のクイズ 20点 ・演習、プロジェクト、実習 50点 ・期末に行うクイズ 30点 詳細は英語版シラバスを参照のこと。 |
履修上の留意点 /Note for course registration |
(C1-C6クラス) 単位取得には、講義・演習それぞれについて2/3以上の出席が必要である。 (ICTGクラス) 英語版シラバスを参照してください。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
(C1-C6クラス) 参考書: C言語によるプログラミング [基礎編] 第3版、内田監修、オーム社 C言語によるプログラミング [応用編] 第2版、内田監修、オーム社 本コースのウェブページは以下の通り file:///home/course/prog1/public_html/2024/welcome.html (学内用) https://u-aizu.ac.jp/course/prog1/ (学外用,一部制限あり) (ICTGクラス) 実務経験有り:Dr. Evgeny Pyshkinはソフトウェアデザイン、開発、QA、テクニカルライティングの実務経験がある。詳細は英語版シラバスを参照してください。 |
コンピテンシーコード表を開く 科目一覧へ戻る |
開講学期 /Semester |
2024年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
2年 |
単位数 /Credits |
4.0 |
責任者 /Coordinator |
渡部 有隆 |
担当教員名 /Instructor |
渡部 有隆, 裴 岩, 程 同軍, 新田 高庸, 愼 重弼, 北里 宏平, ラゲ ウダイ キラン, ハマダ モハメド, ダン ナム カイン |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
PL02 プログラミングC |
更新日/Last updated on | 2024/01/25 |
---|---|
授業の概要 /Course outline |
オブジェクト指向は、ソフトウェアの設計における重要な考え方であり、様々なプログラミング言語でその機能を用いることができます。オブジェクト指向プログラミングは、より高い再利用性、信頼性、保守性、堅牢性を持つソフトウェアの開発を可能とするプログラミングパラダイムです。アプリケーション開発のための最先端のフレームワークを活用するためにも、オブジェクト指向の概念を理解している必要があります。 この授業では、プログラミング言語Javaを用いてオブジェクト指向プログラミングを修得します。講義ではオブジェクト指向プログラミングの理論を学習し、演習ではJavaプログラミングによる問題解決を通して、オブジェクト指向プログラミングによる様々なデザインパターンを実装します。 |
授業の目的と到達目標 /Objectives and attainment goals |
[対応する学習・教育到達目標] (A) 技術者としての専門的・倫理的責任を自覚し、情報科学技術を駆使して社会における要求を分析し、技術的課題を設定・解決・評価することができる (C) 数学・自然科学・情報技術分野の科目の専門的知識と、それらの習得を通して身につけた論理的な思考力や客観的判断力などの科学的思考力を、問題解決に応用できる [コンピテンシーコード] C-PL-001, C-PL-005, C-PL-007, C-SD-002, C-SD-003, C-SD-006 学生は、オブジェクト指向プログラミングの3大概念である「カプセル化」「継承」「多態性(ポリモーフィズム)」を理解し、これらの概念を用いたプログラムを解読・開発できるようになります。これにより、オブジェクト指向プログラミング言語によるライブラリや最先端のフレームワークを活用できるようになります。さらに、様々な演習問題を解くことで異なるデザインパターンの特長を理解し、それらをアプリケーションの設計や実装に応用できるようになります。 |
授業スケジュール /Class schedule |
オブジェクト指向入門 基礎文法 クラスとオブジェクト 継承 インターフェース 多態性 パッケージ 例外処理 数と文字列 基本的な入出力処理 総称型 |
教科書 /Textbook(s) |
The Java Tutorial: https://docs.oracle.com/javase/tutorial/ |
成績評価の方法・基準 /Grading method/criteria |
演習: 100(最大) 試験: 100(最大) 最終成績:sqrt(演習×試験) ※状況に応じて調整します |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
実務経験有り:ソフトウェアシステム開発 実務経験あり(コースコーディネータ渡部):株式会社Giveryとの共同研究において、人材育成、人材評価、研修・教育に活用することができるプログラミングスキルチェックツール・教材を開発。主要コンテンツの1つとして、アルゴリズムとデータ構造に関する問題及びテストデータを数多く提供。また、開発環境や教育支援システム等、実用されている大規模なソフトウェアの開発経験あり。これらの経験をもとに、幅広いアルゴリズムとデータ構造の理論と実践を教授する。 実務経験あり(裴): 東軟グループ(中国、CMMI5) 及びAlpine Electronics Europe D&R GmbH (ドイツ)に5年間勤務した。100万LOCレベルのソフトウェア開発のプロジェクトとチームを参加と監督し、核心的なアルゴリズムを設計し、そして産業特許を申請と獲得した。この経験に基づいて、アルゴリズム及び複雑度、プログラミング、ソフトウェア工学などについて教授する。 授業形態:講義,演習 |
コンピテンシーコード表を開く 科目一覧へ戻る |
開講学期 /Semester |
2024年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
成瀬 継太郎 |
担当教員名 /Instructor |
成瀬 継太郎, ファヨール ピエール アラン, イドゥニン パシャ ビン イブラヒム, サクセナ ディーピカー |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/25 |
---|---|
授業の概要 /Course outline |
本講義は既にC言語を習得している学生を対象に、C++言語の基礎を教えることを目的とする。C++は1980年代中期にBell 研究所のBjarne Stroustrup により開発された、非常に強力なC言語の後継の言語である。具体的には、C++はC言語にクラスの概念とユーザ定義型の機構を付け加え、クラスと継承、動的結合という機能により、オブジェクト指向プログラミングを実現している。 |
授業の目的と到達目標 /Objectives and attainment goals |
[対応する学習・教育到達目標] (A) 技術者としての専門的・倫理的責任を自覚し、情報科学技術を駆使して社会における要求を分析し、技術的課題を設定・解決・評価することができる (C) 数学・自然科学・情報技術分野の科目の専門的知識と、それらの習得を通して身につけた論理的な思考力や客観的判断力などの科学的思考力を、問題解決に応用できる [コンピテンシーコード] C-SD-003, C-SD-006 本講義は、学生がC++プログラミングの本質を学ぶことを目的とする。具体的には、クラスとオブジェクトの生成の仕方、データのアクセス制限、クラスと階層の設計の方法、クラスの継承と動的結合、テンプレート関数、ジェネリック関数、反復子(イテレータ)、コンテナとSTLの使用である。履修学生はオブジェクト指向の設計方針を反映したC++のプログラムを開発できるようになる。 |
授業スケジュール /Class schedule |
担当教員により講義スケジュールは異なるが,全体を通しての講義内容は同じである. 成瀬クラス 第1週 序論と文字列の取り扱い 第2週 ループとカウンタ 第3週 データの集まりと反復子 第4週 プログラムとデータの組織化 第5週 シーケンシャルコンテナ 第6週 STLの利用 第7週 連想コンテナ 第8週 テンプレート関数とジェネリック関数 第9週 クラスの定義 第10週 メモリの管理 第11週 抽象データ型 第12週 値のように振る舞うクラス 第13週 継承と動的結合 第14週 メモリの自動管理とまとめ ファヨール先生: 1) 入門 2) クラス; ストリーム 3) ポインタ; 参照 4) 定義; 宣言; const 宣言; static 宣言 5) オーバーロード; コンストラクタ (デフォルトコンストラクタ, コピーコンストラクタ, コピー代入演算子, ムーブ コンストラクタ, ムーブ代入演算子); デストラクタ 6) 継承 (オーバーライド, virtual 宣言) 7) 例外と関連 (RAII, スマートポインタ) 8) 演算子オーバーロード 9) テンプレート (クラステンプレート, 関数テンプレート) 10) コンテナライブラリ 11) イテレータライブラリ 12) 関数オブジェクト; ラムダ式 13) アルゴリズムライブラリ 14) スレッドサポートライブラリ (スレッド, 相互排他, 条件変数, フューチャー) (詳細は講義を担当する教員により変わる) |
教科書 /Textbook(s) |
各教員が指定する。 |
成績評価の方法・基準 /Grading method/criteria |
小テスト(クイズ):10% 演習:30% 期末試験:60% (詳細は、講義を担当する教員により変わる。) |
履修上の留意点 /Note for course registration |
なし。 |
参考(授業ホームページ、図書など) /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 |
2024年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
4年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
鈴木 大郎 |
担当教員名 /Instructor |
鈴木 大郎, 中島 有 |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
事前に学んでおいてほしい科目一覧(下記科目内容の一部ないし全部を既知として授業を進める) P2 プログラミングC P3 プログラミングJAVA I FU01 アルゴリズムとデータ構造I |
更新日/Last updated on | 2024/01/25 |
---|---|
授業の概要 /Course outline |
本科目はコンピュータ言語の代表であるプログラミング言語に焦点を当てる。プログラミング言語のパラダイム、モデル、技術要素などを説明することで、コンセプトやモデルなどの面よりプログラミング言語の本質について整理する。プログラミング・パラダイムと呼ばれるプログラミングに対するコンセプトについて述べ、各パラダイムの特徴について説明する。また、パラダイムを基準としてプログラミング言語を分類・整理し、同じパラダイムに基づくプログラミング言語に共通の機能について説明する。また、プログラミング言語の意味論についても説明する。 本科目で取り上げるプログラミングパラダイムは、手続き型、関数型、論理型、オブジェクト指向型の4種類である。特に、他のプログラミング科目で学ぶC,C++,Javaの基礎となる手続き型とオブジェクト指向型パラダイムについて重点的に取り上げる。 |
授業の目的と到達目標 /Objectives and attainment goals |
[コンピテンシーコード] C-PL-001, C-PL-003, C-PL-005 他のプログラミング関連科目は、対象とするプログラミング言語の文法と言語が提供する機能の使い方の習得を目的としている。それに対して、本科目では特定の言語に偏ることなく、同じプログラミング・パラダイムに基づく複数のプログラミング言語について、それらに共通する機能の成り立ちと原理について横断的に学ぶことを目的とする。 本科目では、履修した学生が以下の知識を習得することを目指す。 1. 各プログラミングパダイムの特徴 2. 手続き型言語に共通する特徴の詳細 3. オブジェクト指向型言語に共通する特徴の詳細 4. プログラミング言語の構文の記述方法 5. プログラミング言語の意味論を通したプログラミング言語の抽象的な実行メカニズム |
授業スケジュール /Class schedule |
1. はじめに: プログラミングパラダイムと計算モデル、 手続き型プログラミング概要: 機械モデル(RAM) 2. 関数型プログラミング(1) 3. 関数型プログラミング(2) 4. 論理型プログラミング(1) 5. 論理型プログラミング(2) オブジェクト指向プログラミング概要 6. プログラミング言語の構文論 7. 手続き型プログラミング(1): 制御構造とデータ構造 8. 手続き型プログラミング(2): 手続き 9. 中間試験 オブジェクト指向プログラミング(1): オブジェクト、抽象データ型 10.オブジェクト指向プログラミング(2): オブジェクト指向の特徴 11.オブジェクト指向プログラミング(3): オブジェクト指向の特徴 12.プログラミング言語の意味論(1): RAMの操作的意味 13.プログラミング言語の意味論(2): 手続き型言語の操作的意味 14.プログラミング言語の意味論(3): 表示的意味論と公理的意味論 各回の授業とその内容との対応は、授業の進み具合により変更になることがある。 |
教科書 /Textbook(s) |
プログラミング言語論 大山口 通夫、五味 弘 共著 コロナ社 基本的に教科書に沿って授業を進めるが、教科書を使わずにハンドアウトだけを用いる単元もある。 |
成績評価の方法・基準 /Grading method/criteria |
演習 30% 中間試験 30% 期末試験 40% |
履修上の留意点 /Note for course registration |
同時に開講している言語処理系論と一緒に学習すると、プログラミング言語に関する理解がより深まるので、この授業を履修する学生は言語処理系論を同時に履修することを勧める。 教科書に沿って進める単元では、講義の前に教科書の指定範囲を読んでおくことを指示し、それを前提に授業を進めることがある。そのような単元では、あらかじめ教科書を読んである程度理解してから授業に臨まないと授業についてこれなくなるので、指示があったときは必ず教科書の予習をしてくること。 日本語で授業を行う。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
David A. Watt. Programming Language Design Concepts. Wiley. 2004. Hanne Riis Nielson and Flemming Nielson. Semantics with Applications: An Appetizer. Springer. 2007. Chris Hankin. Lambda calculi: a guide for computer scientists. Oxford University Press. 1994. 横内寛文. プログラム意味論. 共立出版. 1994. 五十嵐淳. プログラミング言語の基礎概念. サイエンス社. 2011. 高橋正子. 計算論 計算可能性とラムダ計算. 近代科学社. 1991. 実務経験有り(鈴木): 三菱電機東部コンピュータシステム(株)で、1987年から1990年まで、論理型とオブジェクト指向に基づくマルチパラダイム言語を用いた、Prolog推論マシン上のC、LISP言語処理系の開発に従事した。この経験をもとに、様々なプログラミングパラダイムに属する言語の理論と実装について教授する。 |
コンピテンシーコード表を開く 科目一覧へ戻る |
開講学期 /Semester |
2024年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
3年 |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
白 寅天 |
担当教員名 /Instructor |
白 寅天, 松本 和也 |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/24 |
---|---|
授業の概要 /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, network programming, and Android programming including new features 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 |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. (C)Graduates are able to apply their professional knowledge of mathematics, natural science, and information technology, as well as the scientific thinking skills such as logical thinking and objective judgment developed through the acquisition of said knowledge, towards problem solving. 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 develop applications using GUI, generics, thread programming, networking, smart phone programming including new feature 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. Review I on GUI, Generics and Collections 7. Annotation, Documentation comments 8. Thread I 9. Thread II 10. Review II on the topics studied (Generics, Annotation, and Threads) 11. Java Network I 12. Java Network II 13. Lambda Expression and Stream API in Java 14. Android Smart Phone Programming |
教科書 /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 : 50% 2. Examination : 50% |
履修上の留意点 /Note for course registration |
This course covers some advanced topics of Java. Therefore, it requires that students need to know basic concept of object oriented programming including good skill in C language. The prerequisite courses are: - Intro.Programming - C Programming - JAVA Programming I |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
* Reference 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. |