1. ポインタや構造体など,プログラミングにとって重要な考え方を理解する。
2. ソフトウェア開発工程およびアルゴリズムの重要性を理解する。
3. 各種アルゴリズムの仕組みと特徴を理解する。
4. 課題や問題に対して各種アルゴリズムを駆使して解決することができる。
概要:
ポインタ,ユーザ関数,構造体と共用体,データ型と記憶クラス,ファイル処理等について,講義と実習を通じて学習する。小・中規模のプログラムを作成する課題を与える。課題を通じて基本アルゴリズムについても学習する。
プログラミング基礎で学んだ知識に加えて,C言語に関する文法を全て習得し,小・中規模のプログラムを作成できることを目標とする。
授業の進め方・方法:
前期は,C言語に関する文法(ポインタ,構造体,ファイル操作)を学習し,各節ごとに演習課題に取り組む。
後期は,基本的なアルゴリズムについて学び,演習課題に取り組む。
注意点:
課題の提出期限を必ず守ることが大切である。また,自分の頭で考えることが,アルゴリズム設計能力やソフトウェア作成能力の向上には欠かせない。この事を念頭に置いて,主体的に学習してほしい。
実習にあたっては,基本的にソフトウェア開発工程に沿って行うこと。課題内容をじっくり検討し,プログラムの設計図をきちんと書いてからコーディングを行うこと。作成したプログラムはしっかりと検証(テスト)を行い,要求された課題を十分に満たしているかどうか確認すること。
課題は必ず全て提出すること。期限までにどうしても完成しない場合は,どこで引っかかっているか担当教員へ事前に(期限前に)相談に行き,適切なアドバイスを受けること。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ポインタ |
ポインタの特徴と動作を理解し,適切に扱うことができる。
|
2週 |
ポインタ演習1 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
3週 |
ポインタ演習2 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
4週 |
ポインタ演習3 |
ポインタの特徴と動作を理解し,適切に扱うことができる。 メモリ空間の動的確保と可変長多次元配列を利用できる。
|
5週 |
構造体と共用体 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
6週 |
構造体と共用体 演習1 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
7週 |
構造体と共用体 演習2 |
構造体の特徴を理解し,適切なデータ操作ができる。 共用体の意味とメモリ領域の扱いを理解し,ビット単位でのデータ操作ができる。
|
8週 |
ファイル処理 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
2ndQ |
9週 |
ファイル処理 演習1 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
10週 |
ファイル処理 演習2 |
テキストファイルとバイナリファイルの違いを理解し,適切に操作することができる。
|
11週 |
前期総合演習課題1 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
12週 |
前期総合演習課題2 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
13週 |
前期総合演習課題3 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
14週 |
前期総合演習課題4 |
これまでに学習した内容を応用し,課題の要求を満たすプログラムを作成することができる。
|
15週 |
前期期末試験の返却 |
前期期末試験の答案返却と解説
|
16週 |
|
|
後期 |
3rdQ |
1週 |
ソフトウェア開発工程の進め方 |
ソフトウェアを中心としたシステム開発のプロセスを理解している。
|
2週 |
アルゴリズムの基礎 |
アルゴリズムの概念を説明できる。
|
3週 |
アルゴリズムの基本データ構造と基本概念1 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを理解している。
|
4週 |
アルゴリズムの基本データ構造と基本概念2 |
リスト構造,スタック,キューなどの基本的なデータ構造の概念と操作を説明できる。
|
5週 |
アルゴリズムの基本データ構造と基本概念3 |
リスト構造,スタック,キューなどの基本的なデータ構造の概念と操作を説明できる。
|
6週 |
アルゴリズムの基本データ構造と基本概念4 |
同一の問題に対し,選択したデータ構造によってアルゴリズムが変化しうることを理解している。
|
7週 |
後期中間試験 |
|
8週 |
後期中間試験の返却 |
後期中間試験の答案返却と解説
|
4thQ |
9週 |
データの探索1 |
整列,探索など,基本的なアルゴリズムについて説明できる。 種々のデータ探索法について理解できる。 同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。
|
10週 |
データの探索2 |
整列,探索など,基本的なアルゴリズムについて説明できる。 種々のデータ探索法について理解できる。 同一の問題に対し,それを解決できる複数のアルゴリズムが存在しうることを理解している。
|
11週 |
ソートアルゴリズム1
|
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
12週 |
ソートアルゴリズム2 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
13週 |
ソートアルゴリズム3 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
14週 |
ソートアルゴリズム4 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 種々のデータソート法について理解できる。
|
15週 |
後期期末試験の返却 |
後期期末試験の答案返却と解説
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 4 | |
代入や演算子の概念を理解し、式を記述できる。 | 4 | |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
主要な言語処理プロセッサの種類と特徴を説明できる。 | 4 | |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 4 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 4 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 4 | |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 4 | |
整列、探索など、基本的なアルゴリズムについて説明できる。 | 4 | |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 4 | |
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。 | 4 | |
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。 | 4 | |
計算機工学 | 整数・小数を2進数、10進数、16進数で表現できる。 | 4 | |
整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 4 | |
情報数学・情報理論 | コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 4 | |