2021/01/30 現在 |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
ヴァジェニン アレクサンダー |
担当教員名 /Instructor |
ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/31 |
---|---|
授業の概要 /Course outline |
Parallel and Internet computing is a science concerning in solving a problem by giving parts of the problem to many computers to solve, and then combining the solutions for the parts into a solution for the problem. The course focuses on comparative and historical analysis of different approaches to parallel and Internet computing. Some specific topics of Software Engineering related to the reliability and accuracy of parallel computations are discussed. We show and compare also different parallel programming paradigms including SIMD, Message Passing and Shared Memory Programming as well as Client-Server and Distributed Objects Architectures. |
授業の目的と到達目標 /Objectives and attainment goals |
At the end of this course, the student should be able to: - Estimate the quality of parallel and distributed algorithms and programs, - Distinguish advantages and difficulties of parallel and Internet computing, - Explain some details of data parallel processing, - Know how to design coarse- and fine-grained parallel algorithms, - Manage the client-server and Internet application design. |
授業スケジュール /Class schedule |
1.Introduction in Modern High-Performance Computing 2.Metrics of Parallel Programs and Algorithms 3-4.Network Topologies and Properties 5.Individual and Collective Operations on Networks 6-7.Classifications of Parallel Programming Models 8.Parallel Programming Models: SIMD -programming 9.Distributed Programming Models: Multiprocessor architectures 10-11.Client-server Programming Models 12.Parallel Computing and Accuracy of Results 10.Advanced Distributed Computing Paradigms 11.Multi-core Programming Platform (optional) 12.WEB-based High-Performance Computing (optional) |
教科書 /Textbook(s) |
1.Materials collected from books, journals and proceedings papers and provided by the instructor 2.Parallel and Distributed Computing, by Claudia Leopold, John Wiley and Sons, Inc. 3. Scalable Parallel Computing, by K. Hwang, Zh. Xu, McGraw-Hill. 4. An Introduction to Parallel Programming by Peter Pacheco, Publisher: Elsevier |
成績評価の方法・基準 /Grading method/criteria |
Students should be prompt for lectures, labs, and exams. Programming assignments must be turned in by the stated date and time. To pass this course, all the requirements must be satisfactorily completed. The course final grade includes the following parts 1. Two quizes (40 points each) 2. Design Project (20 points) |
履修上の留意点 /Note for course registration |
The course instructor Alexander Vazhenin has practical working experience. He worked for the Computer Center of Siberian Division of the Russian Academy of Sciences for 15 years where he was involved in R&D of software design and operating systems. Based on his experience, he can teach the basics of Software Engineering. General computer organization, algorithms and data structures, Software Engineering I and II as well as a high-level language like C, Java, etc. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
1.http://sealpv2.u-aizu.ac.jp/ - Course management system. 2.Computer Networks and Internets, by D. E. Comer, Prentice-Hall. 3.Parallel Processing in Cellular Arrays, by Ya. Fet, Taunton, UK, Research Studies Press. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
バーラ サバシュ |
担当教員名 /Instructor |
バーラ サバシュ |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/31 |
---|---|
授業の概要 /Course outline |
The course introduces distributed systems- Cloud Computing, Peer-to-peer computing. Advanced topics such as mobile communication systems and replication of databases provide case examples. Concepts are studied by taking these example cases for analysis. It covers the internal architecture of Distributed systems. |
授業の目的と到達目標 /Objectives and attainment goals |
To understand the following, - Architecture of a Distributed System, - Fault-tolerance in a multinode system, - Data Recovery and Process Recovery, - Dependency Tracking in Message Passing Systems, - Data Transparency and site Autonomy, - Transaction Management in Distributed Databases, |
授業スケジュール /Class schedule |
week 1 Cloud Computing and Edge Computing week 2 Distributed O S week 3 Time and Global States week 4 Operation Systems Support week 5 Distributed File Systems + QUIZ week 6 Transactions and Concurrency week 7 Replication, Failures and Recovery |
教科書 /Textbook(s) |
- Various materials prepared by the instructor. - Distributed Systems: Concepts and Design, by G.Coulouris, J.Dollimore, T. Kindberg, Addision-Wesley, 5rd edition, 2015. - Guide to Reliable Distributed Systems Technologies, K.P. Birman, Springer, March 2012. |
成績評価の方法・基準 /Grading method/criteria |
- Two short quizzes ( 20 points each), One examination ( 30 points ) - Software projects and Assignments ( 30 points ) |
履修上の留意点 /Note for course registration |
Prior study of following courses is recommended - computer networks and database systems |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Books, Course material, lecture slides and notes recommended by the instructor(s), will be provided. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
鈴木 大郎 |
担当教員名 /Instructor |
鈴木 大郎 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/08/04 |
---|---|
授業の概要 /Course outline |
この授業は遠隔授業で行う。 宣言的プログラミングの目的は、プログラミングという作業を、解きたい問題がもつ数学的、論理的な性質を宣言的に記述する作業にすることである。宣言的に書かれたプログラムに対して、数学的、論理的な手法を使ってプログラムに関する性質やその正当性を調べることができる。 代表的な宣言的プログラミングは、関数型プログラミング、論理型プログラミング、関数論理プログラミングなどである。この科目では、代表的なプログラミング言語であるHaskellを使って、関数型プログラミングの基礎を学ぶ。 なお、この授業は遠隔授業として実施される。 |
授業の目的と到達目標 /Objectives and attainment goals |
この科目の目的は、履修学生が宣言的プログラミング、とくに関数型プログラミングの基礎についての知識を得ることである。 この科目終了後、履修学生は以下のことができるようになる。 1. 手続き的プログラミングと宣言的プログラミングの違いを説明できる。 2. 関数型プログラミングの本質が何かについて説明できる。 3. 高階関数、多相型、遅延評価などが何を意味するか説明できる。 4. 高階関数、ユーザ定義の多相型、無限のデータ構造などを使った関数型プログラムを書くことができる。 5. 関数型プログラムの性質に関する数学的な推論を行うことができる。 6. 標準的なアルゴリズムを使った関数型プログラムを書くことができる。 |
授業スケジュール /Class schedule |
1. 宣言的プログラミングと関数型プログラミングの概要 2. データ型と定義 3. リストによるプログラミング I: リスト内包表記、多層型など 4. リストによるプログラミング II: リスト上の再帰的プログラミング 5. 関数型プログラムの推論 6. 高階関数プログラミング (1): 引数としての関数 7. 高階関数プログラミング (2): 戻り値としての関数 8. 高階関数プログラミング (3): 事例学習 9. 型クラス 10. 代数的データ型 11. 遅延評価 12. 遅延評価と無限のデータ構造によるプログラミング 13. I/O モナド 14. 一般的なモナド 各回の授業とその内容との対応は、授業の進み具合により変更になることがある。 |
教科書 /Textbook(s) |
S.Thompson, The Craft of Functional Programming, 3rd Edition. Addison-Wesley, ISBN: 978-0201882957 |
成績評価の方法・基準 /Grading method/criteria |
成績評価は以下の2つで行う。 1. 関数型プログラミングの課題: 授業ごとに課題を課す。履修者は1週間後までに課題を提出しなければならない。 2. 教科書の1章分の発表: すべての履修者に1回の発表が課せられる。 評価基準は以下の通り 70% 課題 30% 発表 |
履修上の留意点 /Note for course registration |
履修者は、学部の授業である P05: コンピュータ言語論を履修していることが望ましい。 |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
1. Haskell 2010 Language Report URL: http://www.haskell.org/onlinereport/haskell2010/ 2. J.Hughes, なぜ関数プログラミングは重要か URL: http://www.sampou.org/haskell/article/whyfp.html(翻訳) URL: http://www.md.chalmers.se/~rjmh/Papers/whyfp.html(英文) 3. R.Bird著, 関数プログラミング入門. オーム社, ISBN: 978-4274068966 4. M.Lipova著, すごいHaskellたのしく学ぼう!. オーム社, ISBN: 978-4274068850 5. G.Hutton著, プログラミングHaskell. オーム社, ISBN: 978-4274067815 6. R.Bird著, Pearls of Functional Algorithm Design. Cambridge University Press, ISBN: 978-0521513388 7. 青木峰郎, ふつうのHaskellプログラミング. ソフトバンククリエイティブ, ISBN: 978-4797336023 |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
ハミード サジ |
担当教員名 /Instructor |
ハミード サジ |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/23 |
---|---|
授業の概要 /Course outline |
This course is an introduction to the OpenCL parallel programming framework. This framework allows one to develop parallel programs for a wide variety of computing hardware including many core CPUs, GPGPUs and FPGAs. Students will develop simple models for oceanic and atmospheric phenomenon and apply OpenCL techniques to accelerate the codes on various hardware. |
授業の目的と到達目標 /Objectives and attainment goals |
The students will learn about many-core architectures and how to program them using CUDA and OpenCL languages. The course will heavily involve coding projects and assignments. |
授業スケジュール /Class schedule |
1. Numerical solution of differential equations 2. Oceanic and Atmospheric Modeling 3. Introduction to Heterogeneous Computing 4. Overview of CUDA 5. Kernel based parallel programming 6. Programming in OpenCL |
教科書 /Textbook(s) |
Numerical Analysis for Engineers and Scientists, G. Miller, Cambridge University Press Ocean Modeling for Beginners using Open-Source Software J Kampf, Springer OpenCL in Action, M. Scorpino, Manning |
成績評価の方法・基準 /Grading method/criteria |
Assignments (40%), Project Reports (60%) |
履修上の留意点 /Note for course registration |
Computer architecture, mathematics, algorithms and programming (undergraduate). High Performance Computing (CSC09, Graduate school) Students are expected to have good knowledge of programming in C or Fortran. Exposure to parallel programming and numerical algorithms are desireable. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
http://developer.amd.com/tools-and-sdks/opencl-zone/opencl-resources/introductory-tutorial-to-opencl/ https://opencl.codeplex.com/wikipage?title=OpenCL%20Tutorials |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 前期集中 /1st Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
1.0 |
責任者 /Coordinator |
竹村 司(AIG損保) |
担当教員名 /Instructor |
竹村 司(AIG損保), ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/30 |
---|---|
授業の概要 /Course outline |
One of the most important issues the software industry affronts is diversity of platforms. Model-driven software development is spotlighted as a technology to deal with diversity of platforms because we need to construct software systems across multiple platforms in different architecture or software system tolerates change of platforms. In the model-driven software development, we can deal with diversity of platforms by building platform-independent models and transforming them into platform-specific models. The technology also aims to improvement of productivity by generating code from the models. *Lectures will be given in Japanese This course covers model-driven software development from embedded software development to business application development. |
授業の目的と到達目標 /Objectives and attainment goals |
※Lectures are given in Japanese The aim of the course is to learn basics of object oriented analysis, object oriented design, and model driven development. At the end of the course the student can: 1. Explain relationship between abstraction and modeling. 2. Explain overview of object oriented analysis. 3. Explain overview and purpose of each diagram defined in UML. 4. Create use cases, class diagrams, sequence diagrams, and state machine diagrams by using UML. 5. Reason properties of functional programs in mathematical way. 6. Write functional programs using standard algorithms. |
授業スケジュール /Class schedule |
The schedule of the course below is given in 7 lectures: 1.Model and Abstraction 2.Overivew of UML Diagrams 3.Model and Meta Model 4.Object Oriented Analysis and Design 5.Use Case Diagram and Use Case Description 6.Domain Modeling 7.Business Process Model 8.Embedded System and Modeling |
教科書 /Textbook(s) |
Hand out materials every lecture |
成績評価の方法・基準 /Grading method/criteria |
The students are evaluated by the following: 1. Assignment on modeling. Each assignment is assigned in every class. The students should submit them by the next lecture. 2. Presentation of result of object oriented analysis. |
履修上の留意点 /Note for course registration |
Nothing Special |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
1.Unified Modeling Language http://www.omg.org/spec/UML/About-UML/ 2.Model Driven Architecture http://www.omg.org/spec/UML/About-UML/ |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 前期集中 /1st Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
カネフ カメン(静岡大) |
担当教員名 /Instructor |
カネフ カメン(静岡大), ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/30 |
---|---|
授業の概要 /Course outline |
This course focuses on advanced problem domain and requirements analysis and engineering, including requirement based solution system characteristics design, documentation, validation, and management. During the course students will acquire technical, analytical, and communication skills by assuming different roles in tackling practical engineering problems. Fundamental concepts, methods, and techniques for development and analysis of project requirements are also studied. The following main topics are covered by the course: -Requirements engineering rationale in the scope of software lifecycle and the different activities it involves -Requirements elucidation techniques including interviews, meetings, questionnaires, reverse engineering, simulations, and cognitive techniques -Communication, negotiation, and conflict resolution skills and strategies -Analyzing, scoping, evolving, and modeling of requirements; architectural implications -Importance of nonfunctional requirements -Security and privacy of information: concerns and threats |
授業の目的と到達目標 /Objectives and attainment goals |
At the end of the course students will: -know how requirements are defined and classified -be able to distinguish and handle standard types of requirements -understand requirements development and analysis approaches -be able to develop requirements (functional and nonfunctional, formal and informal, etc.) -be aware of inter-component influences and environment impact on system solutions |
授業スケジュール /Class schedule |
-Importance of Requirements -Requirements Activities in the System Life Cycle -General Process of Requirements Development -Types of Requirements -System Requirements Development -Requirements Analysis -Environment of a Problem -Dependences Analysis -Gathering Requirements -Practices for Requirements Development and Management -Requirements Quality and Quality Improvement -Knowable Requirements and Manageable Risk -Project Development -Project Evaluation |
教科書 /Textbook(s) |
Lecture notes and a list of publications related to the course objectives will be distributed by the instructor |
成績評価の方法・基準 /Grading method/criteria |
Requirements development and analysis project class work (40%), homework (30%), and examination (30%) |
履修上の留意点 /Note for course registration |
Prerequisites and other related courses which include important concepts relevant to the course: -Basic understanding of software engineering concepts and programming technologies. Courses that could be taken before this course (desirable, but not obligatory): -Software Engineering -Technologies of Programming Courses to be taken simultaneously with this course (strongly recommended): -Software Project Management |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Work experience: The course instructor have worked with different public and private research institutions participating in a number of software design and implementation projects. He has been actively engaged in the process of gathering, analyzing, elucidating, and administering of requirements for many software projects that he has lead and/or managed. 1. Ralph R. Young. The Requirements Engineering Handbook. Artech House, 2004, www.artechhouse.com 2. Elizabeth Hull, Kenneth Jackson, Jeremy Dick, Ian Sommerville. Software Engineering. Addison Wesley. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 前期集中 /1st Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
1.0 |
責任者 /Coordinator |
カネフ カメン(静岡大) |
担当教員名 /Instructor |
カネフ カメン(静岡大), ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/30 |
---|---|
授業の概要 /Course outline |
This course introduces students to state of the art software project management practices. Roles of software project members are discussed, respective management techniques are introduced, and tasks and responsibilities of a software project manager are clarified. Advanced approaches and styles of management suitable for complex software projects are taught and students are encouraged to participate in both computer simulated and real software project management situation. The following main topics are included in the course: -Role and function of project management in software project lifecycle -Modern methodologies for software design, development, testing and implementation -Risks, issues, and critical factors pertinent to successful technology projects -Techniques for planning and management of technology projects -Methods for managing software development teams -Software project planning and tracking technologies |
授業の目的と到達目標 /Objectives and attainment goals |
At the end of the course students will: -be familiar with software system lifecycles and related management activities -understand the specific issues, risks, and factors, critical for the successful implementation of technology projects -know the basic principles and methodologies of software design, development, testing and implementation -master the basic of software development team management |
授業スケジュール /Class schedule |
-Software Project Management Processes -Software Project Management Knowledge Areas -Software Project Cost and Time Management -Software Project Quality Management -Software Project Risk Management -Software Project Human Resources Management -Final Evaluation and Examination |
教科書 /Textbook(s) |
Lecture notes and a list of publications related to the course objectives will be distributed by the instructor |
成績評価の方法・基準 /Grading method/criteria |
Project development and analysis class work (40%), homework (30%), and examination (30%) |
履修上の留意点 /Note for course registration |
Prerequisites and other related courses which include important concepts relevant to the course: -Basic understanding of software engineering concepts and programming technologies. Courses that could be taken before this course (desirable, but not obligatory): -Software Engineering -Technologies of Programming Courses to be taken simultaneously with this course (strongly recommended): -Requirements Engineering |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Work experience: The course instructor have worked with different public and private research institutions participating in a number of software design and implementation projects. He has been actively engaged in the process of gathering, analyzing, elucidating, and administering of requirements for many software projects that he has lead and/or managed. 1. Ian Sommerville. Software Engineering. Addison Wesley 2. Gary R. Heerkens. Project Management. McGraw-Hill |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 後期集中 /2nd Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
1.0 |
責任者 /Coordinator |
竹村 司(AIG損保) |
担当教員名 /Instructor |
竹村 司(AIG損保), ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/30 |
---|---|
授業の概要 /Course outline |
In the model-driven software development, we can deal with diversity of platforms by building platform-independent models and transforming them into platform-specific models. The technology also aims to improvement of productivity by generating code from the models. This course covers modeling from use cases to design models and code generation from models. The students will experience this process with tools. |
授業の目的と到達目標 /Objectives and attainment goals |
- |
授業スケジュール /Class schedule |
- |
教科書 /Textbook(s) |
- |
成績評価の方法・基準 /Grading method/criteria |
- |
履修上の留意点 /Note for course registration |
- |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Work experience: Worked at IBM Japan for 22 years, and engaged in research and development of software products, and served as a Chief Architect of Systems Integration at a General Insurance Company. Based on these experiences, I will teach about software development methodology. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 後期集中 /2nd Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
出村 裕英 |
担当教員名 /Instructor |
出村 裕英, 平田 成, JAXA/NAOJ講師 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/09/04 |
---|---|
授業の概要 /Course outline |
(Remote Classes) This course focuses on project management, software engineering for lunar and planetary explorations. Envisioned main target is the moon. This course follows an omnibus form given by invited lecturers (teleclasses) from JAXA. |
授業の目的と到達目標 /Objectives and attainment goals |
To learn project management, software engineering for lunar and planetary explorations. To learn basic knowledge in space developments as topics of computer science and engineering. |
授業スケジュール /Class schedule |
(Intensive Course with 28 periods) Space Development, Exploration Programs, Lunar and Planetary Sciences, etc. by Profs. Haruyama, Sakurai, and Sakai (JAXA) |
教科書 /Textbook(s) |
N/A |
成績評価の方法・基準 /Grading method/criteria |
Comprehensive evaluation based on class activities (presentations, Q&A) and reports. |
履修上の留意点 /Note for course registration |
Related courses: ITC08A "Remote Sensing" ITC09A "Fundamental Data Analysis in Lunar and Planetary Explorations" ITC10A "Practical Data Analysis with Lunar and Planetary Databases" ITA19 "Reliable System for Lunar and Planetary Explorations" |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
The course instructors has working experiences: Instructors are familiar with JAXA Space Development Projects. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 前期集中 /1st Semester Intensi |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
成瀬 継太郎 |
担当教員名 /Instructor |
成瀬 継太郎, NSソリューションズ講師, ジャパンテクニカルソフトウェア講師 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/31 |
---|---|
授業の概要 /Course outline |
ソフトウェアは我々の社会のいたるところで使われており,ソフトウェア品質は社会に大きな影響を与え得る.しかし,限られた予算と期間の中で高品質のソフトウェアを開発することは容易なことではない. この講義ではソフトウェアの品質とは何か,それを保証し管理するために何をすべきかを学ぶ.また演習を行うことにより,理解を深める. さらにソフトウェア開発企業が商用情報システムを開発する際にソフトウェア品質に関して問題を考え,行っていることも学ぶ. |
授業の目的と到達目標 /Objectives and attainment goals |
この講義を履修することににより受講生は以下のことを理解できるようになる. - ソフトウェア品質の概念と重要性 - ソフトウェア品質を保証するための活動 - ソフトウェアのテストの概念と手法 そして演習を通じて上の項目を理解を深める. |
授業スケジュール /Class schedule |
1. ソフトウェアの品質 2. ソフトウェアの品質を保証するプロセス 3. ソフトウェアの静的検査とそのツール 4. バージョン管理 5. ソフトウェアテスト概論 6. ソフトウェアテスト手法(1) 7. ソフトウェアテスト手法 (2) 8. ソフトウェアテストツール 9-12. 単体テストの演習 13-14. 結合テストの演習 |
教科書 /Textbook(s) |
教科書はなし.必要な資料は講義中に配布する. |
成績評価の方法・基準 /Grading method/criteria |
評定は以下の配分で行われる. クイズが40%,レポートが40%,発表が20% |
履修上の留意点 /Note for course registration |
受講生はソフトウェア工学の基礎を理解し,プログラム言語JAVAを理解していることが望まれる. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
昨年度の講義で使った資料の一部 http://web-ext.u-aizu.ac.jp/~naruse/SEA14 この講義は実際に企業でソフトウェアを開発している現役の開発者により行われる(*1, *2).とくに項目3-4と9-12は彼らの実務経験を大きく反映したものである. *1: 新日鐵住金ソリューションズ, https://www.nssol.nssmc.com/ *2: ジャパンテクニカルソフトウェア, https://www.jtsnet.co.jp/ |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
ヴァジェニン アレクサンダー |
担当教員名 /Instructor |
ヴァジェニン アレクサンダー, 吉岡 廉太郎 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/31 |
---|---|
授業の概要 /Course outline |
Our current software engineering methods and techniques have made us much better at building systems of different sizes and complexity. They are mostly intended to support professional software development rather than individual programming. There are many software projects that are late, are over budget and do not deliver the software that meets the customer’s needs. There is, therefore, still a pressing need for software engineering education. This course covers many current topics of interest in software engineering. Some of the topics covered are formal methods to specify requirements of software systems, software design strategies, and evaluation of processes, products, and resources. |
授業の目的と到達目標 /Objectives and attainment goals |
The course can be useful for undergraduate and graduate students. It may be used in general software engineering, software specification, software design and management. The objective of the course is to impact knowledge to students about methods in software development including basic and advanced topics. The methods range from how to precisely specify software requirements to how to evaluate the methods and their products and required resources. The course program includes lectures given on several current topics of interest. Students will also be asked to make a presentation on a topic interesting to them. |
授業スケジュール /Class schedule |
The course lectures are covering the following topics: Part 1. The Software Process • Professional software development • Software Standards • Software Process Models • Managing People and Teamwork • Requirements Engineering • Agile Development Part 2. Software Design Strategies • Architectural Design • Software Reuse • Component-based Design • Model-driven Design Part 3. Advanced Topics in Software Engineering • Critical points in project management. • Dependable Processes and Programming • Fault Tolerance Concepts and Architecture • Real-time Software Engineering • Software Agents, Agent Systems and Applications Presentation Topic: Students have to present advanced material based on reading of current software engineering journals and professional magazines. |
教科書 /Textbook(s) |
1. Software Engineering Theory and Practice by S. L. Pfleeger, Publisher: Prentice Hall. 2. Software Engineering, 6-10th editions by Ian Sommerville, Publisher: Addision-Wesley. 3. Software Engineering & Testing: An Introduction by B.B. Agarwal, S. P. Tayal, M. Gupta. Publisher: 4. Software Engineering: A Practitioner's Approach, 6th edition by Roger S. Pressman, Publisher: McGraw-Hill 5. Lecture notes distributed by the instructor (Lecture notes have been prepared from the above textbooks and from recently published papers in IEEE Transactions on Software Engineering, IEEE Computer, and IEEE Software) |
成績評価の方法・基準 /Grading method/criteria |
1. Two Tests (35 points each), 2. Presentation Topic ( 30 points) |
履修上の留意点 /Note for course registration |
Knowledge of object-oriented concepts is necessary. Students should complete the Java and/or C Programming 1 and 2 courses and Software Engineering 1. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
The course instructor Alexander Vazhenin has practical working experience. He worked for the Computer Center of Siberian Division of the Russian Academy of Sciences for 15 years where he was involved in R&D of software design and operating systems. Based on his experience, he can teach the basics of Software Engineering. 1. Human Aspects of Software Engineering by James E. Tomakyo、 Orit Hazaan, publisher: Charles River Media. 2.Quality Software Management, by Gerald M. Weinberg, publisher: Dorset House Publishing. 3. http://sealpv2.u-aizu.ac.jp/ -- Detailed information about the course |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
ヴァジェニン アレクサンダー |
担当教員名 /Instructor |
ヴァジェニン アレクサンダー, 吉岡 廉太郎 |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/01/31 |
---|---|
授業の概要 /Course outline |
Our current software engineering methods and techniques have made us much better at building systems of different sizes and complexity. They are mostly intended to support professional software development rather than individual programming. There are many software projects that are late, are over budget and do not deliver the software that meets the customer’s needs. There is, therefore, still a pressing need for software engineering education. This course covers many current topics of interest in software engineering. Some of the topics covered are formal and practical methods software design and evaluation of processes, products, and resources. |
授業の目的と到達目標 /Objectives and attainment goals |
The course can be useful for undergraduate and graduate students. It may be used in general software engineering, software specification, software design and management. The objective of the course is to impart knowledge to students about methods in software development including basic and advanced topics. The methods range from how to precisely specify software requirements to how to evaluate the methods and their products and required resources. The program of this part is combined with some practical exercises on visual and service-oriented design strategies. |
授業スケジュール /Class schedule |
The course lectures are covering the following topics: Part 1. Human-Centric Design • Interface Types • Message System Features • MVC design pattern • User Interface design process and evaluation • Visual Programming Systems as example of the human-centric design Part. 2. Software Evolution • Evolution processes • Program evolution dynamics • Software maintenance • Legacy system management Part 3. Service Oriented Design Pattern • Client-Server Architectures • Distributed Object Architectures • Service-Oriented Architectures and Design Pattern • Virtual MVC design Methodology • Software Agents, Agent Systems and Applications This part of course practical exercises includes on visual and service-oriented design strategies. |
教科書 /Textbook(s) |
1.Software Engineering Theory and Practice by S. L. Pfleeger, Publisher: Prentice Hall. 2.Software Engineering, 6-10th editions by Ian Sommerville, Publisher: Addision-Wesley. 3.Software Engineering & Testing: An Introduction by B.B. Agarwal, S. P. Tayal, M. Gupta. Publisher: 4. Service-Oriented Computing by M. Singh, M. Huhns, Publisher: John Wiley & Sons, Ltd 5.Lecture notes distributed by the instructor (Lecture notes have been prepared from the above textbooks and from recently published papers in IEEE Transactions on Software Engineering, IEEE Computer, and IEEE Software) |
成績評価の方法・基準 /Grading method/criteria |
1.One test (50 points each), 2.Engineering Topic (50 points) |
履修上の留意点 /Note for course registration |
The course instructor Alexander Vazhenin has practical working experience. He worked for the Computer Center of Siberian Division of the Russian Academy of Sciences for 15 years where he was involved in R&D of software design and operating systems. Based on his experience, he can teach the basics of Software Engineering. Students should have knowledge in Object-oriented programming. The course of Software Engineering is also required. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
1.User Interface Design and Evaluation by Debbie Stone, Caroline Jarrett, Mark Woodroffe, Shailey Minocha,publisher: Elsevier. 2. Human Aspects of Software Engineering by James E. Tomakyo、 Orit Hazaan, publisher: Charles River Media. 3.Quality Software Management, by Gerald M. Weinberg, publisher: Dorset House Publishing. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
クリュエフ ヴィタリー |
担当教員名 /Instructor |
クリュエフ ヴィタリー, モズゴボイ マキシム |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/09/13 |
---|---|
授業の概要 /Course outline |
The course will be conducted remotely. One of the key tendencies in the software development area is a priority of web applications. The corresponding branch of software engineering is growing very fast. We are facing increasing demands for professionals who can design web systems. Our goal is to train such specialists. |
授業の目的と到達目標 /Objectives and attainment goals |
The aim of this course is to study current concepts and methods for Internet application engineering using Django framework. |
授業スケジュール /Class schedule |
The main topics covered in the course are as follows: 1. Course Introduction 2. Django App Architecture. App Specifications. 3. First Experiments with Django 4. Writing View Functions 5. Sessions, Templates, Forms 6. Rich GUI with Django Packages |
教科書 /Textbook(s) |
Peter Gasston. The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript. No Starch Press, 2013. Andrew Pinkham. Django Unleashed. SAMS, 2015 Antonio Mele. Django by Example. Packt, 2015 |
成績評価の方法・基準 /Grading method/criteria |
The final grade will be calculated based on the following weights: - Assignments: 50% - Quizzes: 20% - Final examination: 30% |
履修上の留意点 /Note for course registration |
We assume that the students know how to write a computer program and debug it. We assume that students like programming. Knowledge of object-oriented concepts and web technologies is necessary. Knowledge of Python and JavaScript languages is strongly recommended but not mandatory. |
科目一覧へ戻る |
開講学期 /Semester |
2020年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
1年 , 2年 |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
渡部 有隆 |
担当教員名 /Instructor |
渡部 有隆, ヴァジェニン アレクサンダー |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
使用言語 /Language |
- |
更新日/Last updated on | 2020/05/19 |
---|---|
授業の概要 /Course outline |
This core software engineering course is up to date text uses both theory and applications to design reliable, error-free software taking into account available resources like a skill of programming team, developing environment as well as a time schedule. Starting with an introduction to the various types of software, the course moves through computer-aided software engineering and writing effective source code to a term-based software development. A chapter on applications covers software development tools allowing students to get practical experience in usage modern techniques used in various applications including different platforms like Eclipse, Visual Studio, etc. The lectures and exercises will be given online according to the situation. |
授業の目的と到達目標 /Objectives and attainment goals |
The course can be useful for undergraduate and graduate students. The objective of the course is in imparting knowledge to students about methods in practical programming. These methods range from how to precisely specify and evaluate problem requirements to how to organize the programming process of the problem solution in limited time as well as required and available resources. The course program is oriented not only how to provide and accumulate knowledge but also how to use this experience in practical programming. The course exercises include individual and team programming strategies as well as collaborative verification and debugging techniques. They have the good opportunity to check their real abilities in solving practical problem. |
授業スケジュール /Class schedule |
Part 1. Introduction to Software Development – Program Phase – How to Write a Good Program – Programming Tools – Information Hiding – Programming Style – Internal Documentation – Monitoring and Control for Coding – Structured Programming Part 2. Creating High-Quality Code – High-Quality Routines – Valid Reasons to Create a Routine – Good Routine Names – How to Use Routine Parameters – Special Considerations in the Use of Functions – Macro Routines and Inline Routines Part 3. Defensive Programming – Protecting Your Program from Invalid Inputs – Assertions – Error-Handing Techniques – Exceptions – Barricade Your Program to Contain the Damage Caused by Errors – Debugging Aids Part 4. Programming Strategies – How to write error-free codes – How to write readable codes – Rules, conventions, recommendations Part 5. Extreme Programming – Goals and Activities – Extreme Programming Rules – Coding and Testing – Criticism and Experience Part 6. Team-based Software Design – Software Team Organization – Selecting staff – Motivating people – Managing groups – The people capability maturity model – Groupthink Part 7. Software Development Tools – Classification – Software Projects Management Systems: Eclipse, etc. – Concurrent Version Support systems. – Visual programming Tools and Debugging environment |
教科書 /Textbook(s) |
Software Engineering, 6-8th editions by Ian Sommerville, Addision-Wesley. Software Engineering & Testing: An Introduction by B.B. Agarwal, S.P. Tayal, M. Gupta. Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman, McGraw-Hill Extreme Programming Explained: Embrace Change (2nd Edition) by Kent Beck. Dode Complete, 2nd editions by Steve McConnell. Lecture notes distributed by the instructor – Lecture notes have been prepared from the above textbooks and from recently published journals. |
成績評価の方法・基準 /Grading method/criteria |
Exercise Assignment 50 % Presentation Topic 50 % |