Upload
cosmo
View
16
Download
0
Tags:
Embed Size (px)
DESCRIPTION
A (Web) Service-Oriented Approach to Teaching CS/IS1 Billy Lim, Bryan Hosack, Paul Vogt School of Information Technology Illinois State University. Project Personnel Workshop Participants. Introductions. Schedule. Project Overview/Experience Report (9:00-10:15am) - PowerPoint PPT Presentation
Citation preview
A (Web) Service-Oriented Approach to Teaching CS/IS1
Billy Lim, Bryan Hosack, Paul VogtSchool of Information Technology
Illinois State University
INTRODUCTIONSProject Personnel
Workshop Participants
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)
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.
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.
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
School of Information Technology
Courseware Showcase
• Main project site:– http://www.itk.ilstu.edu/ws4intro
• The site contains info on:– PowerPoint slides– Lab exercises– Programming assignments– Tutorials– List of Web services used
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.
School of Information Technology
Experience Report (cont’d)
• Outcome 1: Limited data…partial support– In hindsight we should have chosen a different
measure– The amount of data collected will be limited and
probably won’t be statistically significant
School of Information Technology
Experience Report (cont’d)
• 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
School of Information Technology
Experience Report (cont’d)
• Outcome 2: Statistically significant improvement in final exam performance and course grade
Final Exam Regression Coefficientsa
Model
Unstandardized CoefficientsStandardized Coefficients
t Sig.
95% Confidence Interval for B
B Std. Error Beta Lower Bound Upper Bound1 (Constant) 12.585 9.105 1.382 .170 -5.494 30.663
Female1 -15.298 6.755 -.166 -2.265 .026 -28.709 -1.886
Class .443 2.346 .014 .189 .851 -4.216 5.101
Tradl1 -11.483 4.669 -.181 -2.459 .016 -20.753 -2.212
CumGPA 23.071 2.524 .662 9.141 .000 18.060 28.083
a. Dependent Variable: FinlExm, Adj R-Squared .493
School of Information Technology
Experience Report (cont’d)
• Outcome 2: Statistically significant improvement in course grade
Final Grade Regression Coefficientsa
Model
Unstandardized CoefficientsStandardized Coefficients
t Sig.
95% Confidence Interval for B
B Std. Error Beta Lower Bound Upper Bound1 (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 .807 14.126 .000 1.139 1.511
a. Dependent Variable: GradeAdj R-Squared = .684
Experience Report (cont’d)
Outcome 2: Grading bias and other concerns• Tukey Pairwise Comparison’s
were not significant for the instructors, except for one pairing. This pairing did not include either of the instructor’s teaching the web service sections.
• More data will help alleviate concerns about the grading
Mean Grades Awarded
N Mean Std. Deviation1 127 1.94 1.305
2 39 2.46 1.570
3 15 3.13 1.060
4 3 2.33 2.082
5 36 2.67 1.242
6 65 2.54 1.251
7 36 2.28 1.466
8 10 2.70 1.636
9 27 2.78 1.219
10 10 1.50 1.509
Total 368 2.33 1.376
School of Information Technology
Experience Report (cont’d)
• 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…
School of Information Technology
Experience Report (cont’d)
• 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
School of Information Technology
Experience Report (cont’d)
• “Do I have to code this? Isn’t there a Web service to do that?”– A student’s comment on the requirement to “validate … the
state’s 2-letter abbreviation (must be one of the 50 state abbreviations).”
• “But that’s just calling the Web service to get a word from the dictionary, right?”– A student’s 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.
Session 2: Web services in CS1/IS1
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.Don’t reinvent the wheels!
Source: Savitch & Carrano 2009 CS1 text
School of Information Technology
Software Reuse
Package names
Class names
Description of class Scanner
Source: Savitch & Carrano 2009 CS1 text
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 …
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.“ – W3C
– 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)
School of Information Technology
NetBeans Generated Code Templatetry { // Call Web Service Operation <someService> service = new <someService>; < someServicePort> port = service.get<someServicePort>(); // TODO initialize WS operation arguments here declarations of arguments here // TODO process result here <someResult> 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 wasprinted as part of the template.
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 }
School of Information Technology
Repetition Structuremypackage.ISUDirectoryLookUpService service = new mypackage.ISUDirectoryLookUpService();mypackage.ISUDirectoryLookUp port = service.getISUDirectoryLookUpPort();// TODO initialize WS operation arguments herejava.lang.String lastName = aLastName;java.lang.String firstName = "";java.lang.String city = "";java.lang.String state = "";java.lang.String zip = "";// TODO process result heremypackage.DirectoryResult result = port.findPerson(lastName, firstName, city, state, zip);
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();}
School of Information Technology
Hands-on Activities
• http://r2d2.itk.ilstu.edu/ws4intro/wordpress/?page_id=295
Session 3: Curriculum Development in CS1/IS1
http://r2d2.itk.ilstu.edu/ws4intro/wordpress/?page_id=308
Session 4: The Future of Web services in CS1/IS1 (and CS2/IS2?)
School of Information Technology
Group Discussion Topics
• Phase II objectives?
• Viability of the current curriculum in other academic institutions?
• Synthesis across the curriculum?
School of Information Technology
Please tell us what you think!
and
THANK YOU FOR ATTENDING!
Feedback