ソフトウェア設計工学

科目基礎情報

学校 熊本高等専門学校 開講年度 令和02年度 (2020年度)
授業科目 ソフトウェア設計工学
科目番号 AE1125 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 電子情報システム工学専攻 対象学年 専1
開設期 前期 週時間数 2
教科書/教材 オンライン教材と配布資料
担当教員 孫 寧平

到達目標

 優れたソフトウェアを生み出す素地となる基本原則(簡潔性, 明瞭性,一般性,自動化)などを理解し応用できる.アルゴリズムやデータ構造を自分のプログラム中に活かせる方法をマスターできる.デバッグ,テスト,性能改善技術を理解し応用できる.実際のプログラミング作業における重要なテーマを個別に取り上げて演習などを通して効率の良いプログラムの設計と実装できる.また,開発現場でのユーザーの要求分析,ソフトウェア品質の管理方法を理解できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
プログラミングのスタイルについての理解を演習課題で評価する.プログラミングスタイルの重要性をよく理解し応用できる.プログラミングスタイルの重要性を理解し応用できる.プログラミングスタイルの重要性を理解し応用できない.
アルゴリズムとデータ構造とプログラムの設計と実装技法について演習で評価する.探索やソート,ハッシュ法などのアルゴリズム及びデータ構造についてよく理解し,自力でプログラミングができる.  アルゴリズムとデータ構造の設計及び構成についてよく理解し,実例としてのマルコフ連鎖による文章生成プログラムを設計と実装できる.探索やソート,ハッシュ法などのアルゴリズム及びデータ構造について理解し,プログラミングができる.  アルゴリズムとデータ構造の設計及び構成について理解し,実例としてのマルコフ連鎖による文章生成プログラムを設計と実装できる.探索やソート,ハッシュ法などのアルゴリズム及びデータ構造について理解できない.プログラミングができない.  アルゴリズムとデータ構造の設計及び構成について理解できない.実例としてのマルコフ連鎖による文章生成プログラムを設計と実装できない.
デバッグ・テスト手法の理解について実技試験で評価する.デバッグする戦略と戦術をよく理解し応用もできる.課題に要求されたデバッグとテストについて独創性ある考え方があり,学んだ方法を適用できる.デバッグする戦略と戦術をよく理解し応用もできる.課題に要求されたデバッグとテストについて学んだ方法を適用できる.デバッグする戦略と戦術を理解していない.課題に要求されたデバッグとテストについて学んだ方法を適用できない.

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

教育方法等

概要:
より良いプログラムを作ることは情報工学(IT)技術者としては欠かせない重要なことである.明瞭で,簡潔で,エレガントで,どんな状況でも正しく機能し,リソースを効率よく経済的に使用し,ニーズの変化に柔軟に対応でき,どんな環境にも難なく移植できるプログラムやソフトウェア作成のための考え方と技法を学ぶ.演習も行う.
授業の進め方・方法:
 講義と演習を交互に行う形で進める.
 実技試験,演習レポートで評価する.データ構造・アルゴリズムをプログラミングを通じてデザイン及び作成し,それぞれのアルゴリズム用いて課題を解決する能力を評価する.演習レポートの提出期限は課題提示と同時に示し,期限に遅れて提出されたレポートに対し評価点は減点する.出席状況を考慮し欠課1時間に1点を減点する.実技試験(60%),演習レポート(40%)で評価する.60%以上の得点率で目標達成とみなす.
注意点:
規定授業時間数は30時間,本科目は1単位あたり30時間程度の自学自習が求められる.
講義での説明を良く聞き,演習課題に積極的に取り組むことで,知識を身に付ける.
C/C++/Javaなどのプログラミング言語を用いた実際のプログラミング例を解析しながらプログラムの設計,デバッグ,テスト,性能改善などのプログラミング技術を身につけること,優れたアルゴリズムとデータ構造を自分のプログラムの中に活かせることを望まれる.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 概説 本授業の概要,授業方針,評価方法について説明する.プログラミング技法について紹介する.
2週 プログラミングのスタイル 良きプログラミングには良いスタイルが不可欠である.プログラミングスタイルの重要性を理解し応用できる.
3週 アルゴリズムとデータ構造(1) 探索やハッシュ法などのアルゴリズム及びデータ構造について理解し,プログラミング方法を理解できる.
4週 アルゴリズムとデータ構造(2) ソートなどのアルゴリズム及びデータ構造について理解し,プログラミング方法を理解できる.
5週 アルゴリズムとデータ構造(3) データ構造とアルゴリズムの設計と実装について実例を取り上げ,プログラミング方法を分析できる.
6週 アルゴリズムとデータ構造(4) アルゴリズムとデータ構造の設計及び構成について理解し,実例を取り上げ,その設計と実装方法を説明できる.
7週 プログラムの設計と実装(1) プログラムの設計と実装について,,実例を取り上げ,その設計と実装を説明できる.
8週 プログラムの設計と実装(2) プログラムの設計と実装について,,実例を取り上げ,その設計と実装を説明できる.
2ndQ
9週 プログラムの設計と実装(3) プログラムの設計と実装について,,実例を取り上げ,その設計と実装を説明できる.
10週 インターフェイス インターフェイスの設計と実装に関する抽象化,情報の隠蔽,リソース管理,エラー処理などの問題について理解し説明できる.
11週 デバッグ デバッグする戦略と戦術を理解し応用できる.よくあるバグの症状などを覚えるほか,デバッグ方法を適用できる.
12週 テスト テスト手法について理解でき,適用できる.
13週 性能改善 プログラムが効率よくリソースを利用できるようにしつつ,効率が向上しても正しく安定した動作が保たれるようにする秩序立った方法を理解し応用できる.プログラムの性能を解析や計測する方法を適用できる.
14週 ソフトウェア品質の管理 開発現場でのユーザーの要求分析,ソフトウェア品質の管理方法を理解し応用できる.
15週 まとめ
16週 定期試験答案返却 段階的に演習課題を与え,理解を確かめ,成績は演習課題の完成による評価する.

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

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

実技試験演習レポート合計
総合評価割合6040100
基礎的能力251540
専門的能力352560
分野横断的能力000