概要:
数値計算の代表的なアルゴリズムについて学習する.
今までに学んだプログラミング技術をもとにして,多くの課題をこなすことで,より実践的な問題解決能力,プログラミング能力を身に付ける.
Java言語を通してオブジェクト指向によるプログラミング手法の基本を学ぶ.
授業の進め方・方法:
原則として,毎回の授業で課題の説明を行い,残りの時間はプログラムを作成する演習時間とする.ただし,数値計算アルゴリズムやアルゴリズムの習得に関わる周辺知識に関する理解度の確認や実行結果の正しさを確認するため,一部の課題ではプログラムの実装に加えてレポートの提出を求める.
当該科目は学修単位科目であり,特に毎回のプログラム課題の条件を満たすべく十分な事後学習を実施することが,課題提出のためには必須である.
注意点:
原則として授業の後半でJavaによるプログラミング演習を行う.課題が授業時間内に終わらないことも予想されるので,自宅にプログラム開発環境を構築することが望ましい.
担当教員が必修課題と定めた課題が1つ以上未提出であった場合,評価はD(不可)とする.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス Java入門(1) オブジェクト指向プログラミングとは |
オブジェクト指向プログラミングの基本を理解し、簡単なJavaプログラムを作成できる
|
2週 |
Java入門(2) メソッドのオーバーロード ファイル入出力 |
メソッドのオーバーロードの概念を理解し、ファイル入出力機能を活用したプログラムを作成できる
|
3週 |
行列演算(1) |
行列の基本演算を実現するプログラムを作成できる
|
4週 |
行列演算(2) |
行列の転置処理、ベクトルの回転処理について理解し、これらを実現するプログラムを作成できる
|
5週 |
行列演算(3) 連立方程式の解法(1) |
掃出し法のアルゴリズムを理解し、当該アルゴリズムを実装できる
|
6週 |
連立方程式の解法(2) |
ガウスの消去法のアルゴリズムを理解し、当該アルゴリズムを実装できる
|
7週 |
前半の内容の復習 |
前半の授業内容について復習し,未提出・不完全な課題の提出,および追加課題の提出を実施する
|
8週 |
中間試験 |
|
2ndQ |
9週 |
連立方程式の解法(3) |
ガウスの消去法におけるピボット選択処理を理解し、当該処理を実装できる
|
10週 |
非線形方程式の解法(1) |
非線形方程式の反復解法の概要を理解し、その一つである線形反復法のアルゴリズムを理解した上で、当該アルゴリズムを実装できる
|
11週 |
非線形方程式の解法(2) |
二分法のアルゴリズムを理解し、当該アルゴリズムを実装できる
|
12週 |
非線形方程式の解法(3) |
はさみうち法のアルゴリズムを理解し、当該アルゴリズムを実装できる
|
13週 |
非線形方程式の解法(4) |
ニュートン法のアルゴリズムを理解し、当該アルゴリズムを実装できる
|
14週 |
組合せ最適化問題の解法 |
組合せ最適化問題の一つであるTSPを対象に、当該問題の準最適解を求めるプログラムを実装できる
|
15週 |
課題の総まとめ |
後期これまで実施した課題のうち、未完成のものを完成させる
|
16週 |
期末試験 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 前1 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 前1,前2 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前1,前2 |
変数の概念を説明できる。 | 4 | 前1,前2 |
データ型の概念を説明できる。 | 4 | 前1,前2 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | 前1,前2 |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | 前1,前2 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前1,前3,前4,前5,前6,前8,前9,前10,前11,前12,前13 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前1,前3,前4,前5,前6,前8,前9,前10,前11,前12,前13 |
情報数学・情報理論 | コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 4 | 前3,前4,前9,前10,前11,前12 |
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。 | 4 | 前3,前4,前9,前10,前11,前12 |
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 4 | 前5,前6,前8,前9,前10,前11,前12 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 標準的な開発ツールを用いてプログラミングするための開発環境構築ができる。 | 4 | 前1,前2 |
要求仕様にあったソフトウェア(アプリケーション)を構築するために必要なツールや開発環境を構築することができる。 | 4 | 前1,前2 |