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

Slides:



Advertisements
Similar presentations
Collaborative Research: Developing Course Modules to Teach Service-Oriented Programming through Exemplification and Visualization Xumin Liu, Rajendra K.
Advertisements

Siebel Web Services Siebel Web Services March, From
Web services in CS1/IS1. School of Information Technology Reusable Components Most programs are created by combining components that exist already, not.
Presentation 7 part 1: Web Services Introduced. Ingeniørhøjskolen i Århus Slide 2 Outline Definition Overview of Web Services Examples Next Time: SOAP.
Presentation 7: Part 1: Web Services Introduced. Outline Definition Overview of Web Services Examples Next Time: SOAP & WSDL.
© 2006 Carnegie Mellon University Establishing a Network Centric Capability: Implications for Acquisition and Engineering Dennis Smith Complex System Symposium.
“A Service-Oriented Approach to Teaching CS/IS1” Billy Lim, Bryan Hosack, Paul Vogt School of Information Technology Illinois State University.
JAVA: An Introduction to Problem Solving & Programming, 5 th Ed. By Walter Savitch and Frank M. Carrano. ISBN © 2009 Pearson Education, Inc.,
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
1 Workshop 20: Teaching a Hands-on Undergraduate Grid Computing Course SIGCSE The 41st ACM Technical Symposium on Computer Science Education Friday.
April 13, 2004CS WPI1 CS 562 Advanced SW Engineering General Dynamics, Needham Tuesdays, 3 – 7 pm Instructor: Diane Kramer.
Course Module 1: Service-Oriented Programming (SOP)
Web Service Architecture Part I- Overview and Models (based on W3C Working Group Note Frank.
RSS RSS is a method that uses XML to distribute web content on one web site, to many other web sites. RSS allows fast browsing for news and updates.
Web Services Michael Smith Alex Feldman. What is a Web Service? A Web service is a message-oriented software system designed to support inter-operable.
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
May 1, 2007Mohamad Eid SEG 3120 User Interface Design Mohamad Eid Office: SITE 5077 Tel: (613) ext. 2148
Instructional Plan Template | Slide 1 AET/515 Instructional Plan Advanced Enterprise Java Platform Class and Lab Mark K. Reha.
COURSE ADDITION CATALOG DESCRIPTION To include credit hours, type of course, term(s) offered, prerequisites and/or restrictions. (75 words maximum.) 4/1/091Course.
Class Instructor Name Date. Classroom Tips Class Roster – Please Sign In Class Roster – Please Sign In Internet Usage Internet Usage –Breaks and Lunch.
CS 458 Internet Engineering Instructor: Prof. Jörg Liebeherr University of Virginia.
Tutor: Prof. A. Taleb-Bendiab Contact: Telephone: +44 (0) CMPDLLM002 Research Methods Lecture 8: Quantitative.
Computer Networks CEN 5501C Spring, 2008 Ye Xia (Pronounced as “Yeh Siah”)
Presentation 7: Part 1: Web Services Introduced. Outline Definition Overview of Web Services Examples Next Time: SOAP & WSDL.
CSE 436 Software Engineering Workshop Course Overview Christopher Gill CSE 436 January 2007 Department of Computer Science and Engineering.
Web Services An introduction for eWiSACWIS May 2008.
Message Driven Beans & Web Services INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
WSDL Tutorial Ching-Long Yeh 葉慶隆 Department of Computer Science and Engineering Tatung University
International Telecommunication Union Geneva, 9(pm)-10 February 2009 ITU-T Security Standardization on Mobile Web Services Lee, Jae Seung Special Fellow,
Google’s Web Service January 4, 2004 Shuying Wang.
Venue: M038 Date: Monday March 28,2011 Time: 10:00 AM JIC ABET WORKSHOP No.2 Guidelines on: IMapping of PEOs to Mission Statement IIMapping of SOs to PEOs.
1 This CCFSSE Drop-In Overview Presentation Template can be customized using your college’s CCFSSE/CCSSE results. Please review the “Notes” section accompanying.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Chris Gill Department of Computer Science and Engineering Washington University in St. Louis.
CMSC 345, Fall CMSC 345 Software Design and Development Fall 2003 Section 0101 Ms. Susan Mitchell Leave Your Ego at the Door!
Service Oriented Architecture and Web Services
Final Exam Review Session 14 LBSC 790 / INFM 718B Building the Human-Computer Interface.
Web Services (SOAP) part 1 Eriq Muhammad Adams J |
CS Welcome to CS 5383, Topics in Software Assurance, Toward Zero-defect Programming Spring 2007.
1 CSC111H Introduction Dennis Burford
University of Limerick1 Computer Applications CS 4815 Robocode.
This material is approved for public release. Distribution is limited by the Software Engineering Institute to attendees. Sponsored by the U.S. Department.
Kemal Baykal Rasim Ismayilov
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
Select Slides… Spring 2013 Training Strengthening Teaching and Learning through the Results of Your Student Assessment of Instruction (SAI) For Faculty.
Computer Networks CNT5106C
Planning a Presentation Taki Stewart Apr. 2nd 2013.
Topics on Web Services COMP6017 Dr Nicholas Gibbins –
“Babeş-Bolyai” University Faculty of Economics and Business Administration Second semester 1st year, English line of study Business IT Introductive course.
FNA/Spring CENG 562 – Machine Learning. FNA/Spring Contact information Instructor: Dr. Ferda N. Alpaslan
Introduction to the course Aug 30, Day 1 Object-oriented Programming thru Video Games TIDE 1840 Harry Howard Tulane University.
Course Overview 1 MAT 279 Data Communication and the Internet Prof. Shamik Sengupta Office 4210 N
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Introduction to Programming
ECE361 Engineering Practice
Introduction to CS Senior Design Project I / II
It’s called “wifi”! Source: Somewhere on the Internet!
Software Architecture in Practice
CS & CS Capstone Project & Software Development Project
Game Design Practicum (CMPS 179) Summer 2012 Course Overview
Managing the Digital Enterprise: A 5-Year Experiment in Open Courseware Meeta Yadav and Michael Rappa North Carolina State.
Accelerated Introduction to Computer Science
Course Evaluation Ad-Hoc Committee Recommendations
Introduction to SOA and Web Services
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
IT215 Systems Software Semester II,
Excel 2007 Level 1 Cathy September 24, 2009
Presentation transcript:

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

INTRODUCTIONS Project 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., Now supported by: – NSF-DUE-CCLI , "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: – 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 Coefficients a Model Unstandardized Coefficients Standardized Coefficients tSig. 95% Confidence Interval for B BStd. ErrorBetaLower BoundUpper Bound 1(Constant) Female Class Tradl CumGPA 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 Coefficients a Model Unstandardized Coefficients Standardized Coefficients tSig. 95% Confidence Interval for B BStd. ErrorBetaLower BoundUpper Bound 1(Constant) Female Class Tradl CumGPA a. Dependent Variable: Grade Adj 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 NMeanStd. Deviation Total

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. 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.“ – 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)

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.

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 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);

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 d=295 d=295

Session 3: Curriculum Development in CS1/IS1 ?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