2024/11/23 |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/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 | 2024/01/26 |
---|---|
授業の概要 /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 3. Classifications of Parallel Programming Models 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 |
2024年度/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 | 2024/01/25 |
---|---|
授業の概要 /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 |
The schedule of the course is given below: 1. Introduction to Declarative Programming and Functional Programming 2. Data Types and Definitions 3. Programming with lists I: list comprehension, type polymorphism etc. 4. Programming with lists II: recursive programming on lists 5. Reasoning on functional programs 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 Monad 14. Monad in general The correspondence between classes and topics described above may be changed according to the progress of the course. |
教科書 /Textbook(s) |
S.Thompson, The Craft of Functional Programming, 3rd Edition. Addison-Wesley, ISBN: 978-0201882957 |
成績評価の方法・基準 /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 |
2024年度/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 | 2024/01/26 |
---|---|
授業の概要 /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 3. Introduction to Heterogeneous Computing |
教科書 /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 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 |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 前期集中 /1st Semester Intensive |
---|---|
対象学年 /Course for; |
1st year , 2nd year |
単位数 /Credits |
1.0 |
責任者 /Coordinator |
TAKEMURA Tsukasa (Kao.Co) |
担当教員名 /Instructor |
TAKEMURA Tsukasa (Kao.Co), YOSHIOKA Rentaro |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/16 |
---|---|
授業の概要 /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.) |
Work experience: I have work experiences at IBM, Fuji Fire & Marine Insurance Co, AIG General Insurance Company, Advanced Science, Technology & Management Research Institute of KYOTO(ASTEM). 1.Unified Modeling Language http://www.omg.org/spec/UML/About-UML/ 2.Model Driven Architecture http://www.omg.org/spec/UML/About-UML/ |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/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 | 2024/02/06 |
---|---|
授業の概要 /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 |
(Intensive Course with 28 periods) Space Development, Exploration Programs, Lunar and Planetary Sciences, etc. Lecturers from JAXA: 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) |
教科書 /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 |
2024年度/Academic Year 前期集中 /1st Semester Intensive |
---|---|
対象学年 /Course for; |
1st year , 2nd year |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
NARUSE Keitaro |
担当教員名 /Instructor |
NARUSE Keitaro, NS Solutions Corporation Lecturers, Japan Technical Software Lecturers |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/25 |
---|---|
授業の概要 /Course outline |
Software is used in everywhere in our society, and quality of software can put large influence to our society. However, it is not easy to develop high quality software in a limited period and budget. In this course, students will learn and understand what quality of software is and what should be done for ensuring and managing the quality of software. Also the students will experience a set of activities on them through exercise. In addition, the students will understand how software industries recognize, consider, and manage quality of software in the development of commercial information systems. |
授業の目的と到達目標 /Objectives and attainment goals |
The students will understand the concept and importance on quality of software. The students will understand the activities on ensuring quality of software. The students will understand the concept and methods on test of software. The students will carry out a part of activities on ensuring quality of software through exercises. |
授業スケジュール /Class schedule |
1. Quality of software 2. Ensuring quality and process of software 3. Static inspection methods and tools 4. Version management 5. Test of software 6. Test methods (1) 7. Test methods (2) 8. Test tools 9-12. Exercises on component test 13-14. Exercises on system test |
教科書 /Textbook(s) |
None. Handouts will be distributed in a class. |
成績評価の方法・基準 /Grading method/criteria |
The grade will be evaluated based on quiz(40%), assignments(40%), and oral presentation(20%) in the last class. |
履修上の留意点 /Note for course registration |
This course is delivered in the Japanese language. The students are recommended (but not required) to understand basics on software engineering and the programming language JAVA. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Preview of course materials in the last year. http://web-ext.u-aizu.ac.jp/~naruse/SEA14 Some of this course will be provided by lectures currently working in a software industry(*1, *2). The course topics of 3-4 and 9-14 are largely related to their practical work in industry. *1: NS Solutions, https://www.nssol.nssmc.com/en/ *2: Japan Technical Software, https://www.jtsnet.co.jp/ |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/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 | 2024/01/25 |
---|---|
授業の概要 /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 Requirements engineering System modeling Architectural design Design and implementation Software testing Dependability engineering Software reuse Component-based software engineering Service-oriented architecture AI-driven development Presentation Topic: Students have to present advanced material based on reading of current software engineering journals and professional magazines. *Important topics will be selected from the above. They are subject to change depending on the schedule. |
教科書 /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 |
2024年度/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 | 2024/01/24 |
---|---|
授業の概要 /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: Course Introduction Session 2: Django App Architecture. App Specifications. Session 3: Exercise: Writing Specs (Database Schema). Session 4: First Experiments with Django. Session 5: Exercise: Implementing Database Schema. Session 6: Writing View Functions. Session 7: Exercise: Implementing View Functions. Session 8: Templates, GUI, and Sessions. Session 9: Exercise: Implementing Views with GUI and Sessions. Session 10: Demo: Implementing Dentistry App Functionality. Session 11: Exercise: Implementing Your App Functionality. Session 12: Rich GUI with Django Packages. Session 13: Exercise: Enriching GUI of Your App Session 14: Demo: Implementing Rich GUI for Dentistry App. Session 15: Exercise: Finishing the Unfinished Parts. |
教科書 /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. |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
1st year , 2nd year |
単位数 /Credits |
2.0 |
責任者 /Coordinator |
WATANOBE Yutaka |
担当教員名 /Instructor |
WATANOBE Yutaka, NISHIDATE Yohei |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/26 |
---|---|
授業の概要 /Course outline |
This lecture series begins with an introduction to software development, laying the foundational concepts and methodologies involved in creating software. It then progresses to emphasize the importance of creating high-quality code, highlighting techniques and practices that ensure code is not only functional but also maintainable and efficient. Defensive programming is covered as a strategy to anticipate and handle potential errors or issues, ensuring the software's robustness and reliable. The series also explores various programming strategies that can optimize the development process. The series culminates in a project that involves presenting a topic related to state-of-the-art software development tools and adhering to a coding guideline, applying the principles learned throughout the course to a practical scenario. |
授業の目的と到達目標 /Objectives and attainment goals |
Students will acquire the skills to produce high-quality code that is not only functional but also efficient, error-free, reliable and maintainable. Emphasis on defensive programming will enable them to anticipate and mitigate potential errors and vulnerabilities within their code. Through exploring various programming strategies, students will learn to approach problems with a versatile mindset, enhancing their problem-solving capabilities. Finally, by undertaking a project to develop their own coding guidelines, they will gain the ability to establish standards that promote best practices and consistency in software development. |
授業スケジュール /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. Project – Presentation Topic for Software Development Tools – Coding Guideline |
教科書 /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 30 % Presentation Topic 30 % Coding Guideline 40 % |