2018/01/30 |
Back |
開講学期 /Semester |
2017年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Vitaly V. Klyuev |
担当教員名 /Instructor |
Vitaly V. Klyuev, Yen Neil Yuwen |
推奨トラック /Recommended track |
SE |
履修規程上の先修条件 /Prerequisites |
P6 |
更新日/Last updated on | 2017/01/27 |
---|---|
授業の概要 /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: A Web engineering process; Introduction to Rails on Ruby technology; Ruby vs. other languages; Web application architecture; Building an Application; Finding your way around Rails; Designing and implementing an example application utilizing Ruby on Rails: a Depot Application; Tasks: Validation, Catalog display, Cart creation, A smarter cart; Universal Design for Web Applications: Google's Approach; 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 - 40%, Quizzes during lectures - 25%, Final examination - 35%. |
履修上の留意点 /Note for course registration |
JAVA Programming II Formal prerequisites:P6 JAVA Programming II |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
Course Web page |
Back |
開講学期 /Semester |
2017年度/Academic Year 1学期 /First Quarter |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Subhash Bhalla |
担当教員名 /Instructor |
Subhash Bhalla, Wanming Chu, Maxim Mozgovoy |
推奨トラック /Recommended track |
SE |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2017/02/01 |
---|---|
授業の概要 /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, -XML, XHTML, JavaScript, Perl, Perl CGI programming, -Common Gateway Interface (CGI), Alternative technologies, Web Server Configuration -HTTP, Proxies, Content Navigation -CGI (environment, variables, output) -Server side scripting with PHP, Web Services -Server side scripting with JSP -Security: Handling user input, encryption, data storage -Data Persistence: files, DBMS, Database Interface -Middleware and XML -Design: models, debugging of CGI Applications -Application Development environments |
教科書 /Textbook(s) |
Programming the World Wide Web 2016, (by Sebesta) 8th Edition, Pearson International Edition. |
成績評価の方法・基準 /Grading method/criteria |
Quiz 1 ( 30 Marks ) Quiz 2,3 ( 20,20 Marks ) Exercise class (exercises+Homework) 30 Marks Total Marks: 30 + 20 + 20 + 30 (100) |
履修上の留意点 /Note for course registration |
Background in Algorithms, Data Structures and Programming |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
All lectures and exercises are supported by Slides, Notes and reading material as recommended by the Lecture/exercise teacher. |
Back |
開講学期 /Semester |
2017年度/Academic Year 3学期 /Third Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Alexander P. Vazhenin |
担当教員名 /Instructor |
Alexander P. Vazhenin, Yutaka Watanobe |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
F14 |
更新日/Last updated on | 2017/01/27 |
---|---|
授業の概要 /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-8: Visual Programming Systems Topics to study: - Terminology - Classification and Theory - A Review of Visual Programming Systems Lecture 9: Midterm Lecture 10: Software change: Maintenance and Architectural Evolution Topics to study: -Program evolution dynamics -Software maintenance -Architectural evolution Lecture 11: Software re-engineering Topics to study: -Source code translation -Reverse engineering -Program structure improvement -Program modularization -Data re-engineering Lecture 12: Critical systems development Topics to study: -Dependable processes -Dependable programming -Fault tolerance -Fault tolerant architectures Lecture 13: Software Security Engineering Topics to study: -Security concepts -Security risk management -Design for security -System survivability Lecture 14: Code Writing Topics to study: -Organization and Purposes -Quality requirements -Algorithmic complexity -Methodologies -Measuring language usage -Debugging Lecture 15: 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.) |
1. Course WWW-site: http://sealpv0.u-aizu.ac.jp/moodle/ 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 |
2017年度/Academic Year 前期 /First Semester |
---|---|
対象学年 /Course for; |
4th year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Rentaro Yoshioka |
担当教員名 /Instructor |
Rentaro Yoshioka, Tatsuki Kawaguchi |
推奨トラック /Recommended track |
SE |
履修規程上の先修条件 /Prerequisites |
P6 |
更新日/Last updated on | 2017/01/23 |
---|---|
授業の概要 /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 8-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 15, 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 (two 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 Divide roles among team members, prepare project management system, read RFP. Week 2: Planning Interview the customer and develop a plan of the development phases. Week 3: Planning Finalize project plan and obtain approval of 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: Requirements Definition Analyze the problem carefully, derive clear and precise requirement, and obtain consent on the scope of the system with the customer. Week 7: Interim Review The customer will examine the current progress and decide whether the team may proceed to the following phases. Week 8: Analysis Based on the results from requirements definition phase, logically analyze the requirements and plan a practical solution. Week 9: Analysis Based on the results from requirements definition phase, logically analyze the requirements and plan a practical solution. Week 10: Design Describe the structure and behavior of functions/objects of the system with consideration to programming. Week 11: Design Describe the structure and behavior of functions/objects of the system with consideration to programming. Week 12: Development Create source code of the software. Week 13: Development Create source code of the software, and begin testing. Week 14: Testing Test the developed software. Week 15: 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 individually by each team so progress may vary, but the dates of the interim and final reviews may not be changed. |
教科書 /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 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 |
Important related courses: Software Engineering I, courses on programming (NOTE: these are not prerequisites.) 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 penalty in final assessment. Formal prerequisites:P6 JAVA Programming II |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
http://borealis.u-aizu.ac.jp/classes/studio/ |
Back |
開講学期 /Semester |
2017年度/Academic Year 4学期 /Fourth Quarter |
---|---|
対象学年 /Course for; |
3rd year |
単位数 /Credits |
3.0 |
責任者 /Coordinator |
Maxim Mozgovoy |
担当教員名 /Instructor |
Maxim Mozgovoy |
推奨トラック /Recommended track |
- |
履修規程上の先修条件 /Prerequisites |
- |
更新日/Last updated on | 2017/01/18 |
---|---|
授業の概要 /Course outline |
A distributed system is a collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility. A distributed application consists of collaborating objects residing on separate nodes of a network. It is obvious now that distributed systems have become pervasive because many applications require the cooperation of two or more computers. Moreover, the design and implementation of such systems and corresponding software remain challenging and complex tasks. We believe that this computer science course should actively engage the students in exploring the concepts of distributed computing. The course content includes and characterizes Distributed Systems Architectures, Distributed Software Design Issues, Programming Models and Paradigms, explores their services and implementations. |
授業の目的と到達目標 /Objectives and attainment goals |
At the end of the course the student should be able to: - Estimate the features and metrics of the distributed applications and software. - Distinguish advantages and problems of distributed computing. - Explain some details of data parallel processing. - Know how to design client-server applications. - Show experience in parallel programming. |
授業スケジュール /Class schedule |
1. Principles of the Distributed Software Engineering: Classifications, Metrics, and Design Issues, 2. Shared Memory Programming: Basic Concepts, Thread Models, Structured Shared-memory Programming, Distributed Shared-memory, 3. Message Passing Models: Inter-process Communications, MPI and PVM systems, SPMD/MPMD, Master/Slave and Divide/Conquer Paradigms, 4. Client-Server Computing: Models and Application Areas, Sockets, Code Mobility and Agents, 5. Distributed Object Architectures: DCOM, CORBA, Remote Method Invocation, 6. Special Topics of Distributed Software Engineering: Performance, Accuracy, High-Level Programming Models, Cluster and GRID Computing. |
教科書 /Textbook(s) |
Distributed Systems: Principles and Paradigms by Andrew S. Tanenbaum and Maarten van Steen, Prentice Hall, 2007, Distributed Systems Concepts and Design by George Coulouris, Jean Dollimore and Tim Kindberg, Fourth Edition, Addison Wesley,2005 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 |
Students should be prompt for lectures, labs, and exams. Programming assignments must be turned in by the stated date and time. To pass this course, all the requirements must be satisfactorily completed. The course final grade includes the following parts: 1. Lab Exercises: 20 points. 2. Homework: 30 points. 3. Exams: 50 points (at the middle and at the end of the 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 C/C++ and Java Programming, Algorithms and Data Structures, Object-Oriented Programming, Operating Systems. Formal prerequisites:None |
参考(授業ホームページ、図書など) /Reference (course website, literature, etc.) |
www.tinyurl.com/aizu-dc |