2020/02/05 |
Back |
開講学期 /Semester |
2019年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Vitaly V. Klyuev |
担当教員名 /Instructor |
Vitaly V. Klyuev, Yen Neil Yuwen |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/02/14 |
---|---|
授業の概要 /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 |
The aim of this course is to study current concepts and methods for Web application engineering. |
授業スケジュール /Class schedule |
The main topics covered in the course are as follows: Lecture 1 Introduction Lecture 2 A Web engineering process Lecture 3 Communication Lecture 4 Introduction to Rails on Ruby technology Lecture 5 Ruby vs. other languages Lecture 6 Web application architecture Lecture 7 Building an Application Lecture 8 Finding your way around Rails Lecture 9 Designing and implementing an example application utilizing Ruby on Rails: a Depot Application Lecture 10 Task: Validation Lecture 11 Task: Catalog display Lecture 12 Tasks: Cart creation and A smarter cart Lecture 13 Universal Design for Web Applications: Google's Approach Lecture 14 Where to go? See the course page below for details and updates. |
教科書 /Textbook(s) |
Agile Web Development with Rails 4 by Sam Ruby, Dave Thomas and Devis Hansson, The Pragmatic Bookshelf, 2013. Puntambekar A.A., Web Engineering, Technical Publications, 2012. Mazin S. Al-Hakeem, Fundamentals of Web Engineering: An Engineering Approach to Develop Web Services, Contents and Environment under Standards Specification of Web Design, Lambert Academic Publishing, 2012. |
成績評価の方法・基準 /Grading method/criteria |
The final grade will be calculated based on the following contributions: Exercises - 50%, Quizzes during lectures - 15%, Final examination - 35%. |
履修上の留意点 /Note for course registration |
Formal prerequisites: JAVA Programming II |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
A course coordinator Prof. Vitaly Klyuev has practical working experience. He was working as a Senior researcher in an international consortium of the INCO Copernicus Program of the Commission for European Communities, Brussels, Belgium. He was involved in the development of the distributed search system running on the Web. He has teaching experience of different courses related to programming for more than 30 years. Course Web page |
Back |
開講学期 /Semester |
2019年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Subhash Bhalla |
担当教員名 /Instructor |
Subhash Bhalla, Yen Neil Yuwen |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/02/22 |
---|---|
授業の概要 /Course outline |
The course covers concepts in Web Programming, for web sites and user interaction. The course is focused on developers of large scale Web based systems. It also covers basic knowledge at Programmer level. |
授業の目的と到達目標 /Objectives and attainment goals |
It is a basic course related to Human-computer Interfaces. It covers information Systems, Web systems Engineering, Human-computer interaction and IT. It considers how to present information and how to manage and implement scalable web applications. |
授業スケジュール /Class schedule |
The following topics are to be covered, Lecture 1 - 3 -XML, XHTML, JavaScript, Perl, Perl CGI programming, -Common Gateway Interface (CGI), Alternative technologies, Web Server Configuration -HTTP, Proxies, Content Navigation Lecture 4- 6 -CGI (environment, variables, output) -Server side scripting with PHP, Web Services -Server side scripting with JSP Lecture 7-9 -Security: Handling user input, encryption, data storage -Data Persistence: files, DBMS, Database Interface -Middleware and XML Lecture 10 - 14 -Design: models, debugging of CGI Applications -Application Development environments |
教科書 /Textbook(s) |
Programming the World Wide Web, (by Sebesta) Pearson International Edition. |
成績評価の方法・基準 /Grading method/criteria |
Mid-term Examination(30 points); Two short quizzes (40 points (20 points each) ) Web Programming Assignments(30 points) |
履修上の留意点 /Note for course registration |
Algorithms and Data Structures, Computer Programming, Java Programming, Database Systems |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Book, Course material, slides and notes recommended by the instructor(s). |
Back |
開講学期 /Semester |
2019年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Alexander P. Vazhenin |
担当教員名 /Instructor |
Alexander P. Vazhenin, Yutaka Watanobe |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/02/13 |
---|---|
授業の概要 /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 presentation topic as well as student engineering topic. |
授業の目的と到達目標 /Objectives and attainment goals |
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 three parts: first, lectures are given on several current topics of interest; second, students are asked to make a presentation on a topic interesting to them; and third, students are given a programming project to design and implement a system using the Object-Oriented (Java) and Visual Programming paradigm. |
授業スケジュール /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: Midterm Lecture 9: Software change: Maintenance and Architectural Evolution Topics to study: -Program evolution dynamics -Software maintenance -Architectural evolution Lecture 10: Software re-engineering Topics to study: -Source code translation -Reverse engineering -Program structure improvement -Program modularization -Data re-engineering Lecture 11: Critical systems development Topics to study: -Dependable processes -Dependable programming -Fault tolerance -Fault tolerant architectures Lecture 12: Software Security Engineering Topics to study: -Security concepts -Security risk management -Design for security -System survivability Lecture 13: Code Writing Topics to study: -Organization and Purposes -Quality requirements -Algorithmic complexity -Methodologies -Measuring language usage -Debugging Lecture 14: Student presentations |
教科書 /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). All Lab Exercises: 50 points in total including: * Presentation Topic: 20 points * Engineering Topic: 30 points - All reports submitted: 20 points - The GUI Interface designed:10 points 2). Midterm Test: 25 points 3). Final Exam: 25 points |
履修上の留意点 /Note for course registration |
Software Engineering I, Programming I and II, Java Programming I and II Formal prerequisites:SE3 Software Eng. I |
参考(授業ホームページ、図書など) /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. Course WWW-site: http://sealpv2.u-aizu.ac.jp/ 2. Software Engineering: A Practitioner's Approach, 4th edition by Roger S. Pressman, publisher: McGraw-Hill 3. B.B. Agarwal, S.P. Tayal, M. Gupta, Software Engineering & Testing, Computer Science Series. |
Back |
開講学期 /Semester |
2019年度/Academic Year 前期 /First Semester |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Rentaro Yoshioka |
担当教員名 /Instructor |
Rentaro Yoshioka, Tatsuki Kawaguchi |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/03/04 |
---|---|
授業の概要 /Course outline |
Students will develop software for real-world customers in teams and through the process 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 5-10 students. Teams will start from listening to customers to request and defining 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 as well as the completed software, and finally deliver the software to the customer. Professional software engineers will support each team as coaches to advice on practical development tasks. Every week, each team will report their progress to the coaches and lecturers. Meetings with customers will be held as required. The phases of the development will be controlled by specific deliverables that must be submitted in order 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. In order to deliver software that best satisfies customer requirements, including both functional and quality requirements, utmost creativity and effort is imperative. A considerable amount of outside classroom hours are spent to acquire necessary knowledge and skills as well as to revise work. Furthermore, self-motivated and proactive involvement by all members of the team is essential for a successful delivery. |
授業の目的と到達目標 /Objectives and attainment goals |
1. The student understands the challenges related to developing software with specific functional and quality requirements, and the basic methods in solving them. 2. The student understands the necessity of project management in order 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 quickly act 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. Meeting of team and customer will be performed. Week 1: Project Kickoff and Planning Divide roles among team members, prepare project management system, receive overview of project background and requirements from client, and develop a plan of the project. Week 2: Field Work Visit client site to understand the problem and environment of the required solution. (Schedule is subject to client’s circumstances) Week 3: Requirements Definition Analyze the problem carefully, derive clear and precise requirement, and obtain consent on the scope of the system with the customer. Week 4: Requirements Definition Analyze the problem carefully, derive clear and precise requirement, and obtain consent on the scope of the system with the customer. Week 5: Requirements Definition Analyze the problem carefully, derive clear and precise requirement, and obtain consent on the scope of the system with the customer. Week 6: Interim Review The customer will examine the current progress and decide whether the team may proceed to the following phases. Week 7: Analysis Based on the results from requirements definition phase, logically analyze the requirements and plan a practical solution. Week 8: Analysis Based on the results from 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 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 deliverable from design phase, and decide whether the software is valid for acceptance. *Schedule management is performed by the teams so progress may vary, but the dates of the interim and final reviews cannot be changed. Teams are requested to actively prototype. |
教科書 /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% * Contribution of each student will be checked in weekly progress reports and 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 in the project, 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 are required to attend an individual interview with the lecturers before first lecture usually scheduled from 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 are subject to penalty in final assessment. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
http://borealis.u-aizu.ac.jp/classes/studio/ http://u-aizu.ac.jp/enpit/ The course instructor has working experiences: Currently active software engineers (with more than 30 years’ experience) and faculty with previous software development experience will jointly provide lectures and exercises. |
Back |
開講学期 /Semester |
2019年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Maxim Mozgovoy |
担当教員名 /Instructor |
Maxim Mozgovoy |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/12/12 |
---|---|
授業の概要 /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 |
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 8. Types of Distributed Systems 9. Client-Server Programming 10. RMI: Distributed Objects in Java 11. Modern Concurrent Programming in Java 12. Grids and Clouds 13. OpenMP Technology. 14. Actors and Akka Toolkit. |
教科書 /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. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
https://tinyurl.com/cds-course |
Back |
開講学期 /Semester |
2019年度/Academic Year 2学期 /Second Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Subhash Bhalla |
担当教員名 /Instructor |
Subhash Bhalla, Wanming Chu |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2019/02/22 |
---|---|
授業の概要 /Course outline |
A model of a data is created in table form. It is matched with a set. The model helps in understanding the users' needs. It helps Programmers and improves design. The course prepares the participants to become system engineers, and software developers. The first part, explains relational theory and query languages for databases. Second part contains a study of database management system. |
授業の目的と到達目標 /Objectives and attainment goals |
Database systems are commonly used for information Systems. The course covers system architecture, and database design. It also covers the relational database systems technology. It provides knowledge of application development and experiments of working with relational databases. Concepts related to web data, knowledge and information extraction, and Data Mining are explained. Most of the study uses detailed examples and class exercises. |
授業スケジュール /Class schedule |
Lecture 1: Data Model+Operations , help exercises Lecture 2: Database Query Languages, Model Database exercises Lecture 3: Relational Algebra , Database exercises Lecture 4: Relational Calculus + Database exercises Lecture 5: Dictionary and storage, Design of a Database Lecture 6: Storage Indexing Complete Hw + Ex ( Part I ) -----------------------Mid-Term exam ( May 25 )-------------------------- Lecture 7 Objects - Relations , startup(PostgreSQL O-RDBMSs) Lecture 8 Data Integrity , loading database Lecture 9 DBMS Architecture , simple SQL queries Lecture 10 SQL - Programming , complex SQL queries Lecture 11 Relational databases, SQL functions and procedures Lecture 12 Views,XML,O-RDBMS , Database modifications Lecture 13 Postgres Internals , Web database programming Lecture 14 Web Data , Complete Hw + Ex ( Part II) |
教科書 /Textbook(s) |
Database Systems Concepts, 6th edition, by Korth, H.A., Silberschatz, A., and Sudershan, S., McGrawHill Book Co., 2010. |
成績評価の方法・基準 /Grading method/criteria |
Mid-term Examination(30 points); Two short quizzes (40 points (20 points each)) Database Programming Assignments(30 points) |
履修上の留意点 /Note for course registration |
Prior study of following courses is recommended - discrete mathematics, programming, Data structures and algorithms. |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Books, Course material, lecture slides and notes recommended by the instructor(s), will be provided. |