Collaborative Research: Developing Course Modules to Teach Service-Oriented Programming through Exemplification and Visualization Xumin Liu, Rajendra K. Raj, Tom Reichlmayr (RIT) Chunmei Liu (Howard University) Alex Pantaleev (SUNY at Oswego) Acknowledgments This material is based upon work supported by the United States National Science Foundation under Awards No. DUE-1140567, DUE-1141112, and DUE1141200. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation. Overview Motivation Course Module Approach Course Modules 1 (Consuming a Web Service) 2 (Building and Deploying a Web Service) 3 (Web Service Applications) Conclusion Motivation Global service-oriented middleware market will grow to at least $8.2 billion by 2016, according to a WinterGreen Report1 Crucial for undergraduate CS/SE students to learn about web services and service-oriented computing Students need repeated exposure to SOP concepts at different degrees of depth 1http://www.wintergreenresearch.com/reports/SOA%202010%20press%20release. pdf Student Goals Explain the motivation for learning about serviceoriented programming (SOP) Describe the issues and concepts underlying SOP Solve problems using SOP techniques Gain hands-on experience with SOP Abstractions: Evolution Figure is from Introduction to Web Services by Dr. Marcello La Rosa, QUT Object- and Service-Orientation Steps in solving a complex problem Abstraction Decomposes problem into sub-problems Solves each sub-problem and composes overall solution Object-orientation Describes an abstraction using objects Objects help to model problem and develop the solution Service-orientation Describes an abstraction using services Services help to model problem and develop the solution Developed service can be used to develop new services Service Oriented Programming Basic idea Wrap up a software system as a set of services, accessible via the Internet Use services as the building blocks to develop applications Standardize the way of describing, querying, and calling a service to deal with interoperability issues Service Oriented Architecture A meta-architectural style that supports loosely coupled services to enable business flexibility in an interoperable manner SOA requires the following All functions are defined as services All services are independent of each other Service interfaces are invocable Teaching SOP via Course Modules Important to incorporate SOP into the curriculum early Make SOP materials to instructors as course modules A course module is a well-defined, self-contained unit of instruction that may be incorporated, either as-is or with minor modifications, within one or more courses offered in diverse disciplines Course modules have become an excellent vehicle for handling curricular changes quickly Vertical integration into the curriculum via repeated exposure to SOP at different depths Three course modules Course Module Template Component Brief Description Overview Description, prerequisite knowledge, and learning outcomes Rationale Motivation for the module Recommended use Recommendations for typical usage Slides Module content for lectures or independent learning activities Sample questions For use in low-stake quizzes Labs/assignments For hands-on experiences in solution design, implementation, and verification FAQ Answers to students frequently asked questions Readings Introductory or supplementary materials referenced in module Links Pointers to online and other materials used in the module Module evaluation Assessment tools to measure learning and module effectiveness Three Course Modules Course module 1 Introduces SOP into a standard second programming course, e.g., CS2 Course module 2 Presents SOP as a programming paradigm in a mid-level course, e.g., Concepts of Programming Languages Course module 3 Applies SOP to software design and development in a senior-level course, e.g., Distributed and Concurrent Software Systems Course Module 1 Targets freshmen computing students Lecture slides provide a brief overview of serviceoriented architecture, web service standards, and fundamental principles of SOP methodology Sample questions test materials covered by slides Demo showcases development of an application using web services Lab provides step-by-step instructions for calling a web service Course Module 2 Targets mid-level students (sophomores or juniors) Lecture slides cover topics including service-orientation, service-oriented architecture, service description, discovery, invocation, and composition Sample questions test the material covered by slides Demo showcases the development of a web service and an application using web services Lab provides step-by-step instructions for developing a web service and an application by calling a web service Course Module 3 Targets senior students Lecture slides focus on the architecture, design, and implementation of enterprise-critical software systems Sample questions test the materials covered by slides Project asks students to develop an SOP application reflecting a real-world scenario Concluding Remarks Current Status All modules have been developed and tested All modules at RIT Module 1 at Howard Module 1 and 3 at SUNY Oswego Initial assessment and revision Modules and assessment at all three institutions in 2013-14 Improvements being pursued In modules and in assignments Last Words Contact Xumin Liu or any of us if you want to try out the developed materials xl@cs.rit.edu All you have to do is to provide us with feedback using our standard surveys Languages/platforms Java NET and C#