到達目標
1.複数の制御構造や関数からなるプログラムを記述できる
2.コンピュータにおける実数の取り扱いについて理解し,基礎的な数値計算アルゴリズムを説明できる
3.探索や整列に複数のアルゴリズムがあることを知っており,基本的なアルゴリズムのプログラムを記述できる
4.スタック,キューといった基本的なデータ構造やクラスを用いたプログラムを記述できる
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
| 複数の制御構造や関数からなるプログラムを記述できる | 2重ループや条件分岐を組み合わせた関数や,関数から関数を呼び出す構造のプログラムを記述できる
| ループや条件分岐を組み合わせ関数を含むプログラムを記述できる
| ループ,条件分岐,関数を組み合わせたプログラムを記述できない
|
| コンピュータにおける実数の取り扱いについて理解し,基礎的な数値計算アルゴリズムを説明できる
| コンピュータにおける実数の取り扱いや基礎的な数値計算アルゴリズムを説明できる
| コンピュータにおける実数の取り扱いについて理解し,基礎的な数値計算アルゴリズムを説明できる
| コンピュータにおける実数の取り扱いについて理解し,基礎的な数値計算アルゴリズムを説明できない
|
| 探索や整列に複数のアルゴリズムがあることを知っており,基本的なアルゴリズムのプログラムを記述できる
| 基本的な探索と整列のアルゴリズムのプログラムを複数記述できる
| 基本的な探索と整列のアルゴリズムのプログラムを少なくとも1つ以上記述できる
| 探索や整列のアルゴリズムを記述することができない
|
| スタック,キューといった基本的なデータ構造やクラスを用いたプログラムを記述できる
| スタック,キューといった基本的なデータ構造やクラスを適切に用いたプログラムを作成できる
| スタック,キューといった基本的なデータ構造やクラスを用いたプログラムを記述できる
| スタック,キューといった基本的なデータ構造やクラスを用いたプログラムを記述できない
|
学科の到達目標項目との関係
教育方法等
概要:
多くの例題を通してプログラムの作成方法に慣れ,プログラムの考え方の基礎を固めるとともに基本的な問題の解決手法や基礎的なアルゴリズムを学ぶ。探索や整列といった具体的な動作が,代入・演算・制御などプログラムの基本動作の組み合わせで記述できることを理解する。また,コンピュータで実数での扱いについて理解し,基礎的な数値計算アルゴリズムを理解する。
授業の進め方・方法:
毎回,配布した資料に従って授業を進める。各授業の前半では基礎的な動作をするプログラムを解説し,後半に出題された課題に取り組んでもらう。基本課題を理解した後,応用問題や発展問題に挑戦してもらう。また,授業内容の理解確認のための小テストを毎回実施する.ただし,第4回は第1回から第4回までのまとめテスト,第12回は第9回から第11回までのまとめテストを実施する.
注意点:
プログラムを表面的に眺めるのではなく,動作を深く考えること。そのため,課題プログラムを作成する前に,資料のサンプルプログラムの動作や計算過程を理解し,何も見ずにもう一度書いてみることを推奨する。プログラムを理解する上で,次の3点は肝要である。
1) 少し変えてみる。プログラムにおいてほんの少しの文字の違いは,大きな動作の違いとなる
2) 木でなく森を見る。代入,演算,制御(forやif),それぞれ単体でなく塊で何かをしている
3) 動作を図にする。プログラムの動作が図示できるのは理解できた証拠
質問や相談は,直接,あるいはメールで随時受け付けます。また教員室前に所在を示し,在室時間等も掲示しておくので活用してください。
〇自学について
(事前学習)
事前に配布する授業資料をよく読んでおくこと.
(事後学習)
授業資料の要点をノートにまとめるなど,内容の理解に努めること.
課題はプログラムを作成するだけにとどまらず,なぜそのようなコードを記述したのかを理由を説明できるよう努めること.
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
| 後期 |
| 3rdQ |
| 1週 |
ガイダンス,振り返り,コンピュータの内部表現 |
・コンピュータ内におけるデータの表現方法について説明できる
|
| 2週 |
複数のif文の組み合わせ |
・論理演算子または複数のif文の組み合わせを使って複雑な条件を表現できる.
|
| 3週 |
制御構造の組み合わせ |
・選択処理(if文),反復処理(for文,while文)を組み合わせたプログラムを記述できる.
|
| 4週 |
まとめテスト1,関数 |
・引数,戻り値について説明することができる. ・関数から別の関数を呼び出すことができる.
|
| 5週 |
実数,浮動小数点と誤差 |
・実数をコンピュータで表現する際に発生する誤差について説明できる.
|
| 6週 |
数値計算 |
・基礎的な数値計算アルゴリズムについて説明できる.
|
| 7週 |
基本的なデータ構造 |
・様々なデータ構造が存在することを知っている. ・リストを使ってスタックやキューを実装できる.
|
| 8週 |
[後期中間試験] |
|
| 4thQ |
| 9週 |
クラス1 |
・クラスについて理解し,クラスおよびインスタンスを定義できる.
|
| 10週 |
クラス2 |
・汎化および継承について理解し,クラス図からクラス間の関係を読み取ることができる
|
| 11週 |
探索 |
・インデクス,ハッシュを使った探索を理解し,複数の探索ルゴリズムがあることが説明できる. ・計算量について説明できる
|
| 12週 |
まとめテスト2,整列 |
・挿入ソート,シェルソートについて理解し,複数の整列アルゴリズムがあることが説明できる.
|
| 13週 |
応用問題(1) |
・要件に応じたプログラムを作成できる
|
| 14週 |
応用問題(2) |
・要件に応じたプログラムを作成できる
|
| 15週 |
[後期定期試験] |
|
| 16週 |
答案返却と解説、まとめ |
|
モデルコアカリキュラムの学習内容と到達目標
| 分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
| 基礎的能力 | 工学基礎・ビジネス基礎 | 情報リテラシー | 情報リテラシー | 基礎的なプログラムを作成できる。 | 2 | 後2,後3,後4,後7,後9,後10 |
| 計算機を用いて数学的な処理を行うことができる。 | 2 | 後5,後6 |
| 基礎的なアルゴリズムについて理解し、任意のプログラミング言語を用いて記述できる。 | 2 | 後11,後12,後13,後14 |
| 同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 2 | 後11,後12 |
| 専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | プログラミングの基本的な構造を理解し、プログラムを記述できる。 | 2 | 後1,後2,後3 |
| サブルーチンの概念を理解し、これらを含むプログラムを記述できる。 | 2 | 後4 |
| 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 1 | 後13,後14 |
| 与えられたソースプログラムを解析し、プログラムの動作を予測できる。 | 1 | 後13,後14 |
| ソフトウェア生成に必要なツールを使い、ソースプログラムを実行できる。 | 1 | 後13,後14 |
| ソフトウェア | アルゴリズムの概念を理解し、与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 1 | 後9 |
| 計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 2 | 後1,後5 |
| 分野別の工学実験・実習能力 | 情報系分野(実験・実習能力) | 情報系分野(実験・実習能力) | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 2 | 後14,後15 |
| 標準的な方法を用いて、作成するプログラムの設計図を作成できる。 | 1 | 後14,後15 |
評価割合
| 試験 | 課題 | まとめ小テスト | 小テスト | 合計 |
| 総合評価割合 | 60 | 20 | 10 | 10 | 100 |
| 基礎的能力 | 30 | 10 | 5 | 5 | 50 |
| 専門的能力 | 30 | 10 | 5 | 5 | 50 |
| 分野横断的能力 | 0 | 0 | 0 | 0 | 0 |