到達目標
1.基本的なアルゴリズムとデータ構造を理解する。
2.論理的な思考ができる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
評価項目1 | 問題を解決するための手順やフローチャートからC言語のプログラムを構築できる。 | C言語のプログラムを理解し,プログラムがどのように動作するのか説明できる。 | C言語のプログラムを理解できず,プログラムがどのように動作するのか説明できない。 |
評価項目2 | 問題を解決するための手順をフローチャートで記述できる。 | 記述されたフローチャートを理解し,フローチャートの動作を説明できる。 | 記述されたフローチャートを理解できず,フローチャートの動作を説明できない。 |
学科の到達目標項目との関係
教育方法等
概要:
基本的なアルゴリズムとデータ構造に関する演習を通じて,論理的な思考力を修得し,コンピュータ上でプログラムの開発・実行・動作確認が行えるようになることを目指す。これにより,基本的な問題解決能力の向上も目指す。各コースに分かれる前の基礎教育であるので,特定のコースに特化した内容は扱わず,標準的,基本的な内容について体験的に学ぶ。ひとつの課題に対して,2~3週間の演習時間を設けるので,自分自身で考え,問題点を見つけ,解決することを心がけてほしい。
授業の進め方・方法:
まず,演習の内容について,スライドなどを用いて説明する。学生はノートを取り,わからないことがあれば,時間中に質問する。その後,コンピュータを使って演習(プログラム開発)に取り組む。演習中は,教員が支援する。演習は動作確認を行うことで終了する。次回までに,演習の内容を報告書にまとめ提出する。定期試験も実施する。
注意点:
初めから,すべてのことを教えてもらうつもりでは,問題を解決する能力の向上は望めない。他の学生と相談することは構わないが,各自が主体的に取り組むことが必要である。
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス 開発環境の基本的な操作法 |
授業の進め方,評価法などについて理解する。 エディタの基本操作,実行可能プログラムの作成法,フォルダの階層化について理解する。
|
2週 |
学内LANの構成と使用法 コンパイルとリンク |
学内LANの構成を理解し,適切な使用法を修得する。 ソースファイル,機械語ファイル,実行可能ファイルの関係を理解する。
|
3週 |
アルゴリズムとデータ構造 |
アルゴリズムとデータ構造の概要を理解する。
|
4週 |
乱数 |
コンピュータ上で生成できる乱数について理解し,一様乱数を生成するプログラムを作成する。
|
5週 |
最大公約数 |
ユークリッドの互除法によって最大公約数を求めるプログラムを作成する。
|
6週 |
スタック(1) |
スタックの概要を理解し,データを格納する関数を作成する。 関数の作成法を理解する。
|
7週 |
スタック(2) |
スタックからデータを取り出す関数を作成し,データの格納と取り出しが適切に行えることを確認する。
|
8週 |
キュー(1) |
キューの概要を理解し,キューにデータを格納する関数を作成する。
|
2ndQ |
9週 |
キュー(2) |
キューからデータを取り出す関数を作成し,データの格納と取り出しが適切に行えることを確認する。
|
10週 |
数式の評価(1) |
逆ポーランド記法による数式の表現法を理解する。 逆ポーランド記法による数式をキューに格納する。
|
11週 |
数式の評価(2) |
キューから数式を取り出し,スタックを用いて式を評価する関数を作成する。
|
12週 |
リスト(1) |
リストの概要を理解する。一次元配列によるリストの実現法を理解する。
|
13週 |
リスト(2) |
リスト中のデータを線形探索する関数を作成する。
|
14週 |
リスト(3) |
リストの先頭にデータを挿入する関数を作成する。
|
15週 |
リスト(4) |
リストの先頭のデータを削除する関数を作成する。
|
16週 |
リスト(5) |
ポインタによるリストの実現法を理解する。
|
後期 |
3rdQ |
1週 |
2分木(1) |
2分木の概要を理解する。 2分木を実現するデータ構造を定義する。
|
2週 |
2分木(2) |
数式を2分木に格納する。
|
3週 |
2分木(3) |
2分木を探索することで,数式を表示する。
|
4週 |
グラフ(1) |
グラフの概要を理解する。 グラフを実現するデータ構造を定義する。
|
5週 |
グラフ(2) |
グラフを探索する関数を作成する。
|
6週 |
グラフ(3) |
グラフを探索する関数を作成する。
|
7週 |
整列(1) |
整列の概要を理解する。乱数を生成し,一次元配列に格納する。隣り合ったデータを入れ替える関数を作成する。
|
8週 |
整列(2) |
バブルソート法を用いて整列する関数を作成する。
|
4thQ |
9週 |
2分探索(1) |
2分探索の概要を理解し,2分探索を行う関数を作成する。
|
10週 |
2分探索(2) |
2分探索を行う関数を作成する。
|
11週 |
ファイル処理(1) |
ファイル処理の概要を理解し,シーケンシャルファイルにデータを書き出す関数を作成する。
|
12週 |
ファイル処理(2) |
シーケンシャルファイルからデータを読み込む関数を作成する。
|
13週 |
組み込みプログラム(1) |
1年間学習した内容を用いて,LEGO部品を制御するプログラムを開発する。
|
14週 |
組み込みプログラム(2) |
1年間学習した内容を用いて,LEGO部品を制御するプログラムを開発する。
|
15週 |
組み込みプログラム(3) |
1年間学習した内容を用いて,LEGO部品を制御するプログラムを開発する。
|
16週 |
組み込みプログラム(4) |
1年間学習した内容を用いて,LEGO部品を制御するプログラムを開発する。
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 数値計算の基礎が理解できる | 3 | |
コンピュータにおける初歩的な演算の仕組みを理解できる。 | 3 | |
データの型とデータ構造が理解できる | 3 | |
評価割合
| 試験 | 発表 | 相互評価 | 態度 | ポートフォリオ | 課題 | 合計 |
総合評価割合 | 30 | 0 | 0 | 30 | 0 | 40 | 100 |
基礎的能力 | 30 | 0 | 0 | 30 | 0 | 40 | 100 |
専門的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
分野横断的能力 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |