概要:
C言語による基本的かつ代表的なプログラムの概念やアルゴリズムについて講義し、演習によって理解を深める。
実際にプログラムを記述して実行しながら授業を進めることで、自力でプログラムを組み立てられることを授業の目標とする。
授業の進め方・方法:
教科書や配布プリントなどを用いた講義と、情報処理演習室でのパソコン利用による演習を中心に進める。授業時間を以下のように分割して進める。
「授業の前半」教科書、配布プリントなどを用いて、プログラムを実行しながら講義を進める。
「授業の後半」課題の演習や練習問題を解く演習を行う。
関連科目:情報構造論、オペレーティングシステム論、システム設計
注意点:
学習教育目標:RB2(◎)
関連科目:情報構造論、オペレーティングシステム、ソフトウェア工学
学習教育目標の達成度評価方法:前期(中間学力試験、期末課題)50%、後期(中間学力試験、期末課題)で50%とする。
学習教育目標の達成度評価基準:60点以上を合格とする。
再試:再試を行う場合もある。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
【講義】授業概要、プログラミングとは 【授業外学習】教科書による予習復習 |
ガイダンス。 プログラミングとは、全般的にどういうものだったのかを復習し、理解する。
|
2週 |
【講義】C言語の概要とプログラム作成手順(エディット,コンパイル,リンク,実行の方法) 【授業外学習】教科書による予習復習 |
エディット,コンパイル,リンク,実行の方法を理解する。
|
3週 |
【講義】変数とデータ型(変数の型宣言と初期化) 【授業外学習】前回の練習問題を解く |
変数の型宣言と初期化を理解する。
|
4週 |
【講義】演算子の種類と使い方 【授業外学習】前回の練習問題を解く |
演算子の種類と使い方を理解する。
|
5週 |
【講義】条件分岐(if, else if,switch, break) 【授業外学習】前回の練習問題を解く |
if, else if, switch, break の使い方を理解する。
|
6週 |
【講義】反復処理 (for, while, do ~ while) 【授業外学習】前回の練習問題を解く |
for, while, do ~ whileの使い方を理解する。
|
7週 |
【講義】配列の宣言と利用(1次元配列と文字列) 【授業外学習】前回の練習問題を解く |
1次元配列と文字列の表現方法を理解する。
|
8週 |
【講義】多次元配列と最初から使える関数 【授業外学習】前回の練習問題を解く |
多次元配列と最初から使える関数を理解する。
|
2ndQ |
9週 |
【講義】ポインタ(1)アドレス演算子、間接演算子 【授業外学習】前回の練習問題を解く |
アドレス演算子、間接演算子を理解する。
|
10週 |
【講義】ポインタ(2)動的メモリ割付、配列との違い 【授業外学習】前回の練習問題を解く |
動的メモリ割付、配列との違いを理解する。
|
11週 |
【講義】多次元配列とポインタ 【授業外学習】前回の練習問題を解く |
多次元配列とポインタを理解する。
|
12週 |
【講義】文字列とポインタ 【授業外学習】前回の練習問題を解く |
文字列とポインタを理解する。
|
13週 |
【講義】関数の使い方 【授業外学習】前回の練習問題を解く |
関数の使い方を理解する。
|
14週 |
【講義】ローカル変数とグローバル変数 【授業外学習】前回の練習問題を解く |
ローカル変数とグローバル変数を理解する。
|
15週 |
【講義】関数の引数 【授業外学習】前回の練習問題を解く |
関数の引数を理解する。
|
16週 |
【講義】前期のまとめ 【授業外学習】いままでの練習問題を復習する |
前期を振り返り到達目標が達成できているか確認する。
|
後期 |
3rdQ |
1週 |
【講義】構造体(1)宣言、代入、参照 【授業外学習】教科書による予習復習 |
構造体の基本的な書き方を理解する。
|
2週 |
【講義】構造体(2)ポインタ 【授業外学習】前回の練習問題を解く |
構造体をポインタとして利用する方法を理解する。
|
3週 |
【講義】時間を表す構造体 【授業外学習】前回の練習問題を解く |
構造体の特殊な利用事例を理解する。
|
4週 |
【講義】データの保存と表示(1)処理の流れ、宣言 【授業外学習】前回の練習問題を解く |
ファイル入出力の基本的な書き方を理解する。
|
5週 |
【講義】データの保存と表示(2)複数行の処理 【授業外学習】前回の練習問題を解く |
ファイル入出力の利用の仕方を理解する。
|
6週 |
【講義】データの保存と表示(3)バイナリファイル、グラフ化 【授業外学習】前回の練習問題を解く |
ファイル入出力の利用の仕方を理解する。
|
7週 |
【講義】データ構造(1)スタック 【授業外学習】前回の練習問題を解く |
データ構造の基本的な書き方を理解する。
|
8週 |
【講義】データ構造(2)キュー、リスト 【授業外学習】前回の練習問題を解く |
データ構造のキューとリストを理解する。
|
4thQ |
9週 |
【講義】データ構造(3)木、グラフ 【授業外学習】前回の練習問題を解く |
データ構造の木とグラフを理解する。
|
10週 |
【講義】アルゴリズム(1)基本的な手法 【授業外学習】前回の練習問題を解く |
アルゴリズムについて基本的な手法を理解する。
|
11週 |
【講義】アルゴリズム(2)基本ソート 【授業外学習】前回の練習問題を解く |
基本形のソートアルゴリズムを理解する。
|
12週 |
【講義】アルゴリズム(3)改良ソート 【授業外学習】前回の練習問題を解く |
改良形のソートアルゴリズムを理解する。
|
13週 |
【講義】アルゴリズム(4)サーチ 【授業外学習】前回の練習問題を解く |
サーチアルゴリズムを理解する。
|
14週 |
【講義】ゲーム開発(1) 【授業外学習】前回の練習問題を解く |
簡単なゲームを作成し、そのアルゴリズムを理解する。
|
15週 |
【講義】ゲーム開発(2) 【授業外学習】前回の練習問題を解く |
簡単なゲームを作成し、そのアルゴリズムを理解する。
|
16週 |
全体のまとめ |
全体を振り返り到達目標が達成できているか確認する。
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数の概念を説明できる。 | 4 | 前3 |
データ型の概念を説明できる。 | 4 | 前3 |
代入や演算子の概念を理解し、式を記述できる。 | 4 | 前3 |
制御構造の概念を理解し、条件分岐を記述できる。 | 4 | 前5 |
制御構造の概念を理解し、反復処理を記述できる。 | 4 | 前6 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 前13 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 前16 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | 前16 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 前16 |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | 前2 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | 前2 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 2 | 後14,後16 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | 後14,後16 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 2 | 後14,後16 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | 後14,後16 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | 後10 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | 後10 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後10 |
時間計算量によってアルゴリズムを比較・評価できることを説明できる。 | 3 | 後10 |
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。 | 2 | 後10 |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | 後11,後13 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | 後7 |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | 後7 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | 後8 |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。 | 4 | 後9 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 2 | 後10 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 2 | 後10 |