AY 2026 Graduate School Course Catalog

Field of Study SE: Software Engineering

2026/02/19

Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  3学期 /Third Quarter
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
MATSUMOTO Kazuya
担当教員名
/Instructor
MATSUMOTO Kazuya, NAKASATO Naohito
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/02/10
授業の概要
/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 computing. Some specific topics related to the reliability and accuracy of parallel computations are discussed. We also show and compare different parallel programming paradigms including SIMD, Message Passing and Shared Memory Programming.
授業の目的と到達目標
/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 computing,
- Explain some details of data parallel processing,
- Know how to design coarse- and fine-grained parallel algorithms,
- Understand parallel programming with SIMD instructions.
授業スケジュール
/Class schedule
1. Introduction to Modern High-Performance Computing
2. Metrics of Parallel Programs and Algorithms
3. Network Topologies and Properties
4. Collective Operations on Networks
5. OpenMP Programming for Shared-Memory Systems
6. SIMD Programming in OpenMP
7. Sources of Parallelism and Locality
8. Floating-Point Arithmetic
9. Task Parallelism
10. Volunteer Computing
11. Hybrid Parallelization with MPI and OpenMP
12. Design Project Presentation
教科書
/Textbook(s)
Materials collected from books, journals and proceedings papers and provided by the instructor.
成績評価の方法・基準
/Grading method/criteria
Assignments must be submitted by the stated deadline. To pass this course, all the requirements must be satisfactorily completed.
The course final grade is determined by the following parts:
1. Two Exercises (60 points)
2. Design Project (40 points)
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
1. An Introduction to Parallel Programming, by P. Pacheco, Morgan Kaufmann, 2011.
2. Introduction to High Performance Computing for Scientists and Engineers, by G. Hager, and G. Wellein, CRC Press, 2017.
3. The OpenMP Common Core, by T. Mattson, Y. He, and A. Koniges, MIT Press, 2019.
4. Using OpenMP The Next Step: Affinity, Accelerators, Tasking, and SIMD, by R. Pas, E. Stotzer , and C. Terboven , MIT Press, 2017.
5. Performance Tuning of Scientific Applications, by D. Bailey, R. Lucas, and S. Williams, CRC Press, 2010.
6. Designing and Building Parallel Programs, by F. Ian, https://www.mcs.anl.gov/~itf/dbpp/
7. Computer Architecture: A Quantitative Approach, by J. Hennesy, and D. Patterson, 6th edition, Morgan Kaufmann, 2019.
8. Parallel and Distributed Computing, by C. Leopold, Wiley-Interscience, 2000.
9. Distributed and Cloud Computing, by K. Hwang, G. Fox, and J. Dongarra, Morgan Kaufmann, 2011.


Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  2学期 /Second Quarter
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
SUZUKI Taro
担当教員名
/Instructor
SUZUKI Taro
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/02/06
授業の概要
/Course outline
The aim of declarative programming is to describe problems to be solved as programs in 'declarative' way based on mathematical properties of the problem. Writing programs in declarative style, we can examine the properties and the correctness of the programs using techniques based on mathematics or logic.
  Declarative rogramming contains functional programming, logic programming, functional-logic programming, and so on. This course especially concerns
functional programming, which is based on the theory of mathematical functions. The student learns basics of functional programming with a functional programming language Haskell.
授業の目的と到達目標
/Objectives and attainment
goals
The aim of the course is to learn basics of declarative programming, especially of functional programming.
At the end of the course the student can:
1. Explain the differences between imperative and declarative programming.
2. Explain what is the essence of functional programming.
3. Explain what higher-order functions, type polymorphism and lazy evaluation mean.
4. Write functional programs with higher-order functions, user defined polymorphic data types and infinite data structures.
5. Reason properties of functional programs in mathematical way.
6. Write functional programs using standard algorithms.
授業スケジュール
/Class schedule
Each class will be conducted in lecture format. Every student should give a presentation of a part of the textbook specified by the instructor. Except for the first class, assignments are given every session. The list of assignments will be sent to the students by e-mail after the class, which contains three to five questions selected from the textbook.

The class schedule is given below:

1. Introduction to Declarative Programming and Functional Programming
2. Data Types and Definitions
3. Programming with lists I: list comprehension etc.
4. Programming with lists II: type polymorphism etc.
5. Programming with lists III: recursive programming on lists
6. Programming with higher-order functions (1): function as parameters
7. Programming with higher-order functions (2): functions as results
8. Programming with higher-order functions (3): case study
9. Type classes
10. Algebraic data types
11. Lazy evaluation
12. Lazy evaluation and programming with infinite data structures
13. I/O Monads
14. Monads in general

The correspondence between classes and topics described above may be changed according to the progress of the course.

Before each class, prepare by previewing the textbook chapters spcified by the instructor. Also, complete and send the exercises to the instructor assigned after each class by the day before the next class. The typical preparation/review time per session is 3-5 hours
教科書
/Textbook(s)
S.Thompson, The Craft of Functional Programming, 3rd Edition.
Addison-Wesley, ISBN: 978-0201882957

The PDF file is available from the following URL:
https://simonjohnthompson.github.io/craft3e/craft3e.pdf
成績評価の方法・基準
/Grading method/criteria
The students are evaluated by the following:

1. assignments on functional programming. Each assignment is assigned in every class. The students should submit them 1 week after the assignment.
2. the presentation of a chapter in the text book. Every student gives a presentation once.

The criteria is as follows:

70% assignments
30% presentation
履修上の留意点
/Note for course registration
t is desirable that the students have taken PL05 Computer Languages in the undergraduate course.
参考(授業ホームページ、図書など)
/Reference (course
website, literature, etc.)
1. Haskell 2010 Language Report
   URL: http://www.haskell.org/onlinereport/haskell2010/
2. J.Hughes, Why Functional Programming Matters
   URL: http://www.md.chalmers.se/~rjmh/Papers/whyfp.html
3. R.Bird, Introduction To Functional Programming. Prentice Hall, ISBN: 978-0134843469
4. M.Lipova, Learn You a Haskell for Great Good!. No Starch Press, ISBN: 978-1593272838
5. G.Hutton, Programming in Haskell. Cambridge University Press, ISBN: 978-0521692694
6. R.Bird, Pearls of Functional Algorithm Design. Cambridge University Press, ISBN: 978-0521513388


Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  4学期 /Fourth Quarter
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
HAMEED Saji N.
担当教員名
/Instructor
HAMEED Saji N.
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/01/28
授業の概要
/Course outline
This course is an introduction to atmospheric and oceanic simulations and to parallel programming concepts.  Students will develop simple models for oceanic and atmospheric phenomenon.
授業の目的と到達目標
/Objectives and attainment
goals
The students will learn about ocean and atmosphere simulations.
The course will heavily involve coding projects and assignments.
授業スケジュール
/Class schedule
1. Numerical solution of differential equations
2. Oceanic and Atmospheric Modeling


教科書
/Textbook(s)
Numerical Analysis for Engineers and Scientists, G. Miller, Cambridge University Press
Ocean Modeling for Beginners using Open-Source Software J Kampf, Springer

成績評価の方法・基準
/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 is expected.


参考(授業ホームページ、図書など)
/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


Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  後期集中 /2nd Semester Intensive
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
DEMURA Hirohide
担当教員名
/Instructor
DEMURA Hirohide, HIRATA Naru, JAXA/NAOJ Lecturers
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/02/17
授業の概要
/Course outline
(including 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
This omnibus lecture series with exercises, providing 30 hours of class time (2 credits, intensive course) per quarter, along with approximately 60 hours of pre- and post-study sessions, which may vary depending on individual progress and achievement. This includes topics such as Space Development, Exploration Programs, and Lunar and Planetary Sciences, given by JAXA Lecturers.

   Prof. Haruyama (PI of SELENE Camera to the Moon),
   Prof. Sakurai (PM of ECLSS [Environmental Control and Life Support System] on ISS [International Space Station] around the Earth),
   Prof. Sakai (PM of SLIM to the Moon)
   Prof. Hashimoto (PM of OMOTENASHI to the Moon) (JAXA)
   Prof. Ozaki (Orbit Dynamics and Design)
教科書
/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.

https://global.jaxa.jp/activity/pr/jaxas/no085/04.html
https://www.isas.jaxa.jp/home/slim/SLIM/index.html
https://humans-in-space.jaxa.jp/en/
https://www.selene.jaxa.jp/index_e.htm


Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  3学期 /Third Quarter
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
WATANOBE Yutaka
担当教員名
/Instructor
WATANOBE Yutaka, MOZGOVOY Maxim
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/02/06
授業の概要
/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 a variety of topics in modern software engineering, from software development processes to AI-driven development.
授業の目的と到達目標
/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. Students will be able to develop software using the theory and development methods learned in this course and apply their experience in this course to their research activities in support of software development.
授業スケジュール
/Class schedule
The course lectures are covering the following topics:

Professional software development
Software processes
Agile software development
Architectural design
SOLID principles
Design and implementation
Software testing
Dependability engineering
Component-based software engineering
Service-oriented architecture
AI-driven development

*Important topics will be selected from the above. They are subject to change depending on the schedule.

Each week is divided into two parts: the first half consists of lecture-style sessions, and the second half is dedicated to practical exercises where students work on specific assignments.

Presentation Topic: Students have to present advanced material based on reading of current software engineering journals and professional magazines.

Before each class, students must review the lecture materials regarding the keywords listed in the schedule. Any assignments not completed during the exercise periods must be finished by the designated deadline. Approximately 5 hours of combined preparation and review per session.
教科書
/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.


Open Competency Codes Table Back

開講学期
/Semester
2026年度/Academic Year  2学期 /Second Quarter
対象学年
/Course for;
1st year , 2nd year
単位数
/Credits
2.0
責任者
/Coordinator
MOZGOVOY Maxim
担当教員名
/Instructor
MOZGOVOY Maxim, YOSHIOKA Rentaro
推奨トラック
/Recommended track
先修科目
/Essential courses
更新日/Last updated on 2026/01/08
授業の概要
/Course outline
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.

The course is intended for students who want to understand and apply in practice the technological basis of modern Internet applications.  

We will go through typical steps of a Web application development process with a modern Python-based Django framework. The students will create applications reflecting typical real-life scenarios and obtain necessary knowledge to up-to-date tools and technologies.
授業の目的と到達目標
/Objectives and attainment
goals
The primary objective of the course is to understand the process of Web application development by following all major steps from database design to GUI programming. The course is project-based: each student will develop his/her own Web application containing all necessary core components.
授業スケジュール
/Class schedule
The main topics covered in the course are as follows:

Session 1: Lecture. Course Introduction. Django App Architecture. App Specifications.
Session 2: Exercise: Writing Specs (Database Schema).
Session 3: Lecture. First Experiments with Django.
Session 4: Exercise: Implementing Database Schema.
Session 5: Lecture. Writing View Functions.
Session 6: Exercise: Implementing View Functions.
Session 7: Lecture. Templates, GUI, and Sessions.
Session 8: Exercise: Implementing Views with GUI and Sessions.
Session 9: Demo: Implementing Dentistry App Functionality.
Session 10: Exercise: Implementing Your App Functionality.
Session 11: Lecture. Rich GUI with HTMX
Session 12: Exercise: Enriching GUI of Your App with HTMX
Session 13: Demo: Implementing Responsive GUI for Dentistry App.
Session 14: Lecture. Project Deployment.
Session 15. Final Presentations.

Course activities are primarily presented in the lecture/exercise format. In addition, there will be interactive demo sessions showing how to implement specific subsystems of a web app, and a presentation session where the students will present their projects.

The students are expected to rely on course books and/or online materials mentioned in the lecture to finish their projects in timely manner. In addition to the course exercise sessions, the students are expected to spend 2-3 hours after each lecture to get familiar with lecture material.
教科書
/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 Publishing, 2015.
• Antonio Mele. Django by Example. Packt Publishing, 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.


Responsibility for the wording of this article lies with Student Affairs Division (Academic Affairs Section).

E-mail Address: sad-aas@u-aizu.ac.jp