プログラミング言語の一つであるC言語に習熟し,構造化プログラミング技法に心がけ,よりよいプログラムが書けるようになることを目標とする.ライブラリ関数の挙動や制御構造の概念を理解して,与えられた問題を解決する方法を設計してプログラムで実現できるようになる.基本的なアルゴリズムとして探索や整列に関するアルゴリズムなどを学び,効率も考慮したプログラムの作成に配慮できるようになる.
概要:
2年次「情報処理」で学習したプログラミング言語C言語についてさらに習熟する.新たに構造的なデータ(配列)や動的な変数(構造体とポインター)の取り扱い方,関数の組み方と使い方,再帰などのプログラミング手法を学習し,探索や整列など基本的なアルゴリズムを学び,簡単な実技演習を通して自力でプログラムが作成できるようになる.プログラミング言語は,C言語とする.構造的プログラミング技法の習得にも心がけ,よりよいプログラムが書けるようになる.
授業の進め方・方法:
本科目は,2年生「情報処理」に続く科目である.プログラミング言語はC言語とし,プログラミングは主にUNIX環境で行う.本科目では講義主体で進めるが,簡単な演習を通じて実際のプログラムの挙動を確認しながら内容理解を深める.前期には2年次の学習内容の定着の確認を含め,その後新たな内容として構造体や自己参照構造体,ファイルの取り扱いなどを学ぶ.
注意点:
本科目は2単位であり規定授業時数は60時間である。
試験は,筆記による試験と一定の期間を定めて実技課題による試験を行う.
授業内で行う演習については,期限内に報告書を提出する.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
2年学習内容の確認
|
2年時に学習した内容を確認し,各自が自身の学習状況を把握できる.
|
2週 |
関数(1)
|
関数の作り方(定義)と利用(呼び出し),関数の値引数と戻り値,関数のポインター引数と配列引数を利用して計算結果を関数の外側に伝える方法が応用できる.
|
3週 |
関数(2)
|
前週に同じ
|
4週 |
関数(3) |
前週に同じ
|
5週 |
文字・文字列(1) |
文字と文字列処理関数の作り方,文字列配列(2次元文字配列)の定義と宣言,入出力関数(文字列配列引数),文字列配列における探索と整列についてプログラミングできる.文字と文字列処理標準関数の利用できる.
|
6週 |
文字・文字列(2)
|
前週に同じ
|
7週 |
中間試験 |
|
8週 |
中間試験の解説 |
|
2ndQ |
9週 |
配列(1)-整列アルゴリズム |
整列アルゴリズム(選択ソートやバブルソート)の挙動や時間計算量などによる違いを理解し,プログラムへの適用を理解できる.
|
10週 |
配列(2)-整列アルゴリズム |
前週に同じ
|
11週 |
配列(3)-整列アルゴリズム |
前週に同じ
|
12週 |
配列(4)-探索アルゴリズム |
探索アルゴリズム(番兵や,二分探索)の挙動を理解し,プログラムへの適用ができる.
|
13週 |
配列(5)-探索アルゴリズム |
前週に同じ
|
14週 |
配列(6)-探索アルゴリズム |
前週に同じ
|
15週 |
コマンドライン |
コマンドライン引数を利用したプログラムを作成できる.
|
16週 |
定期試験の解説 |
|
後期 |
3rdQ |
1週 |
ファイル処理(1) |
ファイルに対する入出力を含むプログラムを書ける
|
2週 |
ファイル処理(2) |
前週に同じ
|
3週 |
ファイル処理(3) |
前週に同じ
|
4週 |
構造体(1) |
構造体の考え方,構造体の宣言と構造体型の変数のいろいろな宣言方法,構造体の初期化と入出力とメンバの参照について理解できる.構造体を関数引数としての受け渡し,入れ子の構造体の応用ができる.
|
5週 |
構造体(2) |
前週に同じ
|
6週 |
構造体(3) |
前週に同じ
|
7週 |
中間試験 |
|
8週 |
中間試験の解説 |
|
4thQ |
9週 |
自己参照構造体(1) |
自己参照構造体の意味を理解できる.自己参照構造体を用いて静的チェーンについて理解できる.また,チェーンを作成するにおける動的なメモリを割り当て,動的チェーンを組み立て,動的チェーンを操作する関数をプログラミングができる.
|
10週 |
自己参照構造体(2)-チェーン |
自己参照構造体を用いた単方向チェーン,双方向チェーンの構造を理解でき,実装できる.
|
11週 |
自己参照構造体(3)-チェーン |
前週に同じ
|
12週 |
自己参照構造体(4)-チェーン |
前週に同じ
|
13週 |
再帰(1) |
再帰の意味と仕組みを理解でき,再帰関数を用いたプログラミングができる.
|
14週 |
再帰(2) |
前週に同じ
|
15週 |
再帰(3) |
前週に同じ
|
16週 |
定期試験の解説 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 2 | 前1,前5,前6,前7,前9,前14,後1,後7,後8 |
代入や演算子の概念を理解し、式を記述できる。 | 2 | 前1 |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 2 | 前1,前5,前6,前7,前9,後12 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 2 | 前2,前3,前4 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 2 | 前6 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 2 | 前1 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 2 | 前1 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 2 | 後1 |
プログラミング言語は計算モデルによって分類されることを説明できる。 | 2 | |
主要な計算モデルを説明できる。 | 2 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 前9,前10,前13 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 2 | 前9,前10,前11,前12,前13,後14 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 2 | 前9,前10,前11,前12,前13 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 2 | 前9,前10,前11,前12,前14,前15 |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 2 | 前9,前10,前11,前12,前14,前15 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 3 | 前9,前10,前11,前12,前13,前14,前15 |