a (web) service-oriented approach to teaching cs/is1 billy lim, bryan hosack, paul vogt school of...

Download A (Web) Service-Oriented Approach to Teaching CS/IS1 Billy Lim, Bryan Hosack, Paul Vogt School of Information Technology Illinois State University

If you can't read please download the document

Post on 21-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1
  • A (Web) Service-Oriented Approach to Teaching CS/IS1 Billy Lim, Bryan Hosack, Paul Vogt School of Information Technology Illinois State University
  • Slide 2
  • INTRODUCTIONS Project Personnel Workshop Participants
  • Slide 3
  • School of Information Technology Schedule Project Overview/Experience Report (9:00-10:15am) Hands-On Exercises (10:30am-12:00pm) Lunch (12:00-1:00pm) Assignment Development (1:00-2:30pm) Discussion /Feedback (2:45-4:00pm)
  • Slide 4
  • School of Information Technology Workshop Objectives 1. Disseminate the use of service-oriented approach to teaching CS1/IS1 2. Explore educational innovations for indoctrinating students the state-of-the-art software development practices using SOA 3. Build a learning/research community of service- orientation-in-CS1/IS1 enthusiasts.
  • Slide 5
  • School of Information Technology Project Overview Began with: "On Integrating Web Services from the Ground Up into CS1/CS2," ACM SIGCSE 2005, St. Louis, MO, Feb., 2005. Now supported by: NSF-DUE-CCLI-0837056, "Integrating Service-Oriented Paradigm into Introductory Information Technology Curricula," 2009 2011.
  • Slide 6
  • School of Information Technology Basic Ideas SOA/Web services have gained popularity in many industries and in upper division/graduate CS/IS curricula Why not introduce service-orientation earlier in the curriculum? Service-orientation can make a course more interesting Service-orientation can better prepare students for upper division classes and for the industry upon graduation Service-orientation can introduce sound principles of software engineering earlier in the curriculum
  • Slide 7
  • School of Information Technology Courseware Showcase Main project site: http://www.itk.ilstu.edu/ws4intro http://www.itk.ilstu.edu/ws4intro The site contains info on: PowerPoint slides Lab exercises Programming assignments Tutorials List of Web services used
  • Slide 8
  • School of Information Technology Experience Report Outcome 1: Students will provide a better evaluation of the IT1 course by 10% as compared to traditional IT1 course evaluations. Students will also indicate a positive perception of the SOA/Web services learning experience. Outcome 2: Student course grade performance will increase in the IT1 course by 10% as compared to traditional IT1 course performance. Outcome 3: Employers of computer science and information technology students will indicate a positive response to an SOA/Web services centered curriculum.
  • Slide 9
  • School of Information Technology Experience Report (contd) Outcome 1: Limited datapartial support In hindsight we should have chosen a different measure The amount of data collected will be limited and probably wont be statistically significant
  • Slide 10
  • School of Information Technology Experience Report (contd) Outcome 2: Demographics 99 students (missing cases were mostly drops) 34% in WS/SOA section 12% of the students were female, 88% male 76% unable to define What is a WS? to 88% could define
  • Slide 11
  • School of Information Technology Experience Report (contd) Outcome 2: Statistically significant improvement in final exam performance and course grade Final Exam Regression Coefficients a Model Unstandardized Coefficients Standardized Coefficients tSig. 95% Confidence Interval for B BStd. ErrorBetaLower BoundUpper Bound 1(Constant) 12.5859.1051.382.170-5.49430.663 Female1 -15.2986.755-.166-2.265.026-28.709-1.886 Class.4432.346.014.189.851-4.2165.101 Tradl1 -11.4834.669-.181-2.459.016-20.753-2.212 CumGPA 23.0712.524.6629.141.00018.06028.083 a. Dependent Variable: FinlExm, Adj R-Squared.493
  • Slide 12
  • School of Information Technology Experience Report (contd) Outcome 2: Statistically significant improvement in course grade Final Grade Regression Coefficients a Model Unstandardized Coefficients Standardized Coefficients tSig. 95% Confidence Interval for B BStd. ErrorBetaLower BoundUpper Bound 1(Constant) -.515.338-1.523.131-1.187.157 Female1 -.673.251-.155-2.682.009-1.171-.175 Class -.192.087-.130-2.207.030-.365-.019 Tradl1 -.456.173-.153-2.630.010-.801-.112 CumGPA 1.325.094.80714.126.0001.1391.511 a. Dependent Variable: Grade Adj R-Squared =.684
  • Slide 13
  • Experience Report (contd) Outcome 2: Grading bias and other concerns Tukey Pairwise Comparisons were not significant for the instructors, except for one pairing. This pairing did not include either of the instructors teaching the web service sections. More data will help alleviate concerns about the grading Mean Grades Awarded NMeanStd. Deviation 1 1271.941.305 2 392.461.570 3 153.131.060 4 32.332.082 5 362.671.242 6 652.541.251 7 362.281.466 8 102.701.636 9 272.781.219 10 1.501.509 Total 3682.331.376
  • Slide 14
  • School of Information Technology Experience Report (contd) Outcome 3: Employers of computer science and information technology students will indicate a positive response to an SOA/Web services centered curriculum. Survey developed (see handout) Companies contacted/to contact: Amazon, Google, State Farm (other local users), suggestions
  • Slide 15
  • School of Information Technology Experience Report (contd) Continued interest in students after the completion of the class Initial frustration translates to positive response when creating real-world-like applications Engaging experience for faculty Second semester syndrome
  • Slide 16
  • School of Information Technology Experience Report (contd) Do I have to code this? Isnt there a Web service to do that? A students comment on the requirement to validate the states 2-letter abbreviation (must be one of the 50 state abbreviations). But thats just calling the Web service to get a word from the dictionary, right? A students remark on needing to handle the part of the assignment that requires them to hit a Web service to randomly generate a word (after he has already completed the part where he provides his own word) in the Hangman program.
  • Slide 17
  • Session 2: Web services in CS1/IS1
  • Slide 18
  • School of Information Technology Reusable Components Most programs are created by combining components that exist already, not from scratch! Reusing components saves time and money. Reused components are likely to be better developed, and more reliable. New components should be designed to be reusable by other applications. Source: Savitch & Carrano 2009 CS1 text
  • Slide 19
  • School of Information Technology Software Reuse Package names Class names Description of class Scanner Source: Savitch & Carrano 2009 CS1 text
  • Slide 20
  • School of Information Technology Software Reuse via SOA/WS Latest form of reuse is via services SOA (Service-Oriented Architecture) A system for linking resources on demand. In an SOA, resources are made available to other participants in the network as independent services that are accessed in a standardized way. This provides for more flexible loose coupling of resources than in traditional systems architectures. Sybase Architecture that describes an entity (e.g., application or enterprise) as a set of interdependent services. SOA provides for reuse of existing services and the rapid deployment of new business capabilities based on existing assets. -- CIO.gov Many others
  • Slide 21
  • School of Information Technology Software Reuse via SOA/WS One popular way of implementing SOA is via Web services WS (Web Service) "a software system designed to support interoperable machine-to- machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards. W3Cinteroperablemachine-to- machinenetworkWSDL Laymen terms: a piece of program that can interact with another program using standardized Web protocols Examples: Google Maps API, Flickr API, Twitter API, Amazon Web services. (API = Application Programming Interface)
  • Slide 22
  • School of Information Technology NetBeans Generated Code Template try { // Call Web Service Operation service = new ; port = service.get (); // TODO initialize WS operation arguments here declarations of arguments here // TODO process result here result = port.methodOfInterest(argument list); System.out.println("Result = "+result); } catch (Exception ex) { // TODO handle custom exceptions here } Bold: Statements of interests; Wish Exception ex was printed as part of the template.
  • Slide 23
  • School of Information Technology Decision Structure try { // Call Web Service Operation com.cdyne.ws.profanityws.profanity.Profanity service = new com.cdyne.ws.profanityws.profanity.Profanity(); com.cdyne.ws.profanityws.profanity.ProfanitySoap port = service.getProfanitySoap(); // TODO initialize WS operation arguments here java.lang.String text = You smoked weed? Dumb!"; // TODO process result here com.cdyne.ws.profanityws.profanity.FilterReturn result = port.simpleProfanityFilter(text); if (result.isFoundProfanity()) else } catch (Exception ex) { // TODO handle custom exceptions here }
  • Slide 24
  • School of Information Technology Repetition Structure mypackage.ISUDirectoryLookUpService service = new mypackage.ISUDirectoryLookUpService(); mypackage.ISUDirectoryLookUp port = service.getISUDirectoryLookUpPort(); // TODO initialize WS operation arguments here java.lang.String lastName = aLastName; java.lang.String firstName = ""; java.lang.String city = ""; java.lang.String state = ""; java.lang.String zip = ""; // TODO process result here mypackage.DirectoryResult result = port.findPerson(lastName, firstName, city, state, zip);
  • Slide 25
  • School of Information Technology Repetition Structure (2) Int listingSize = result.getItems().getDirectoryRecord().size(); for (int i = 0; i < listingSize; i++) { firstName = result.getItems().getDirectoryRecord().get(i).getFirstName(); lastName = result.getItems().getDirectoryRecord().get(i).getLastName(); zip = result.getItems().getDirectoryRecord().get(i).getZip(); phone = result.getItems().getDirectoryRecord().get(i).getPhone(); state = result.getItems().getDirectoryRecord().get(i).getState(); cityNamePrint = result.getItems().getDirectoryRecord().get(i).getCity(); }
  • Slide 26
  • School of Information Technology Hands-on Activities http://r2d2.itk.ilstu.edu/ws4intro/wordpress/?page_i d=295 http://r2d2.itk.ilstu.edu/ws4intro/wordpress/?page_i d=295
  • Slide 27
  • Session 3: Curriculum Development in CS1/IS1 http://r2d2.itk.ilstu.edu/ws4intro/wordpress/ ?page_id=308
  • Slide 28
  • Session 4: The Future of Web services in CS1/IS1 (and CS2/IS2?)
  • Slide 29
  • School of Information Technology Group Discussion Topics Phase II objectives? Viability of the current curriculum in other academic institutions? Synthesis across the curriculum?
  • Slide 30
  • School of Information Technology Please tell us what you think! and THANK YOU FOR ATTENDING! Feedback