シラバス参照

授業情報/Class Information

科目一覧へ戻る 2024/03/27 現在

基本情報/Basic Information

遠隔授業(授業回数全体の半分以上)の場合は、科目名の先頭に◆が付加されています(2023年度以降)
開講科目名
/Course
プログラミング言語2/Programming Languages 2
時間割コード
/Course Code
S1407840_S1
開講所属
/Course Offered by
システム工学部/Faculty of Systems Engineering
ターム・学期
/Term・Semester
2024年度/Academic Year  第2クォーター/2Q
曜限
/Day, Period
木/Thu 1
開講区分
/Semester offered
第2クォーター/2Q
単位数
/Credits
1.0
学年
/Year
3,4
主担当教員
/Main Instructor
福安 直樹
科目区分
/Course Group
_ 
授業形態
/Lecture Form
講義
教室
/Classroom
北1号館A101/北1号館A101
開講形態
/Course Format
ディプロマポリシー情報
/Diploma Policy

担当教員情報/Instructor Information

教員名
/Instructor
教員所属名
/Affiliation
福安 直樹 システム工学部(教員)
伊原 彰紀 システム工学部(教員)
授業の概要・ねらい
/Course Aims
プログラム開発においては,プログラムの実装技術だけでなく,効率的なデバッグや効果的なテストの技術も必要である.
また,リファクタリングにより保守性の向上が図られることもある.この授業では,デバッグやテスト,リファクタリングといったプログラム開発に関連する技術について学習するとともに,これらを支援するプログラム解析技術を理解することで,より品質の高いプログラムが実装できるようになることを目指す.
到達目標
/Course Objectives
・効率的にバグを見つけて修正することができる.
・プログラムスライスを計算することができる.
・適切なテスト技法を選択しテストケースを記述することができる.
・プログラムの品質を評価するためのコードメトリクスについて説明できる.
・プログラムの保守性を向上するためのリファクタリングについて説明できる.
成績評価の方法・基準
/Grading Policies/Criteria
プログラムのデバッグやテスト技法,リファクタリング技法に対する理解度を,毎回の授業中に指示する課題(70%)と最終課題(30%)の取り組み状況およびその内容により評価する.品質の高いプログラムを実装するためのデバッグやテスト,リファクタリングの各技術について理解できれば合格とする.
教科書
/Textbook
記載事項なし
参考書・参考文献
/Reference Book
プログラミング作法(B.W.カーニハン/R.パイク 著、福崎俊博 訳、ISBN 978-4048930529、3,080円)
ソフトウェア・テストの技法 第2版(J.マイヤーズ/T.バジェット/M.トーマス/C.サンドラー 著、長尾真/松尾正信 訳、ISBN 978-4764903296、3,520円)
リファクタリング 第2版~既存のコードを安全に改善する(M.ファウラー 著、 児玉公信/友野晶夫/平澤章/梅澤真史 訳、ISBN 978-4274224546、4,840円)
リーダブルコード(D.ボズウェル/T.フォシェ 著、角征典 訳、ISBN 978-4873115658、2,640円)
履修上の注意 ・メッセージ
/Notice for Students
数百行程度のプログラミング経験(言語は問わない)があることを前提としている。説明は主にC言語を用いて行うが、内容に応じて他の言語を使用することもある。
履修する上で必要な事項
/Prerequisite
課題実施(プログラミングやレポート作成)のために授業内でPCを使用するので、各自持参すること。
履修を推奨する関連科目
/Related Courses
プログラミング言語1
授業時間外学修についての指示
/Instructions for studying outside class hours
授業計画に沿って、計30時間の授業時間外学修(予習・復習など)を⾏うことが必要である。また、授業内容に関連する課題への調査・考察を含めた⾃主的学修を求める。
その他連絡事項
/Other messages
本講義のガイダンス資料を事前公開しています.
https://drive.google.com/file/d/1SZYOEOJ6T07AcO-cBNYaOlBGV_e-zmdl/view?usp=sharing
授業理解を深める方法
/How to deepen your understanding of classes
通常の課題に加えて、毎回の授業の中で発展的な課題を提示することにより、各自の理解度に応じた学習を促す。
【「アクティブ・ラーニング」実施要項 ⑦】
オフィスアワー
/Office Hours
非常勤講師のため、授業前後に対応
科目ナンバリング
/Course Numbering
S60053J11100K315
No. 回(日時)
/Time (date and time)
主題と位置付け(担当)
/Subjects and instructor's position
学習方法と内容
/Methods and contents
備考
/Notes
1 1 プログラムのデバッグ シラバスおよび授業の進め方の説明
バグの再現とデバッグ
デバッグツールの活用
2 2 プログラム解析 静的解析
プロファイラによる解析
動的解析に基づくプログラムの変更
3 3 プログラムスライシング 静的依存関係
スタティックスライス
スライシング技術の活用
4 4 プログラムのテスト アサーション
カバレッジ
テスティングフレームワーク
5 5 メトリクス コードメトリクス
メトリクス計測ツール
オブジェクト指向メトリクス
6 6 リファクタリング リファクタリングカタログ
リファクタリングの例
不吉な匂いとリファクタリング
7 7 ソフトウェアの品質 品質特性
リーダブルコード
8 8 まとめ 学習内容のおさらい
最終課題の実施

科目一覧へ戻る