概要:
多くの例題を通してプログラムの作成方法に慣れ,プログラムの考え方の基礎を固めるとともに基本的な問題の解決手法や基礎的なアルゴリズムを学ぶ。探索や整列といった具体的な動作が,代入・演算・制御などプログラムの基本動作の組み合わせで記述できることを理解する。
授業の進め方・方法:
毎回,配布した資料に従って授業を進める。各授業の前半では基礎的な動作をするプログラムを解説し,後半に出題された課題に取り組んでもらう。基本課題を理解した後,応用問題や発展問題に挑戦してもらう。
注意点:
プログラムを表面的に眺めるのではなく,動作を深く考えること。そのため,課題プログラムを作成する前に,資料のサンプルプログラムの動作や計算過程を理解し,何も見ずにもう一度書いてみることを推奨する。プログラムを理解する上で,次の3点は肝要である。
1) 少し変えてみる。プログラムにおいてほんの少しの文字の違いは,大きな動作の違いとなる
2) 木でなく森を見る。代入,演算,制御(forやif),それぞれ単体でなく塊で何かをしている
3) 動作を図にする。プログラムの動作が図示できるのは理解できた証拠
質問や相談は,直接,あるいはメールで随時受け付けます。また教員室前に所在を示し,在室時間等も掲示しておくので活用してください。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
ガイダンス 整数と実数の演算 |
・プログラムにおける整数と実数の特徴や性質を理解する
|
2週 |
複数のif文の組み合わせ |
・複数のif文を組み合わせた複雑な条件のプログラムを記述できる
|
3週 |
for, whileによる多重ループ |
・2重ループ以上のプログラムが記述できる
|
4週 |
関数分割 |
・動作のまとまりでプログラムを複数の関数に分割して記述する方法を理解できる
|
5週 |
数値計算(1) |
・浮動小数点の誤差を踏まえたプログラムを記述できる
|
6週 |
数値計算(2) |
・数値積分,ニュートン法のプログラムの概念を理解できる
|
7週 |
クラス |
・簡単なクラスの作り方を理解できる
|
8週 |
[前期中間試験] |
|
4thQ |
9週 |
整列 |
・挿入ソートやシェルソートのプログラムを記述できる
|
10週 |
探索 |
・線形探索や二分探索のプログラムを記述できる ・ハッシュの概念を理解できる
|
11週 |
基本的なデータ構造 |
・スタックやリスト,キューの基本的なデータ構造を利用できる ・基本的なクラスライブラリを利用できる
|
12週 |
ファイル入出力 |
・連続データを複数のファイルに分割して保存したり,複数のファイルから必要な情報を取り出すことができる
|
13週 |
乱数 |
・疑似乱数や乱数の種を理解し,疑似乱数を活用したプログラムを記述できる ・疑似乱数を用いてサンプリングやシャッフルが記述できる
|
14週 |
応用問題 |
・変数,クラス,クラスライブラリなどこれまでに学習した事柄を使って応用プログラムを作成できる
|
15週 |
[前期末試験] |
|
16週 |
前期末試験の返却と解説 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 後9,後10 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 2 | 後9,後10 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 2 | 後9,後10 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | 後1,後10 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 後4,後14 |
変数の概念を説明できる。 | 3 | 後1 |
データ型の概念を説明できる。 | 3 | 後1,後5,後6,後14 |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | 後2 |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | 後3 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 2 | 後14 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 2 | 後14 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 2 | 後14 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 2 | 後12,後14 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 2 | 後12,後14 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 2 | 後9 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 2 | 後9,後10 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 2 | 後9,後10 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 2 | 後9,後10 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 2 | 後14 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 2 | 後14 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 2 | 後14 |
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。 | 2 | 後14 |
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。 | 2 | 後14 |
要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。 | 2 | 後14 |