到達目標
プログラミング言語の文法は理解できるがプログラムを作成できないという状況は起こりうることである。この状況は問題に適したデータ構造を選択できないか、作成するべき処理の流れを発想できないことに起因する。こうした原因を取り除くために、ソフトウェア工学(ソフトウェア設計論)があり、古くは構造化プログラミング、昨今ではリファクタリングなどの方法が存在している。この講義では、様々なデータ構造を具体的に使用したコードを作成することで、こうしたソフトウェア工学の入門につながる内容の提供を目的とする。到達目標として、示された目標を達成できないコードが与えられたとき、その原因を特定でき、修正できることを目標とする。
ルーブリック
| 理想的な到達レベルの目安(優) | 標準的な到達レベルの目安(良) | 未到達レベルの目安(不可) |
データ構造の扱い | これまでに学習したデータ構造について、与えられた問題を解くのに不可欠な処理を使用して問題を解決できる。 | 主題であるデータ構造を宣言し、与えられた問題を解くのに不可欠な処理を使用して問題を解決できる。 | 主題であるデータ構造について、与えられた問題を解くのに不可欠な処理を使用していない。 |
処理の扱い | 与えられた問題を解く処理をモジュールあるいはクラスに分解してコーディングできる。 | 与えられた問題を解く処理をコーディングできる。 | 与えられた問題を解く処理をコーディングできない。 |
コードの表現 | 与えられた問題を解くために出来上がっているコードに適切なインデント、名称を変数や処理につけることが出来、わかりやすいコメントが記載されている。 | 与えられた問題を解くために出来上がっているコードに適切なインデントがついているか、名称が変数や処理についている。 | 出来上がったコードのインデントが過度に不適切であるか、変数や処理の名称がぞんざいである。 |
学科の到達目標項目との関係
教育方法等
概要:
GCCによるC言語とC++を使用する。最初はC言語の文法事項のみでデータ構造の学習を行う。次に構造化プログラミングの考えに基づいてトップダウンとボトムアップでソースコードを作成する。これらが終了後、クラスによるプログラミングの考え方の基礎を学習する。最後にクラスでのコードの改良について学習する。
授業の進め方・方法:
・オンデマンド方式とする。質問はTeamsないしメールで受け付ける。
・指導書をダウンロードし、 各自で学習し、採点機にかけて理解度を確認する。(講義動画の提供は未定)
・授業計画の全事項を終了した後、採点機によるチェックをすべて終わらせていることを条件に、理解度確認のため対面方式による試験を現地高専の監督教員の指導のもとで実施する。
注意点:
・受講を希望する学生の属する教育課程内の科目のシラバスに類似の内容がある場合は受講を認めないことがある
・受講生はコンピュータを所有していることを受講条件とする。この条件を満たせない場合は現地の情報センター教員と相談し、現地高専の演習室で環境構築が行えるかどうかを確認し、使用の許可を取っておくこと。環境構築の詳細については現地高専での指導を期待する。
・Cの文法事項(if, for, while, 簡単な関数呼び出し)については既習であるとする。
・令和5年度において本講義は令和4年度の反省から改良が予定されている。そのため講義計画は目安であり提供順や内容は変更されることもある。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
オリエンテーション、環境構築確認 |
受講に適した環境が構築できているか確認できる
|
2週 |
基本型による配列(1) |
1次元配列を使用して、2次元配列相当のデータ構造を実現できる
|
3週 |
基本型による配列(2) |
配列を使用して待ち行列を実現できる
|
4週 |
基本型による配列(3) |
配列を使用してスタックを実現できる
|
5週 |
ポインタと配列の関係 |
配列表現を利用してポインタを使用できる、ポインタ表現を利用して配列を使用できる
|
6週 |
ポインタ使用の基礎 |
動的記憶管理の表記が理解でき、簡単な管理ができる
|
7週 |
構造体(1) |
構造体を宣言して使用することができる、構造体のポインタ変数を宣言して使用できる、構造体のメンバ変数にポインタを宣言できる
|
8週 |
構造体(2) |
自己参照構造体を宣言して使用できる
|
4thQ |
9週 |
構造化プログラミング(1) |
構造化プログラミングの考え方を説明できる
|
10週 |
構造化プログラミング(2) |
構造化プログラミングに沿ってプログラミングできる
|
11週 |
クラス(1) |
public,privateの使い分けができる、アクセサーが設定できる
|
12週 |
クラス(2) |
簡単なhas-a関係にあるクラスを表現できる
|
13週 |
クラス(3) |
簡単なis-a関係にあるクラス(継承クラス)を表現できる
|
14週 |
クラス(4) |
STL vectorを使用できる
|
15週 |
クラス(5) |
与えられたコードの誤りを修正できる
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
評価割合
| 遠隔チェック | 対面試験 | その他 | その他 | 合計 |
総合評価割合 | 40 | 60 | 0 | 0 | 100 |
専門的能力 | 40 | 60 | 0 | 0 | 100 |
基礎的能力 | 0 | 0 | 0 | 0 | 0 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 |