Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Syllabus v. 1.0

Instructor David J. Malan [email protected]

+1-617-523-0925 Synopsis This course introduces XML as a key enabling technology in Java-based applications. Students learn the fundamentals of XML and its derivatives, including DTD, SVG, XML Schema, XPath, XQuery, XSL-FO, and XSLT. Students also gain experience with programmatic interfaces to XML like SAX and DOM, standard APIs like JAXP and TrAX, and industry-standard software like Ant, Tomcat, Xerces, and Xalan. The course acquaints students with J2EE, including JavaServer Pages (JSP) and Java Servlet, and also explores HTTP, SOAP, web services, and WSDL. The course’s projects focus on the implementation and deployment of these technologies. Prerequisites Comfort with Java and HTML or XHTML is assumed.

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Table of Contents Expectations .......................................................................................................................................................1 Grades..................................................................................................................................................................1 nice.fas.harvard.edu .................................................................................................................................1 Website ................................................................................................................................................................1 Staff......................................................................................................................................................................1 Listserv ................................................................................................................................................................2 Lectures ...............................................................................................................................................................2 Projects ................................................................................................................................................................3 Final Project........................................................................................................................................................5 Exams ..................................................................................................................................................................6 Books ...................................................................................................................................................................6 Grossman Library ..............................................................................................................................................7 Software...............................................................................................................................................................7 Academic Honesty.............................................................................................................................................7 Inclement Weather ............................................................................................................................................8 Noncredit ............................................................................................................................................................8 Brownie Points ...................................................................................................................................................9

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Expectations You are expected to attend or watch all lectures, to complete four assigned projects, and to design and implement a final project. Grades Your final grade will be based on your performance on the course’s projects. Each of the course’s four assigned projects will be equally weighted; the final project will bear 25% more weight than will any assigned project. Remarkable effort will not go unnoticed. nice.fas.harvard.edu

If you haven’t one already, this course requires that you obtain an FAS (Faculty of Arts and Sciences) Computer Account by visiting the URL below and following the on-screen instructions. https://www.fas.harvard.edu/computing/utilities/activate-pin/

This account will allow you to access via SFTP and SSH nice.fas.harvard.edu, FAS’s New Linux Computing Environment, use of which is required by the course’s projects. Moreover, this account will provide you with access to FAS’s computer facilities as well as with an email address of the form [email protected], where username is your FAS username. SFTP and SSH clients are available for various platforms via the website. Website The address of this course’s website appears below. http://www.fas.harvard.edu/~cscie259/

Visit this site to read course-wide announcements, access your grades, watch digital videos of lectures, view the listserv’s archives, download handouts and software, and follow links to other resources. If you are taking this course via the Internet, this website will be your window into the course’s classrooms. Everything that you will need to succeed in this course will be available for you there. Staff To pose a question or comment to the staff, simply email the address below. [email protected]

– 1 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Listserv To facilitate discussion among students outside of class, this course hosts a listserv not only for announcements but also for student-initiated comments, discussions, and questions. To subscribe to this listserv or browse archives of messages posted, follow the appropriate link on the website. To post a message to the list, once subscribed, simply email the address below. [email protected]

It is expected that students will exercise discretion in posts regarding the course’s projects, per this document’s discussion of academic honesty. Lectures Lectures will take place in Maxwell Dworkin G135 on Mondays from 7:35 P.M. ET until 9:35 P.M. ET, with a few exceptions. Each lecture will be recorded, digitized, and made available within days of its delivery via podcast (for download to iTunes and iPods) and via the course’s website in Flash, MP3, RealAudio, RealVideo, and QuickTime formats. Once posted, these recordings will remain available until semester’s end. Although the recordings are intended to be used by students taking the course via the Internet, students taking the course on campus are welcome to watch or listen to the recordings in the event that their attendance at one or more lectures is not possible. All students are welcome to watch or listen to the recordings for the purpose of reviewing the content of particular lectures. These recordings are best downloaded or played via a high-speed (e.g., cable or DSL) connection to the Internet. Dial-up connections, though possible (especially for audio-only recordings), are not ideal. A schedule of lectures appears below; it is expected that you supplement your preparation for or review of each lecture with self-assigned readings relevant to that lecture’s content from one or more of the course’s recommended texts or online resources. Lecture 1: Introduction Monday, 17 September 2007 Lecture 2: XML 1.1 and SAX 2.0.2 Monday, 24 September 2007 Lecture 3: DOM Level 3 Monday, 1 October 2007 Lecture 4: XPath 1.0 (and 2.0) and XSLT 1.0 (and 2.0) Monday, 15 October 2007

– 2 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Lecture 5: XPath 1.0 (and 2.0) and XSLT 1.0 (and 2.0), Continued Monday, 22 October 2007 Lecture 6: Namespaces in XML 1.1 (Second Edition), SVG 1.1, and XSL (XSL-FO) 1.1 Monday, 29 October 2007 Lecture 7: HTTP 1.1, JavaServer Pages 2.1, and Java Servlet 2.5 Monday, 5 November 2007 Lecture 8: XQuery 1.0 and DTD Monday, 19 November 2007 Lecture 9: XML Schema (Second Edition) Monday, 26 November 2007 Lecture 10: XML Schema (Second Edition), Continued Monday, 3 December 2007 Lecture 11: Web Services, SOAP 1.2, and WSDL 1.1 Monday, 10 December 2007 Lecture 12: Ajax Monday, 17 December 2007 Lecture 13: Conclusion Monday, 7 January 2008 Projects In addition to a final project, four projects will be assigned during the term. Each is due via electronic submission on nice.fas.harvard.edu by a specified deadline. Extensions on projects will not be granted, except in cases of emergency. Technical difficulties will not constitute emergencies. Work submitted late without extension will penalized as follows: projects submitted up to 24 hours late will incur a penalty of 5%; projects submitted up to 48 hours late will incur a penalty of 10%; projects submitted up to 72 hours late will incur a penalty of 25%; projects submitted up to 96 hours late will incur a penalty of 50%; projects submitted more than 96 hours late will incur a penalty of 100%. Lateness of electronic submissions will be determined down to the minute by those submissions’ timestamps on nice.fas.harvard.edu. Projects will be graded not only on their correctness but on the quality of their design and style. A schedule of projects follows.

– 3 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Project 1 My First XML Parser Overview: An opportunity for hands-on experience with the SAX and DOM APIs, this project will challenge you to implement a simplified XML parser, the foundation of which will be developed in lecture. The project will also allow you to employ an industry-standard XML parser to manipulate and transform XML input. Distributed: Monday, 17 September 2007, 7:35 P.M. ET Due: Monday, 15 October 2007, 2:35 P.M. ET Project 2 XTube Overview: Not only will this project will afford you a chance to develop skills with SVG, XPath, and XSLT, it will also invite you to explore London’s Underground! Distributed: Monday, 15 October 2007, 7:35 P.M. ET Due: Thursday, 15 November 2007, 2:35 P.M. ET Project 3 Wahoo! Overview: The challenge of this project will be to implement a web-based portal (called, cough cough, Wahoo!) that aggregates data from a variety of sources. Not only will your application ultimately retrieve newsfeeds as XML streams from an external source, it will also support customizable display of this information and authentication of users. Distributed: Monday, 5 November 2007, 7:35 P.M. ET Due: Monday, 3 December 2007, 2:35 P.M. ET Project 4 Scamazon.com Overview: Upon completion, your project will be the place (not) to shop. Visitors will be able to browse your project’s dynamically generated aisles, add items to your project’s shopping cart, and then check out, their order (never to be) fulfilled by your project’s fulfillment partner, a web service! Distributed: Monday, 19 November 2007, 7:35 P.M. ET Due: Thursday, 20 December 2007, 2:35 P.M. ET These projects’ specifications will be available on the website per the dates above.

– 4 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Final Project Perhaps the most gratifying aspect of this course will be its final project. The final project will be your opportunity to take your knowledge of XML out for a spin and develop an application of your own. So long as your project draws upon this course’s lessons, along with one or more XML-based technologies (however mature), the nature of your project is entirely up to you, albeit subject to the staff’s approval. It is not necessary that your project utilize Java, Java Servlet, or JSP. Inasmuch as software development is rarely a one-person effort, you will be allowed an opportunity to collaborate with one or two fellow students for this final project. Needless to say, it is expected that every student in any such group will contribute equally to the design and implementation of that group’s project. Moreover, it is expected that the scope of a two- or three-person group’s project will be, respectively, twice or thrice that of a typical one-person project. A one-person project, mind you, should entail time and effort equivalent to or (more likely) greater than that required by one of this course’s other projects. In the interests of promoting early thought, a pre-proposal is due by 2:35 P.M. ET on Thursday, 22 November 2007. This pre-proposal is your opportunity to bounce ideas off of fellow classmates, to hear a variety of other ideas, to solicit one or two possible collaborators, and, ultimately, to share in a creative process with others. A proposal detailing your actual choice of endeavors is due by 2:35 P.M. ET on Thursday, 13 December 2007. The staff will then either approve your proposal or require modifications on your part for subsequent approval. Your proposal, even if approved, is not binding; you may alter your plan at any point, provided you obtain the staff’s approval for any modifications. A status report for your final project will be due by 2:35 P.M. ET on Monday, 7 January 2008. Implementation and documentation of your final project will be due by 2:35 P.M. ET on Thursday, 17 January 2008. Your final project will be graded on the following bases: timely submission of an adequate preproposal, the thoroughness of your proposal, timely submission of an adequate status report, the quality of your documentation, the logic of your design, the correctness and elegance of your code and configuration, and the extent of your application’s functionality. In evaluating your submission on each of these bases, the staff will take into account the degree to which you have applied this course’s lessons. Extensions on this final project will not be granted, except in cases of emergency. Technical difficulties will not constitute emergencies. Work submitted late without extension will penalized as follows: projects submitted up to 24 hours late will incur a penalty of 5%; projects submitted up to 48 hours late will incur a penalty of 10%; projects submitted up to 72 hours late will incur a penalty of 25%; projects submitted up to 96 hours late will incur a penalty of 50%; projects submitted more

– 5 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

than 96 hours late will incur a penalty of 100%. Lateness of electronic submissions will be determined down to the minute by those submissions’ timestamps on nice.fas.harvard.edu. This final project’s specification is already available on the website. Exams This course will have neither a midterm nor a final exam. Books No text is required by this course. However, it is recommended that you supplement your preparation for or review of each lecture with self-assigned readings relevant to that lecture’s content from one or more of the following texts. Any of these texts should prove a valuable reference for projects both for and beyond this course. Each of these texts is available for purchase at such sites as Amazon.com. And, as per this document’s discussion of Grossman Library, all are on reserve at said library; you may find it helpful to peruse each there before ordering any online. Core Servlets and JavaServer Pages, Vol. 1: Core Technologies, Second Edition Marty Hall and Larry Brown Prentice Hall, Inc., 2003 ISBN 0-13-009229-0 Essential XML Quick Reference Aaron Skonnard and Martin Gudgin Addison-Wesley, 2001 ISBN 0-201-74095-8 XML Pocket Consultant William R. Stanek Microsoft Press, 2002 ISBN 0-7356-1183-1 XSLT: Programmer’s Reference, Second Edition Michael H. Kay Wiley Publishing, Inc., 2003 ISBN 0-7645-4381-4 Realize that free alternatives to these texts can be found among the course’s online resources.

– 6 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

Grossman Library Grossman Library, located in Sever Hall 311, is a reserve-reading and study library open to all Extension School students. Each of this course’s recommended texts have been placed on reserve in this library for you to peruse within the comfort of the library; books may not be checked out. Grossman Library is open Monday, 17 September 2007, through Saturday, 19 January 2008, according to the following schedule. Monday through Thursday Friday Saturday Sunday

12:00 P.M. ET – 10:00 P.M. ET 12:00 P.M. ET – 6:00 P.M. ET 10:00 A.M. ET – 6:00 P.M. ET 12:00 P.M. ET – 6:00 P.M. ET

Grossman Library is closed on University holidays. The library’s phone number is (617) 495-4163. Software It is not necessary to purchase any software for this course. All software required by the course’s projects is available for use on nice.fas.harvard.edu as well as for download via the website. Most of the software taught and used by this course is available not only for Linux but also for Mac OS, Windows, and UNIX in some form. However, while you are welcome to work on projects on any system, recall that projects ultimately must compile and execute on nice.fas.harvard.edu for evaluation. Academic Honesty With the exception of the final project, on which some collaboration is allowed, all work that you do toward fulfillment of this course’s expectations must be your own. Viewing or copying another individual’s work (even if published in a world-accessible directory) or lifting material from a book, magazine, website, or other source—even in part—and presenting said matter as your own constitutes academic dishonesty, as does showing or giving your work, even in part, to another student. Similarly is dual submission academic dishonesty: you may not submit the same or similar work both to this class and to another. Moreover, submission of any work that you intend to use outside of the course (e.g., at work) must be approved by the staff. All forms of cheating will be dealt with harshly.

– 7 of 8 –

Computer Science E-259: XML with Java, Java Servlet, and JSP Harvard Extension School Fall 2007

You are welcome to discuss the course’s material with others in order to better understand it. You are also welcome to discuss projects’ setups with others in order to resolve technical difficulties. But you may not discuss projects’ content with other students beyond superficial details. If in doubt as to the appropriateness of some discussion, contact the staff. Inclement Weather In the event of inclement weather, you may call the Extension School’s general information line at +1-617-495-4024 or the Harvard University Newsline at +1-617-496-6397 to find out whether a lecture or section has been cancelled. Alternatively, you may visit the website or the address below. http://www.extension.harvard.edu/

Announcements will also be broadcast on local radio stations WKRO-AM (680 kHz), WBZ-AM (1030 kHz), WBUR-FM (90.9 MHz), and WCRB-FM (102.5 MHz) as well as on local television stations WBZ (channel 4), WCVB (channel 5), and WHDH (channel 7). You are advised to consult more than one of these sources, lest one or more not be current. Noncredit If you are not taking this course for credit, you are not required to submit any work. However, all of the work in this course is designed to facilitate your comprehension and retention of the course’s material. Consequently, you are encouraged to complete on time as much of the work as possible. In return, you will receive feedback on any work that you do submit. Brownie Points Given the constant evolution and emergence of XML-based technologies, maintaining links to the latest recommendations, software, and resources is a non-trivial task. Brownie points (and possibly brownies) will be awarded to students who keep the staff apprised by email of the latest developments in the realms of XML, Java, Java Servlet, and JSP.

– 8 of 8 –

Syllabus - HUIT Sites Hosting - Harvard University

Oct 15, 2007 - the form [email protected], where username is your FAS username. .... your plan at any point, provided you obtain the staff's approval for any modifications. ... Any of these texts should prove a valuable reference for.

115KB Sizes 2 Downloads 311 Views

Recommend Documents

Scamazon.com - HUIT Sites Hosting
Dec 20, 2007 - project4-8.0/ directory from the course's website to your local machine. .... If your account or system ain't so happy, feel free to contact.

Wahoo! - HUIT Sites Hosting
Windows machine, you should instead execute `catalina.bat run` (assuming "%CATALINA_HOME%\bin\" is in your. PATH); alternatively ... http://127.0.0.1:n/. 10 Although you needn't type "http://" to visit most websites with most browsers these days, you

Scamazon.com - HUIT Sites Hosting
Dec 20, 2007 - an “Access Key ID” for Amazon's Web Services immediately, .... Next, proceed to edit project4-8.0/conf/server.xml with your favorite text editor.

Wahoo! - HUIT Sites Hosting
If you opt to develop on a ..... 20 Know that, during the development of this project, you can update your Javadoc by executing ... new StreamSource(new java.io.

build.xml 1/2 - HUIT Sites Hosting
7: Of course, that port cannot already be in use. Nor can it. 8: be the same value you choose for the Connector element's port. 9: 10: Also be sure to set the value ...

build.xml 1/2 - HUIT Sites Hosting
5: Computer Science E-259. 6: .... description="remove class, log, runtime, temp, and work files">. 149: ... 12: Of course, that port cannot already be in use.

build.xml 1/2 - HUIT Sites Hosting
64: call.setTargetEndpointAddress(new java.net.URL(endpoint));. 65: call.setOperationName("processPO");. 66: 67: // invoke the service and return the (PO-ACK) response. 68: return (String) call.invoke(new Object [] { poXmlString });. 69: }. 70: catch

DiagServer.java 1/2 - HUIT Sites Hosting
12: * If you spawn the server on a port already in use, you will be informed. 13: * "Server failed to start: java.net.BindException: Permission denied". 14: * Note ...

Computer Science E-259 - HUIT Sites Hosting
Nov 5, 2007 - All Rights Reserved. n-Tier Enterprise Applications. Typical J2EE Architecture. Client. Presentation. Business Logic. Data. Computer. Laptop.

SOAP 1.2 What - HUIT Sites Hosting
Apr 13, 2005 - XML with Java. Lecture 11: Web Services, SOAP 1.2, and WSDL 1.1 .... Distributed computing platforms allow programmatic components to ...

build.xml 1/1 - HUIT Sites Hosting
Login.java. 1/2 project3-8.0/src/cscie259/project3/wahoo/. 1: package cscie259.project3.wahoo;. 2: 3: import java.io.IOException;. 4: import java.io.PrintWriter;. 5: 6: import javax.servlet.ServletException;. 7: 8: import javax.servlet.http.HttpServl

Computer Science E-259 - HUIT Sites Hosting
Nov 5, 2007 - 22. Copyright © 2007, David J. Malan . All Rights Reserved. Java Servlet 2.5. Java Servlet Containers. ▫ Apache Tomcat. ▫ BEA WebLogic Server. ▫ IBM WebSphere Application Server. ▫ JBoss Application Server. ▫ Oracle Applicati

MAY 2017 - Harvard University
Email: [email protected]. ... Email: [email protected]. ..... impact of providing voters with a benchmark against which to compare their ...

MAY 2017 - Harvard University
conditions prevented us from reaching a precinct. We preserve ..... sance Revelations, Coordination Through Social Networks and Electoral Sanctioning: Experi-.

Dominant Currency Paradigm - Harvard University
Aug 7, 2017 - ... Jackson Hole Symposium, volume 27. Federal. Reserve Bank at Kansas City. ... MIT Press, Cambridge. Kugler, M. and Verhoogen, E. (2009).

Online Appendix for - Harvard University
Notice first that solving program (5), we obtain the following optimal choice of investment by the ... 1−α . Plugging this express into the marginal contribution function r (m) = ρ α ...... Year started .... (2002), we obtained a master-list of

Online Appendix for - Harvard University
As pointed out in the main text, we can express program (7) as a standard calculus of variation problem where the firm chooses the real-value function v that ...

California's Electricity Crisis - Harvard University
28 Sep 2001 - visit to England and Wales in early 1994 to study the competitive electricity system that had been created .... 18 LADWP, Pasadena, and the Imperial Irrigation District maintain their own control area, accounting for ...... about electr

BookStore.xml 1/1 - Harvard University
7: . 8: My Life and Times. 9: .... 19: Hurry, my lawn is going wild! ... 30: .

Dynamic Random Utility - Harvard University
Jun 21, 2017 - outside-the-home options and some of these parents subsequently ...... consists of wealth and a consumption bundle and the utility of wealth is ..... to a constant consumption plan more than another agent if and only if her ...