Teaching Web Services with Water
Matt Kendall, North Carolina State University
Ed Gehringer, North Carolina State University
Web services have gained popularity and importance to the point that all software professionals should know something about them. However, it can be challenging to fit Web services into a crowded curriculum. Common approaches require teaching a host of standards and APIs that all but obscure the simplicity of the concepts. The object-oriented Water™ language offers a way around these difficulties. Originally designed for rapidly prototyping XML-based Web services, it provides a very concise encoding of Web-services functionality. Students can learn to write real Web-services programs in as little as two or three weeks. Moreover, Water facilitates the use of several patterns that are important to understanding object-oriented design but lacking—or not implemented well—in common o-o languages such as Java and C++. Among these are delegation and multiple inheritance. This paper describes a set of reusable teaching resources for a Water module in an advanced programming course. The resouces are freely available at <http://people.engr.ncsu.edu/efg/water>.