2024/12/22 |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
YEN Neil Yuwen |
担当教員名 /Instructor |
YEN Neil Yuwen, YAMADA Ryuhei |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/26 |
---|---|
授業の概要 /Course outline |
Nowadays, the Web is not only the source of information for the end users. Companies migrate more of their business activities to Web based systems. We are facing increasing demands for professionals who can design large Web systems. Web engineering is a relatively new term in computer science. It can be defined as a discipline of systematic development of Web applications. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. The aim of this course is to study current concepts and methods for Web application engineering. |
授業スケジュール /Class schedule |
Topic 1: Introduction Topic 2: A Web engineering process Topic 3: Communication and planning Topic 4: Web App Architectures Topic 5: Introduction to WordPress Topic 6: Responsive Web Design Topic 7: Universal Design for Web Topic 8: About the Future Topic 9: Presentation and Discussions Notes: ** Some topics may need more than 1 time of lectures/exercises to complete. Any updates will be posted on LMS when the class begins. ** Schedule may be adjusted according to actual conditions. Any updates will be posted on LMS when the class begins. |
教科書 /Textbook(s) |
No designated textbook is required but students are encouraged to follow the content of The Modern Web: Multi-Device Web Development with HTML5, CSS3, and JavaScript by Peter Gasston, No Starch Press, 2013. Dart 1 for Everyone Fast, Flexible, Structured Code for the Modern Web by Chris Strom, The Pragmatic Programmers, LLC., 2014. Anatomy of a web application using node.js, ExpressJS, MongoDB & Backbone.js by Jason Crol, 2015. Knockout.js: Building Dynamic Client-Side Web Applications by Jamine Munro, O’Reilly Media, 2015. |
成績評価の方法・基準 /Grading method/criteria |
The final grade will be calculated based on the following contributions: Exercises - 55% Presentations/Reports - 15% Quiz - 20% Active Participation during lectures - 10% Please note that the proportion to each part may be adjusted according to actual conditions. |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
WATANOBE Yutaka |
担当教員名 /Instructor |
WATANOBE Yutaka, SAXENA Deepika |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/26 |
---|---|
授業の概要 /Course outline |
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 reuse, software maintenance, software maintenance models, and evaluation of processes, products, and resources. It includes Advanced Treatment of Selected Software Engineering issues: Software Maintenance, Software Configuration Management, Software Re-engineering, Managing People, Critical Systems Development, User Interface Design and Evaluation, Emerging Technologies like Visual Programming, Security Engineering, and other advanced topics including student engineering topic. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. [Competency Codes] C-HI-003, C-SD-005, C-SE-001, C-SE-002 The objective of the course is to impart knowledge to students about methods in software development. The methods range from how to precisely specify software requirements to how to evaluate the methods and their products and required resources. This is achieved in two parts: first, lectures are given on several current topics of interest; second, students are given a programming project to design and implement a system using the Object-Oriented programming paradigm and the version management with a team. |
授業スケジュール /Class schedule |
Lecture 1: The Nature of Software Engineering Topics to study: - How did software engineering become a term? - Is there a good technical solution to software development problems? - How and why are agile methods considered more people-affirming? - Compare software engineering with other professions. Lecture 2: Revisioning Software Topics to study: - Collaborative development problems, - Revision control, - VCS terminology, - Collaborative development and conflict resolution. Lecture 3: The Human Factors in Software Engineering Topics to study: - Human Diversity; - Limits to Thinking; - Knowledge Modeling; - Personality Types; - Human Factors Engineering. Lecture 4: The Managing People and Team Work Topics to study: - Selecting and Motivating Staff - Ego-less Programming - Managing Groups - The People Capability Maturity Model Lecture 5-6: User Interface Design and Evaluation Topics to study: - User Interface Design Principles - User Interaction Styles - Information Presentation - GUI Features - Message System Features - System Documentation - User Interface Design Process - Interface Evaluation Lecture 7: Visual Programming Systems Topics to study: - Terminology - Classification and Theory - A Review of Visual Programming Systems Lecture 8: Software change: Maintenance and Architectural Evolution Topics to study: -Program evolution dynamics -Software maintenance -Architectural evolution Lecture 9: Software re-engineering Topics to study: -Source code translation -Reverse engineering -Program structure improvement -Program modularization -Data re-engineering Lecture 10: Critical systems development Topics to study: -Dependable processes -Dependable programming -Fault tolerance -Fault tolerant architectures Lecture 11: Software Security Engineering Topics to study: -Security concepts -Security risk management -Design for security -System survivability |
教科書 /Textbook(s) |
1.Software Engineering, 5-9th editions by Ian Sommerville, publisher: Addision-Wesley 2.Human Aspects of Software Engineering by J.E. Tomayko and O. Hazzan, Charles River Media Inc., 2004 3. User Interface Design and Evaluation by D. Stone, C. Jarrett, M.Woodroffe, Sh. Mincha 4. Lecture notes distributed by the instructor will be developed from materials collected from books, journals and proceedings papers. |
成績評価の方法・基準 /Grading method/criteria |
Your final grade includes the following parts 1). Quiz: 10 points 2). Exam: 40 points 3). Project: 50 points |
履修上の留意点 /Note for course registration |
It would be good if students have knowledge about basics of Software Engineering, Programming in Java and C. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
The course coordinator Yutaka Watanobe has practical work experience. He collaborated with Givery Inc. to develop the programming skill check tool and materials which can be useful for personnel assessment, training and education. He has provided a number of problems and related test data as one of main contents. He also has experience in developing large scale software in practical use, such as development environments and educational support systems. Based on his experience, he can teach the basics of Software Engineering. |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 前期 /First Semester |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
YOSHIOKA Rentaro |
担当教員名 /Instructor |
YOSHIOKA Rentaro, KAWAGUCHI Tatsuki |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
Courses preferred to be learned prior to this course (This course assumes understanding of entire or partial content of the following courses) FU14 Introduction to Software Engineering |
更新日/Last updated on | 2024/01/24 |
---|---|
授業の概要 /Course outline |
Students will develop software for real-world customers in teams and deepen their understanding of software engineering. In this course, each student team will receive a development request from a real customer. On average, each team will consist of 3-10 students. Teams will start by listening to customer's requests and defining the requirements of the software. This will be followed by design, development, and test phases, and on Week 14, each team will present their project activity and the completed software and finally deliver the software to the customer. Professional software engineers will support each team as coaches to advise on practical development tasks. Each team will report their progress to the coaches and lecturers every week. Meetings with customers will be held as required. The phases of the development will be controlled by specific deliverables that must be submitted to advance to the next phase. Teams will present at two review meetings (interim and final), where they must quantitatively analyze project work hours, accomplishments, and quality. To deliver software that best satisfies customer requirements, including functional and quality requirements, utmost creativity and effort are imperative. Many outside classroom hours are spent to acquire necessary knowledge and skills and revise work. Furthermore, self-motivated and proactive involvement by all team members is essential for a successful delivery. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. [Competency Codes] C-GV-001, C-HI-003, C-SD-005, C-SE-001, C-SE-002, C-SP-002, C-SP-004, C-SP-006, C-SP-009, C-SP-0011-1, C-SP-012, C-SP-013, C-SP-014 1. The student understands the challenges of developing software with specific functional and quality requirements and the basic problem-solving methods. 2. The student understands the necessity of project management to develop software under limited resources (people, time, equipment) and experience the various methods related to each stage of development (requirements definition, design, development, test). 3. The student understands the need to act quickly in an uncertain real-world environment, such as identifying multi-disciplinary problems and accurate communication of information, and will learn basic methods. Overall, the student will understand the difficulties (and rewards!) of developing practical software of respectable size. |
授業スケジュール /Class schedule |
In each lecture (3 periods), 1. Progress report by each team (10 minutes) 2. Feedback on the reported content by lecturers 3. Short lecture on the week’s activity by lecturer 4. A meeting of the team and customer will be performed. Week 1: Project Kickoff and Planning Divide roles among team members, prepare a project management system, receive an overview of the project background and requirements from the client, and develop a project plan. Week 2: Field Work Visit the client site to understand the problem and environment of the required solution. (The schedule is subject to the client’s circumstances) Week 3: Requirements Definition Analyze the problem carefully, derive clear and precise requirements, and obtain consent on the scope of the system from the customer. Week 4: Requirements Definition Analyze the problem carefully, derive clear and precise requirements, and obtain consent on the scope of the system from the customer. Week 5: Requirements Definition Analyze the problem carefully, derive clear and precise requirements, and obtain consent on the scope of the system from the customer. Week 6: Interim Review The customer will examine the progress and decide whether the team will proceed to the following phases. Week 7: Analysis Based on the results from the requirements definition phase, logically analyze the requirements and plan a practical solution. Week 8: Analysis Based on the results from the requirements definition phase, logically analyze the requirements and plan a practical solution. Week 9: Design Describe the structure and behavior of functions/objects of the system with consideration to programming. Week 10: Design Describe the structure and behavior of functions/objects of the system with consideration to programming. Week 11: Development Create source code of the software. Week 12: Development Create the source code of the software and begin testing. Week 13: Testing Test the developed software. Week 14: Final review The customer will evaluate the test results as well as other deliverables from the design phase, and decide whether the software is valid for acceptance. *Schedule management is performed by the teams so that progress may vary, but the dates of the interim and final reviews cannot be changed. Teams are requested to prototype actively. |
教科書 /Textbook(s) |
Handouts will be provided as necessary. |
成績評価の方法・基準 /Grading method/criteria |
There is no exam. Performance will be assessed by the following items. 1. Presentation at interim and final review 25% 2. Quality of deliverables (Technical documents and software) 25% 3. Individual report 40% 4. Participation in class activities and attitude 10% * Each student's contribution will be checked in weekly progress reports and the project management system. * Insights of customers and coaches will be taken into consideration for the assessment * In the individual report, each student is requested to describe their activities and contribution to the project and answer questions related to knowledge of software engineering and project management involved. |
履修上の留意点 /Note for course registration |
• Pre-requisite courses FU14 Introduction to Software Engineering IE03 Integrated Software Exercise I IE04 Integrated Software Exercise II • Students must attend an individual interview with the lecturers before the first lecture, usually scheduled for the last week of March. • Necessary knowledge and skills vary depending on the nature of each project. • Students are requested to self-study (individually or in teams, outside of classroom hours) any knowledge or skills as required to complete the project. • Participation in all lectures and meetings is mandatory. Being absent, late, or leaving early without prior approval of lecturers is subject to a penalty in the final assessment. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
https://www.u-aizu.ac.jp/enpit/record/2023_software.html https://www.u-aizu.ac.jp/enpit/record/2022_software.html https://www.u-aizu.ac.jp/enpit/record/2021_software.html https://www.u-aizu.ac.jp/enpit/record/2020_software.html https://www.u-aizu.ac.jp/enpit/record/2019_software.html https://www.u-aizu.ac.jp/enpit/record/2018_software.html https://www.u-aizu.ac.jp/enpit/record/2017_software.html The course instructor has working experiences: Company employees working on development projects will review, evaluate, and provide advice to student development activity and work throughout the course. Currently, active software engineers (with more than 30 years of experience) and faculty with previous software development experience will jointly provide lectures and exercises. |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
MOZGOVOY Maxim |
担当教員名 /Instructor |
MOZGOVOY Maxim |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
Courses preferred to be learned prior to this course (This course assumes understanding of entire or partial content of the following courses) PL03 JAVA Programming I |
更新日/Last updated on | 2024/01/24 |
---|---|
授業の概要 /Course outline |
Concurrent programs take advantage of modern multicore and multiprocessor machines to implement algorithms that run concurrently (in parallel) to achieve higher performance and better user experience. Distributed computing brings this idea to the next level, dealing with the systems made up of independent computers, linked by a network. At the present time, both concurrent and distributed systems are widespread, due to high popularity of multicore machines and computer networks. However, the design and implementation of such systems and corresponding software remains a challenging task. We have to know how to coordinate independent processes to achieve high performance and avoid common pitfalls. The goal of this course is to introduce the basics of concurrent and distributed systems design and implementation. We will cover a number of classical and modern approaches to this problem, paying special attention to the practical aspects of implementation using Java language. |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. At the end of the course the student should be able to: - Understand the key advantages of concurrent and distributed systems and common problems the developers may encounter. - Know different approaches to concurrent and distributed systems design, their advantages and disadvantages. - Be able to implement simple concurrent and distributed systems using modern tools. - Be aware of the historical perspective of the developments in this area, understand modern trends and technologies. |
授業スケジュール /Class schedule |
1. Introduction 2. Basics of Concurrency 3. Synchronizing Processes 4. Introduction to Model Checking and Promela Language 5. Model Checking with SPIN and Linear Temporal Logic 6. From Shared-memory Model to Message Passing 7. Distributed Programming with MPI & Tuple Space Model 8. Types of Distributed Systems 9. Client-Server Programming 10. RMI: Distributed Objects in Java 11. Modern Concurrent Programming in Java 12. OpenMP Technology. |
教科書 /Textbook(s) |
- Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten van Steen, Prentice Hall, 2007. - M. Ben-Ari. Principles of Concurrent and Distributed Programming, 2nd Ed. Addison-Wesley, 2006. - G. R. Andrews. Foundations of Multithreaded, Parallel, and Distributed Programming. Addision-Wesley, 2000. - M. L. Liu, Distributed Computing: Principles and Applications, Addison-Wesley, 2004. |
成績評価の方法・基準 /Grading method/criteria |
The final grade is based on the following parts: - Exercises (50% of the final score). - Two exams (30% of the final score). - Quizzes on lecture content (20% of the final score). We keep strict deadlines in this course. |
履修上の留意点 /Note for course registration |
The presented course is not an introductory subject. It is intended for students who already have basic experience in programming such as Java Programming, Algorithms and Data Structures, Object-Oriented Programming, Operating Systems. |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
RAGE Uday Kiran |
担当教員名 /Instructor |
RAGE Uday Kiran, YAMADA Ryuhei |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/29 |
---|---|
授業の概要 /Course outline |
Python is a popular programming language widely used to develop large-scale industrial applications. Moreover, Python is tightly coupled with the Database Management System (DBMS) to generate data frames, which are used extensively in AI and big data fields. In this context, the current course aims to educate the students on Python, DBMS, and data frames. Briefly, this course covers the following topics: (i) fundamentals of Python (architecture, syntax, variable declaration, and compiling), (ii) Object Oriented Concepts in Python, (iii) python documentation, (iv) introduction to mini-world and Entity-Relation schema, (v) introduction to DBMS architecture and Structured Query Language (vi) Data frames, and (vii) data processing using data frames. One period of teaching + two periods of exercise |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. In this course, the students will learn the following topics: 1. Developing applications in Python 2. Designing models to store voluminous data generated by the real-world applications. 3. Approaches to query the needy data 4. Storing and processing the data using data frames for AI and Big Data tasks. |
授業スケジュール /Class schedule |
Lecture topics: 1. Introduction to Python 2. Object Oriented Programming in Python 3. Classes, Packaging, and Documentation 4. Introduction to Database Management Systems 5. Entity-Relationship Model 6. Structured Query language -1 (Meta-data commands: Create, Alter, Drop) 7. Structured Query language-2 (Data commands: Insert, Update, and Delete) 8. Structured Query language-3 (Data commands: Select) 9. Keys and Indexes 10. Object Database Connectivity (ODBC) 11. Data frames 12. Managing data frames 13. Knowledge discovery in data Exercise topics: 1. Exercise on input and output operations in Python 2. Tower of Hanoi in Python 3. Reading files into dictionary and searching. 4. Web crawling/scrapping application 5. ER-model and database design for air pollution data 6. Storing the air pollution data in the database 7. Inserting the data into the database 8. Creating the indexes 9. Reading the data from the files and inserting into the database 10. Discussion on previous exercises 11. Generating data frames for SQL 12. Processing air pollution data that exists in data frames 13. Pattern mining on the data frames |
教科書 /Textbook(s) |
Database Systems: The Complete Book, Hector Garcia-Molina, Jeffrey Ullman, Jennifer Widom Python course presentation from Stanford University: http://web.stanford.edu/class/archive/cs/cs106a/cs106a.1212/lectures/4-Variables/4-IntroPython.pdf |
成績評価の方法・基準 /Grading method/criteria |
Students will be graded based on the quizzes, exercises, and the final exam. Exercise do not carry negative marks. However, quizzes and final exam will carry negative marks. Grading will be done using Percentile basis. Thus, the formula for grading is as follows: (yourTotalMarksInQuizzes+Exercises+FinalExam*100)/maximumMarksGotByStudent |
履修上の留意点 /Note for course registration |
It is advisable for the students to have familiarity with the following courses: a) Operating systems b) Structured Programing language |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Stanford university: https://web.stanford.edu/class/cs245/ |
Open Competency Codes Table Back |
開講学期 /Semester |
2024年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
RAGE Uday Kiran |
担当教員名 /Instructor |
RAGE Uday Kiran, DANG Nam Khanh |
推奨トラック /Recommended track |
- |
先修科目 /Essential courses |
- |
更新日/Last updated on | 2024/01/29 |
---|---|
授業の概要 /Course outline |
Big data analytics (BDA) represents a complex process of analyzing voluminous data to uncover useful information -- such as hidden patterns, correlations, market trends and customer preferences -- that can help organizations make informed business decisions. BDA is the fundamental course for machine learning and deep learning courses. Without proper knowledge on BDA, it is very difficult to develop machine learning/deep learning process. A student/person who aspires to achieve mastery in machine learning/deep learning must have acquire the knowledge on the following courses: Database systems – Artificial Intelligence – Big Data Analytics – Information Extraction and Retrieval – Graph Analytics – Machine Learning – Deep Learning One period of teaching + two periods of exercise |
授業の目的と到達目標 /Objectives and attainment goals |
[Corresponding Learning Outcomes] (A)Graduates are aware of their professional and ethical responsibilities as an engineer, and are able to analyze societal requirements, and set, solve, and evaluate technical problems using information science technologies in society. Technological advances in the field of computer science have enabled organizations to collect voluminous data in databases. Useful knowledge that can empower end-users with competitive information is hidden in this voluminous data. Unfortunately, conventional statistical techniques are inadequate to extract knowledge hidden in this data. This scenario is called “Data Rich-Information Poor Situation” (or finding a needle in a haystack). The field of BDA has emerged to address this problem in real-world applications. In this course, the students will learn the following topics: 1. Properly storing the raw data in the databases. 2. Constructing data warehouses to analyze voluminous data. 3. Various imputation techniques. 4. Different knowledge discovery techniques, such as Pattern mining, Clustering, Classification, and Prediction. |
授業スケジュール /Class schedule |
Lecture topics: 1. Introduction to Online Transaction Processing (OLTP) 2. Introduction to Online Analytical Processing (OLAP) 3. Introduction to Data Mining and ETL (Extract, Transform, and Load) techniques 4. Prediction (Linear and Auto Regression models) 5. Time series forecasting (ARIMA) 6. Classification (Bayesian theorem) 7. Classification (Decision trees) 8. Time series classification 9. Ensemble techniques and Voting procedures 10. Clustering (K-Means) 11. Clustering (DBSCAN) 12. Association Rule Mining 13. Pattern Mining Exercise topics: 1. Draw the ER-schema, create tables and store the data in PostGres database for the given air pollution data. (OLTP) 2. Construct the data warehouse for the data stored in Exercise-1 3. Perform imputation and fill-up the missing values in the data warehouse created in Exercise-2 4. Performing linear regression and auto regression on the air pollution data 5. Perform ARIMA on the air pollution data 6. Exercise on Bayesian Classification 7. Exercise on Decision trees Classification 8. Time series classification 9. Developing an Ensemble classification model 10. Exercise on KMeans algorithm to cluster air pollution data 11. Exercise on DBSCAN algorithm to cluster pollution data 12. Mining association rules from the air pollution data 13. Mining user interest-based from the air pollution data. |
教科書 /Textbook(s) |
Data Warehousing and Mining: Han and Kamber |
成績評価の方法・基準 /Grading method/criteria |
Students will be graded based on the quizzes, exercises, and the final exam. Exercise do not carry negative marks. However, quizzes and final exam will carry negative marks. Grading will be done using Percentile basis. Thus, the formula for grading is as follows: (yourTotalMarksInQuizzes+Exercises+FinalExam*100)/maximumMarksGotByStudent |
履修上の留意点 /Note for course registration |
It is advisable for the students to have familiarity with the following courses: a) Operating systems b) Database systems c) Programing language |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Stanford university: https://web.stanford.edu/class/cs246/index.html#schedule The University of Tokyo: https://ocwx.ocw.u-tokyo.ac.jp/course_11414/ Data Mining text book soft copy: http://myweb.sabanciuniv.edu/rdehkharghani/files/2016/02/The-Morgan-Kaufmann-Series-in-Data-Management-Systems-Jiawei-Han-Micheline-Kamber-Jian-Pei-Data-Mining.-Concepts-and-Techniques-3rd-Edition-Morgan-Kaufmann-2011.pdf |