授業科目名(和文) [Course] |
ソフトウェア工学 <ソフトウェア設計> |
授業科目名(英文) [Course] |
Software Engineering <Software Design> |
学部(研究科) [Faculty] |
情報工学部 |
学科(専攻) [Department] |
情報システム工学科 |
担当教員(○:代表教員) [Principle Instructor(○) and Instructors] |
○磯崎 秀樹 自室番号(2506)、電子メール(isozaki**cse.oka-pu.ac.jp) ※利用の際は,** を @に置き換えてください |
単位数 [Point(Credit)] |
後期 2単位 |
対象学生 [Eligible students] |
3年次生 |
授業概略と目標 [Course description and Objects] |
ソフトウェアを自分で作ったり、他人に作ってもらう時に、知っていれば簡単にできることに無駄な時間やお金をかけたり、すでにあるものを再発明してしまうことがある。 そうした失敗をしないように、「ソフトウェア作成の常識」を身につける。 |
到達目標 [Learning Goal] |
・オープンソースソフトウェア(OSS)をインストールできるようになる。 ・Unix、Python、正規表現、XMLを使いこなせるようになる。 ・バージョン管理の必要性を説明できる。 |
授業計画とスケジュール [Course schedule] |
1. OSSのインストール 便利なソフトのソースコードがたくさん公開されている。これらをインストールして使いこなすには、Unixの知識が必要である。 そのために必要な知識を学ぶ。 2. バージョン管理システム OSSを入手しようとすると、gitなどのバージョン管理システムの知識が必要になることがある。バージョン管理とは何か、なぜ必要かを学ぶ。 3. Unixの哲学とツール UnixはWindowsとはまったく異なる思想に基づいている。その哲学とツールを学ぶ。 4. Python Pythonは、C言語やJavaより気楽に使えて、かつ機能の豊富な人気のプログラミング言語である。 5. XML 最近のソフトの多くは、データをXMLで出力する。そこで、PythonでXMLを読み書きする方法を学ぶ。 6. 正規表現 Unixで、ある特定の文字列を含むファイルを見つけるにはgrepというコマンドを用いる。 grepは「正規表現」で書いたパターンを見つけられる。Pythonではもっと複雑な正規表現が利用できる。 7. Pythonのオブジェクト指向 Pythonでもオブジェクト指向プログラミングができるが、Javaとは若干違っている。 8. 再帰関数 木構造データを扱うプログラムは、再帰関数で書くと簡単なことが多い。再帰関数の考え方に慣れる。 9. 大規模ソフトウェアの開発法 「ウォーターフォールモデル」と呼ばれる古典的な開発法に対して、最近はもっと柔軟な開発手法が提唱されている。 10. 並列処理 マルチプロセスとマルチスレッドの違いや、MapReduce・GPGPUなどについて学ぶ。 11. リスト、タプル、辞書、集合 Pythonに組み込まれているデータ構造について学ぶ。 12. 文章から高頻度語を求める。 Pythonのタプル・リストなどのデータ構造を使いこなすと、高頻度語を簡単に求めることができる。 そのやり方を学ぶ。 13. 復習 14. 復習 15. 復習 |
成績評価方法と基準 [Grading policy (Evaluation)] |
毎回の授業の初めに行う復習(15%)と期末試験(85%)で評価する。 |
開講年度 [Year of the course] |
28 |