プログラミング2

科目基礎情報

学校 鳥羽商船高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング2
科目番号 23201 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 情報機械システム工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 新・明解Pythonで学ぶアルゴリズムとデータ構造 柴田望洋 ソフトバンククリエイティブ
担当教員 江崎 修央,中古賀 理

到達目標

(1)整列や検索をはじめとする基本的なアルゴリズムの動作について説明できる。
(2)スタックやキューなどデータの保持の基本的な仕組みについて説明できる。
(3)アルゴリズムの違いにより時間計算量を割り出し比較検討ができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1整列や検索などのアルゴリズムについて複数の方法の違いについて説明できる。整列や検索などについて、少なくとも一つのアルゴリズムの動作を説明できる。整列や検索のアルゴリズムの動作説明がひとつもできない。
評価項目2スタックやキューなどのデータの保持の仕組みを理解し、それぞれの用途について説明できる。基本的なデータ保持方法について、少なくとも一つの方法を説明できる。基本的なデータ保持方法について、一つの方法も説明できない。
評価項目3アルゴリズムごとに時間計算量を割り出し、比較検討ができる。基礎的なアルゴリズムの時間計算量を割り出すことができる。時間計算量を割り出すことができない。

学科の到達目標項目との関係

教育方法等

概要:
アルゴリズムとデータ構造の基礎を学習し、基本的なアルゴリズムの動作原理について説明できるようになる。
また、それぞれのアルゴリズムにおいて時間的計算量を割り出し、効率的なアルゴリズムについて検討を行う。
さらに、スタックやキューなどデータの保持方法について理解し、適切な方法を選択できるようにする。
授業の進め方・方法:
・講義内容は,Python(もしくはC言語)を用いて説明をする。
・講義で取り上げたアルゴリズムは,授業中に行う演習問題,予習や復習として与える課題について,実際にプログラムを作成することで理解を深める。
注意点:
・出題された予習、復習を毎週行い、レポートとして提出すること。また、期限には遅れないこと。
・授業で不明な点は、積極的に質問すること。質問は対面の他、Teamsのグループサイトでも受け付ける。
・コンピュータ演習室で授業を実施するが、自らのコンピュータを積極的に利用することを推奨する。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス 授業内容の工学的位置づけを説明できる.世の中で使われているアルゴリズムの具体例が説明できる.
2週 アルゴリズムと基本データ構造1 アルゴリズムの概要について説明できる.
3週 アルゴリズムと基本データ構造2 データ構造の概要について説明できる.
4週 探索1 探索アルゴリズムの概要を説明できる.
5週 探索2 いくつかの探索アルゴリズムの詳細を説明できる.
6週 探索3 いくつかの探索プログラムを作成し動作確認できる.
7週 中間試験 中間試験
8週 スタックとキュー1 スタックの概念を理解し、実現方法を説明できる。
2ndQ
9週 スタックとキュー2 配列やリングバッファによるキューの実現について説明できる
10週 再帰アルゴリズム1 再帰の基本的な考え方について説明できる。
11週 再帰アルゴリズム2 ハノイの塔を例題として再帰アルゴリズムについて説明できる。
12週 ソート1 バブルソートをはじめとする基本的なソート方法を説明できる
13週 ソート2 クイックソートの動作原理について説明できる
14週 ソート3 ヒープソートやマージソートなどの動作原理について説明できる
15週 定期試験 定期試験
16週 試験解説と総括 間違った問題を解くことができる.

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野ソフトウェアアルゴリズムの概念を説明できる。4前1,前2,前4,前5,前8,前9,前11,前12
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前4,前5,前8,前9,前11,前12
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前4,前5,前8,前9,前11,前12
整列、探索など、基本的なアルゴリズムについて説明できる。4前4,前5
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4前4,前5
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4前8,前9
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4前8,前9
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4前10
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4前4,前5
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4前4,前5
その他の学習内容少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。4前1,前2,前3,前4,前5,前6,前8,前9,前10,前11,前12,前13,前14
少なくとも一つの具体的なオフィススイート等を使って、文書作成や図表作成ができ、報告書やプレゼンテーション資料を作成できる。4前3,前6,前10,前14
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】要求仕様に従って標準的な手法によりプログラムを設計し、適切な実行結果を得ることができる。4

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合60000400100
基礎的能力0000000
専門的能力60000400100
分野横断的能力0000000