CSPP51038: XML and Web Services
Summer 2007


Course number: CSPP51038

Meeting times: June 18, 2007 - Aug 20 (mondays) 5:30-8:30pm

Register for listhost

Professor: Andrew Siegel (asiegel@cs.uchicago.edu)

Course description: This course focuses primarily on using XML to greatly simplify application design. Examples in the course will be driven by real-world programming tasks (however modest) that aim to remove inefficiencies in non-automated processes. These examples will set the background and context for studying XML in depth. In the first part of course the XML standard is studied and assignments are geared toward learning how to best design sophisticated schema to describe complex data. The second part of the course will focus on using these XML schema to simplify the messaging layer of distributed applications. Finally, higher level XML-based programming strategies will be applied to more easily solve more complex problems.


Course Format: Instructor lecture with small interspersed written assignments, an end of class quiz, and signficant student participation. Please bring several sheets of paper and something to write with for quiz and assignments (a laptop is helpful but not necessary).

Pre-requisites: Strong programming skills preferably in Java, but C#, Python, Perl, or C++ will be ok also.

Grading:

  • 40% bi-weekly (roughly) assignments
  • 40% final project (built on top of assignments)
  • 10% in-class quizzes
  • 10% participation (either in-class or listhost)

    Getting Help: The course listhost is the best place to get help quickly. I will monitor it as frequently as possible and often be able to answer immediately. Students are encouraged to help their peers on the listhost by contributing when it is convenient.

    Required tools:
    Text editor and compiler for your favorite language
    XSLT processor (many good free ones)
    Server side programming model

    Web Links:
    There are too many reasonably good links for me to keep this up alone. If you find something that is useful for any of the topics below, send link to me and I will add to this list for the benefit of others.


    Syllabus:
    Date Topic Reference Material Readings Homework in-class Quiz
    June 18 SOA concepts and definitions; overview of distributed architectures notes1 -- exercises
    June 25 Intro to XML and XML Schema: XML types, namespaces, imports, keys, etc. notes2 Any introductory XML Reference homework1 exercises
    July 2 XML Schema in depth; overview of RelaxNG, DTD, ... notes3
    examples
    exercises
    July 9 XML Transformation: XSLT, XPath notes4
    examples
    homework2 exercises quiz1
    July 16 SOAP, RPC mechanisms (this was skipped and included at beginning of WSDL lecture) notes5
    examples
    exercises
    July 23 XML Parsing Models, auto language bindings using JAXB, etc. notes6
    examples
    homework3 exercises
    July 30 Intro to WSDL notes7 exercises quiz2
    August 6 WSDL in depth, UDDI, ... continue notes7 homework4 no exercises no quiz
    August 13 WS-* notes9 -- no exercises quiz2_makeup
    August 20 Discussion of REST; Final homework presentations notes10 (Costello) no exercises no quiz