到達目標
(ア)C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。
(イ)アルゴリズムとデータ構造がプログラミングの要であることを理解する。
(ウ)アルゴリズムの概念を理解し、与えられたアルゴリズムが問題を解決していく過程を説明できる。
(エ)同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを理解している。
(オ)基本的な探索,整列アルゴリズムを理解し、プログラムを作成できる。
(カ)各種アルゴリズムを理解し、応用プログラムを作成できる。
ルーブリック
| 最低限の到達レベルの目安(優) | 最低限の到達レベルの目安(良) | 最低限の到達レベルの目安(不可) |
評価項目(ア) | C言語の文法とC言語によるプログラミングの基礎から上級までを理解し、プログラム作成に利用できる。 | C言語の文法とC言語によるプログラミングの基礎から上級までを理解する。 | C言語の文法とC言語によるプログラミングの基礎から上級までを理解できない。 |
評価項目(イ) | 基本的な整列・探索アルゴリズムを理解し、プログラムを作成でき、さらに,同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。 | 基本的な整列・探索アルゴリズムを理解する。 | 基本的な整列・探索アルゴリズムを理解できない。 |
評価項目(ウ) | アルゴリズムの概念を理解し、アルゴリズムが問題を解く過程を説明でき、さらに、アルゴリズムと効率・複雑さを理解し、基本的なプログラムの計算量を見積もることができる。 | アルゴリズムの概念を理解し、アルゴリズムが問題を解く過程を説明できる。 | アルゴリズムの概念を理解できない。 |
学科の到達目標項目との関係
本校教育目標 ① ものづくり能力
本校教育目標 ② 基礎学力
教育方法等
概要:
プログラムを設計するために重要なものは、アルゴリズムとデータ構造である。本科目では、まず、C言語の文法の重要な点を復習し、データの探索や整列のための基本的なアルゴリズムを学ぶ。そして、学習したアルゴリズムについて、実際にプログラミングすることで理解を深める。さらに、上級CプログラミングとしてC言語ならではの技法も身につける。本科目は講義と演習を交互に実施し、プログラミング能力を身につけるものである。
授業の進め方・方法:
統合開発環境を用いてC言語の文法の重要な点を復習し、データの探索や整列のための基本的なアルゴリズムを学ぶ。学習したアルゴリズムについて、実際にプログラミングすることで理解を深める。さらに、上級CプログラミングとしてC言語ならではの技法も身につける。本科目は講義と演習を交互に実施し、プログラミング能力を身につける。
注意点:
プログラミングI, IIA, IIB を修得していることが望ましい。適宜ノートパソコンを持参すること。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
シラバスを用いた授業内容の説明,プログラミング環境の設定,配列とポインタの応用 |
統合開発環境を設定し,使用することができる。Cプログラミングの配列とポインタを使用してデータ処理ができる。
|
2週 |
Cプログラミングの関数と構造体の応用 |
関数と構造体でプログラムを簡素にまとめることができる。
|
3週 |
素数探索アルゴリズム:単純方式とエラトステネスの篩 |
アルゴリズムの概念を理解し,素数探索処理アルゴリズムのプログラムを作成できる。
|
4週 |
乱数生成処理と,最大値・最小値探索 |
乱数生成処理を用いてデータを生成し,最大値と最小値を探索するプログラムを作成できる。
|
5週 |
メモリ管理:動的割り当て, 小テスト1 |
malloc(), calloc()による動的メモリ管理をプログラム処理できる。
|
6週 |
データ構造:連結リスト,スタック,キュー |
アルゴリズムを処理するためのデータの構造について理解できる。
|
7週 |
再帰アルゴリズム:概念とプログラム, 最大公約数と最小公倍数 |
再帰アルゴリズムについて理解し,最大公約数と最小公倍数を求めるプログラムを作成できる。
|
8週 |
基本的な探索アルゴリズム:線形探索、二分探索 |
線形探索アルゴリズム、二分探索アルゴリズムを理解し,プログラムを作成できる。
|
2ndQ |
9週 |
基本的な整列アルゴリズム:選択法、挿入法、交換法 |
整列アルゴリズムとして選択法、交換法、挿入法を理解し、プログラムを作成することができる。
|
10週 |
探索・整列アルゴリズムのまとめ, 小テスト2 |
再帰アルゴリズム,探索/整列アルゴリズムについて説明できる。
|
11週 |
ファイル処理とグラフ化:データのファイルへの入出力と,出力データのグラフ化 |
データをファイルに入出力処理でき,出力したデータをグラフ化できる。
|
12週 |
ヒストグラム:1次元,2次元データのヒストグラム計算 |
1次元データ,2次元データについてヒストグラムを求めることができる.
|
13週 |
積和演算処理:2次元データとカーネルデータの演算処理 |
2次元データとカーネルデータの積和演算処理プログラムを作成できる。
|
14週 |
状態遷移制御:状態遷移表,状態遷移図,状態遷移プログラム |
状態遷移表から状態遷移図と状態遷移プログラムを作成できる。
|
15週 |
前期総まとめ |
C言語によるプログラミンの基礎から上級までを理解し、各種アルゴリズムを処理するプログラムを作成できる。
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 3 | |
評価割合
| 中間試験 | 定期試験 | 小テスト | 課題 | 合計 |
総合評価割合 | 20 | 40 | 20 | 20 | 100 |
専門的能力 | 20 | 40 | 20 | 20 | 100 |