プログラミング演習ⅢA

科目基礎情報

学校 木更津工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 プログラミング演習ⅢA
科目番号 0134 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 1
開設学科 情報工学科 対象学年 4
開設期 前期 週時間数 2
教科書/教材 (3年までのプログラミングの教科書)
担当教員 丸山 真佐夫

到達目標

数百行程度のプログラム規模が想定される問題に対して、それを解くためのプログラムを設計、実装し、文書化するソフトウェア開発のプロセスを遂行する基礎的な能力を習得する。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
プログラム設計能力設定された問題を解くための優れたプログラムを設計できる。設定された問題を解くためのプログラムを設計できる。設定された問題を解くためのプログラムを設計できない。
プログラム実装能力可読性、保守性に優れたプログラムを実装できる。設定された問題を解決するプログラムを実装できる。設定された問題を解決するプログラムを実装できない。
ドキュメンテーション能力保守、拡張作業の観点から優れたプログラム使用の文書化ができる。プログラムの仕様を文書化できる。プログラムの仕様を文書化できない。

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

教育方法等

概要:
小さなゲームを題材として、プログラムの設計、実装、文書化の手法を学習する。また、グループでのプログラム開発の過程として設計を行う。
授業の進め方・方法:
教員からの指示は最小限にとどめ、受講者自身の考えにもとづいて設計、実装する。
注意点:
これまでに講義で学習したデータ構造、アルゴリズムの知識を、現実の問題、実際のプログラミングに対して積極的に適用してみること。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 hangmanプログラムの作成(1):設計 スペリングクイズゲーム hangman の機能を整理できる。
2週 hangmanプログラムの作成(2):設計 hangman の機能を満たすプログラムを設計できる。
3週 hangmanプログラムの作成(3):実装 設計にもとづいて各関数等を実装できる。
4週 hangmanプログラムの作成(4):実装 設計にもとづいて各関数等を実装できる。
5週 hangmanプログラムの作成(5):実装 設計にもとづいて各関数等を実装できる。
6週 hangmanプログラムの作成(6):実装 設計にもとづいて各関数等を実装できる。
7週 hangmanプログラムの作成(7):テスト 作成したプログラムのテスト項目を考え、テストを実行できる。
8週 hangmanプログラムの作成(8):文書化 作成したプログラムの仕様、テストの内容を文書化できる。
2ndQ
9週 msweeperプログラムの作成(1):設計 「マインスイーパ」に似たルールのゲーム msweeper の機能を整理できる。
10週 msweeperプログラムの作成(2):設計 適切な関数分割を意識しながら,msweeper の機能を満たすプログラムを設計できる。
11週 msweeperプログラムの作成(3):実装 設計にもとづいて各関数等を実装できる。
12週 msweeperプログラムの作成(4):実装 設計にもとづいて各関数等を実装できる。
13週 msweeperプログラムの作成(5):実装 設計にもとづいて各関数等を実装できる。
14週 msweeperプログラムの作成(6):実装 設計にもとづいて各関数等を実装できる。
15週 msweeperプログラムの作成(7):実装 設計にもとづいて各関数等を実装できる。
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。4
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。4
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。4
ソフトウェアアルゴリズムの概念を説明できる。4
与えられたアルゴリズムが問題を解決していく過程を説明できる。4
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4
整列、探索など、基本的なアルゴリズムについて説明できる。4
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4
ソフトウェアを中心としたシステム開発のプロセスを説明できる。4
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4

評価割合

レポート合計
総合評価割合100100
プログラム設計能力4040
プログラム実装能力4040
ドキュメンテーション能力2020