1. 与えられた問題を解決するためのソースプログラムを C 言語により記述し,コンパイル・リンク・実行できる。
2. 基本的な整列・探索アルゴリズムが問題を解決してゆく過程を説明できる。
3. リスト構造,スタック,キューといった基本的なデータ構造の概念と操作を説明できる。
概要:
開発ツールとして,Linux 上で動作する C コンパイラ(gcc)を使用する。前期では,C 言語を用いたより高度なプログラミングと,これを応用した基本的なデータ構造を学ぶ。後期では,CAD/CAM 技術の基礎となる平面図形の表現方法や計算幾何を 学び,これらを C 言語で記述する。最後に,基本的な整列・探索アルゴリズムを学び,計算幾何へこれらを応用する。
授業の進め方・方法:
教科書と配布プリントを用いて内容を説明した後にプログラミングや演習を行い,その結果をレポートとして提出する.
注意点:
2 年生の情報処理で学んだ C 言語の基礎(構文や主要なライブラリ関数の使い方など)を充分理解しておくこと。プログラムを書く時は,単純な論理を一つずつ丁寧に積み重ねることを心がけること。目的に応じたプログラムを自分自身で書けるように なることを目標として,小テストを適宜実施するので,復習を欠かさないこと。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
C言語の復習 |
C言語の定数,変数,データ型を説明できる.C言語で演算子を用いたプログラムを作成できる.
|
2週 |
ファイル入出力 |
数値や文字列を取り扱うために,バイナリファイルやテキストファイルを読み書きする方法がわかる.
|
3週 |
分割コンパイル |
大きなプログラムを機能別に複数のファイルに分割することで,可読性の高いプログラムにする方法がわかる.
|
4週 |
分割コンパイル |
大きなプログラムを機能別に複数のファイルに分割することで,可読性の高いプログラムにする方法がわかる.
|
5週 |
構造体 |
構造体の宣言方法,構造体のポインタの利用方法,構造体の1次元配列および2次元配列の利用方法がわかる.
|
6週 |
構造体 |
構造体の宣言方法,構造体のポインタの利用方法,構造体の1次元配列および2次元配列の利用方法がわかる.
|
7週 |
構造体 次週,中間試験を実施する. |
構造体の宣言方法,構造体のポインタの利用方法,構造体の1次元配列および2次元配列の利用方法がわかる.
|
8週 |
答案返却&解説 |
学んだ知識の再確認&修正ができる.
|
2ndQ |
9週 |
動的メモリ確保 |
必要に応じて,変数や配列の記憶領域を動的に確保・解放する方法がわかる.
|
10週 |
動的メモリ確保 |
必要に応じて,変数や配列の記憶領域を動的に確保・解放する方法がわかる.
|
11週 |
線形リスト |
自己参照型構造体を応用して,基本的なデータ構造である線形リストを表現できる.
|
12週 |
線形リスト |
自己参照型構造体を応用して,基本的なデータ構造である線形リストを表現できる.
|
13週 |
スタックとキュー |
自己参照型構造体を応用して,基本的なデータ構造であるスタックとキューを表現できる.
|
14週 |
スタックとキュー |
自己参照型構造体を応用して,基本的なデータ構造であるスタックとキューを表現できる.
|
15週 |
ツリー |
自己参照型構造体を応用して,基本的なデータ構造であるツリーを表現できる.
|
16週 |
期末試験 |
これまで学んだ内容について,試験を通じて確認する.
|
後期 |
3rdQ |
1週 |
ベクトル |
ベクトルに関する基本的な法則と演算を説明できる.
|
2週 |
ベクトル
|
ベクトルに関する基本的な法則と演算を説明できる.
|
3週 |
直線 |
直線の数学的表現や直線間の交点計算方法を説明できる.
|
4週 |
直線 |
直線の数学的表現や直線間の交点計算方法を説明できる.
|
5週 |
円 |
円と楕円の数学的表現や円と直線の交点計算方法を説明できる.
|
6週 |
円 |
円と楕円の数学的表現や円と直線の交点計算方法を説明できる.
|
7週 |
空間図形 次週,中間試験を実施する. |
空間内の直線・平面・球の方程式を求めることができる.
|
8週 |
整列アルゴリズム |
単純ソート,選択ソート,バブルソート,挿入ソートといった基本的なデータ整列アルゴリズムを説明できる.
|
4thQ |
9週 |
整列アルゴリズム |
単純ソート,選択ソート,バブルソート,挿入ソートといった基本的なデータ整列アルゴリズムを説明できる.
|
10週 |
探索アルゴリズム |
線形探索,2分探索といった基本的なデータ探索アルゴリズムを説明できる.
|
11週 |
探索アルゴリズム |
線形探索,2分探索といった基本的なデータ探索アルゴリズムを説明できる.
|
12週 |
探索アルゴリズム |
線形探索,2分探索といった基本的なデータ探索アルゴリズムを説明できる.
|
13週 |
計算幾何への応用 |
凸包計算や三角形分割といった問題に対して,アルゴリズムとデータ構造を応用できる.
|
14週 |
計算幾何への応用 |
凸包計算や三角形分割といった問題に対して,アルゴリズムとデータ構造を応用できる.
|
15週 |
要求仕様に基づくソフトウェア開発 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計・実装できる.
|
16週 |
学年末試験 |
これまで学んだ内容について,試験を通じて確認する.
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 数学 | 数学 | 数学 | 2点間の距離を求めることができる。 | 3 | 後3,後4 |
2つの直線の平行・垂直条件を利用して、直線の方程式を求めることができる。 | 3 | 後3,後4 |
簡単な場合について、円の方程式を求めることができる。 | 3 | 後5 |
放物線、楕円、双曲線の図形的な性質の違いを区別できる。 | 3 | 後6 |
簡単な場合について、不等式の表す領域を求めたり領域を不等式で表すことができる。 | 3 | 後6 |
ベクトルの定義を理解し、ベクトルの基本的な計算(和・差・定数倍)ができ、大きさを求めることができる。 | 3 | 後1 |
平面および空間ベクトルの成分表示ができ、成分表示を利用して簡単な計算ができる。 | 3 | 後1 |
平面および空間ベクトルの内積を求めることができる。 | 3 | 後1 |
問題を解くために、ベクトルの平行・垂直条件を利用することができる。 | 3 | 後2 |
空間内の直線・平面・球の方程式を求めることができる(必要に応じてベクトル方程式も扱う)。 | 3 | 後7 |
専門的能力 | 分野別の専門工学 | 機械系分野 | 情報処理 | プログラムを実行するための手順を理解し、操作できる。 | 4 | 前1 |
定数と変数を説明できる。 | 4 | 前1 |
整数型、実数型、文字型などのデータ型を説明できる。 | 4 | 前1,前5,前6 |
演算子の種類と優先順位を理解し、適用できる。 | 4 | 前1 |
算術演算および比較演算のプログラムを作成できる。 | 4 | 前1 |
データを入力し、結果を出力するプログラムを作成できる。 | 4 | 前2 |
条件判断プログラムを作成できる。 | 4 | 前2 |
繰り返し処理プログラムを作成できる。 | 4 | 前2 |
一次元配列を使ったプログラムを作成できる。 | 4 | 前5 |
情報系分野 | プログラミング | 要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 後15 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 3 | 後15 |
ソフトウェア | 与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 後8,後9,後10,後11,後12 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | 後8,後9,後10,後11,後12 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 後8,後9,後10,後11,後12 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後8,後9,後10,後11,後12 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後8,後9,後10,後11,後12 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 前11,前12,前13,前14,前15 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 後8,後9,後10,後11,後12 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 3 | 前11,前12,前13,前14,前15 |
ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 3 | 後15 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | 後8,後9,後10,後11,後12 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | 後8,後9,後10,後11,後12 |
分野別の工学実験・実習能力 | 情報系分野【実験・実習能力】 | 情報系【実験・実習】 | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 3 | 前1 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 前1 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 3 | 前1 |