CSE 134A: Web Service Design and Programming

Spring 2001



The final examination happened on June 14.  Sample solutions are not available currently.

The review session was on Tuesday June 12 from 11:30am to 1pm, in Sequoyah Hall room 147.  Sequoyah Hall is north of APM and south of RIMAC, near the Economics building.

The following documents are good references for topics not covered in the PHP and MySQL books:

  • Session Handling with PHP4 by Tobias Ratschiller
  • A Blueprint for Building Web Sites Using the Microsoft Windows DNA Platform, Microsoft, January 2000.
  • Analysis [of web application servers] by Timothy Dyck, PC Magazine, May 2001
  • Tellme More by Jonathan Eisenzopf,, February 2001
  • XML in a Nutshell by Elliotte Rusty Harold and W. Scott Means, O'Reilly, January 2001, Chapters 1, 2, and parts of 3 and 7.  (You may use other XML references--this particular book is not required.)
  • Web Services and the Simple Object Access Protocol by Pete Loshin, Microsoft, December 1999.
  • You should read and understand the parts of these documents that cover topics discussed in class and mentioned in the online lecture notes, in the same way that you study relevant parts of the PHP and MySQL books.


    Here is the description of the third projectThe deadline has been extended to Sunday June 10 at midnight.  Be sure to check the Discus board frequently, for questions about the third project and for instructions about how to submit your work.

    The midterm was on Wednesday May 16 in class.  The final exam will be in the usual classroom on Thursday June 14, from 3pm to 6pm.

    There will be three projects using PHP and MySQL.  Each project will require working in a team of exactly three people and writing good quality documentation or a project report.  Attached to the report for each project should be one filled-in team self-evaluation form.  Complete academic honesty is required.

    Here is the description of the second project, due Monday May 14 at 4pm.   Be sure to look at the Discus board for questions about the second project and for instructions about how to submit your work.

    The first project was due Monday April 23.  Updates to the project description were on the Discus discussion board and the QuickTopic discussion board.  Here are general comments about the submissions for the first project.  Use these comments as guidelines for later projects.


    Lecture notes for each  class meeting will be published here on the class web page.  We have a Discus discussion board for 134A.    Please use this for any and all questions of general interest concerning the course.
    date topics
    April 2 Course policies, role of PHP and MySQL, three-tier client-server architecture
    April 4 Nesting of PHP code inside HTML, processing forms, GET versus POST, maintaining state
     April 9 SSL pros and cons, HomeWorth user interface issues, PHP syntax and semantics
     April 11 Information extraction from HTML using regular expressions.  Efficiency issues.
     April 16 MySQL client/server database system.  Tables, rows, columns.  SQL select queries.
     April 18 Summarization queries, join queries, efficiency of joins, insert/update/delete commands
     April 23 Null values, column type modifiers, indexes, primary keys, efficiency of indexed access
     April 25 Using an index to avoid table access, guidelines for choosing indexes, query performance experiments
     April 30 SQL explain command, avoiding redundancy in db design, constraints, unique indexes.  Cookies.
     May 2 Principles of cookies.  Session management in PHP4, session id propagation.
     May 7 Ending a session, storing session data, callback functions.  Web site architectural objectives.
     May 9 Web site security domains, firewalls.  Servers with and without state.  Replication and fault-tolerance.
     May 14 MySQL configuration.  Page-based, component-based application servers.  Enterprise Java Beans.
     May 16 Midterm
     May 21 No lecture
     May 23 VoiceXML
     May 28 No lecture
     May 30 Portability and user interface design.  What XML is and isn't.  Markup, tags, elements.
     June 4 Document type definitions (DTDs) for XML.  Element and attribute properties.
     June 6 Simple Object Access Protocol (SOAP).  Future of web services.

    Two reference books will be used extensively:

    Quite a few of the topics discussed in class will not be in either book, or will be explained differently. Coming to lectures and taking notes carefully is important.

    As the quarter progresses, it is your responsibility to locate relevant chapters of the books and to study them.  Use the indexes of the books!  Examinations will be based mainly on the projects and the online lecture notes, but may ask questions that involve knowledge in the books.


    CSE 134A teaches students how to develop web-based applications that deliver information dynamically, either to human users or to other applications.  The main programming technology used in the course is the PHP scripting language.  The main database system used is MySQL.

    The course will cover architectures for server-side web-based systems that scale to thousands and even millions of users.  The topics discussed will be related to Windows DNA, Microsoft .NET, and Sun ONE, but will not be vendor-specific.  Standards for information exchange over the Internet including XML and SOAP will be covered.

    The course will also cover algorithms for organizing and searching web-based information, such as those used by the Google search engine.

    Topics that will be mentioned in 134A but not covered systematically include IP networking, relational database systems in general, web server design, HTML, user interface design, and text processing using regular expressions.

    CSE 134A is open only to CSE upper-division majors and graduate students.  The prerequisite is CSE 100, Data Structures.  CSE 134B is recommended but not required.  For registration, the section id is 409377.

    Lectures will be on Mondays and Wednesdays from 4:40pm to 6pm in CSB 002.  Students must also be available for a discussion section between 4:40pm and 5:30pm on Fridays, in Warren Lecture Hall, room 2005.

    The course is now full, with 90 students registered.  The course will be offered again in Fall 2001.  You may add 134A now only if you will graduate in June 2001 or September 2001.  To add the course, you must bring proof of June or September graduation to the CSE undergraduate affairs office.  Pat Raczka will verify your documentation and then enroll you immediately in 134A for this quarter.

    The section meets on Fridays from 4:40 to 5:30 in Warren Lecture Hall, room 2005.


    There will be one midterm exam and a final exam.  The midterm will count for 1/6 of your overall grade and the final for 1/3.   Your grade will therefore be based 1/2 on your individual work, as reflected in the exams, and 1/2 on your teamwork, as reflected in the projects.

    Grading will not be based on arbitrary numerical standards, nor will there be a fixed "curve." There is no fixed correspondence between letter grades and numerical scores on the assignments or on the exams.  You can evaluate your performance in the class by comparing your scores with the means and standard deviations, which will be announced.  However there is also no fixed correspondence between letter grades and standard deviations above or below the mean.  If all students do well in the absolute and compared to previous years, then all students will get a good grade.

    You should not drop CSE 134A just because you are unhappy with the score that you receive on the midterm or on a project assignment.  Instead, you should make an appointment to discuss with the instructor or with a TA how you can do better on the final and on following projects.


    Name Email Telephone Office or Lab Hours Office or Lab Location
    Charles Elkan  elkan@cs 534-8897 TBA APM 4856
    Hector Jasso Wednesday 12pm-1pm
    Thursday 2pm-3pm
    APM second floor lab with Windows PCs
    Alan Su Monday 1pm-2pm APM 3337A (or a lab)
    Minh Truong Tuesday 8:30-9:30 APM 3337A

    There is a web-based message board or questions that would be of interest to other students also.


    Organize your report clearly, with sections, subsections, and paragraphs.  Each section and subsection should have a title that is informative about what the section or subsection contains.

    Use diagrams, charts, and tables when useful.  Always provide labels and legends.

    Follow all the rules of good writing explained by Strunk and White (see below).

    If you refer to sources such as the textbooks for the course, do not just give a general bibliography.  Instead, cite the sources you use in the body of your report at each location where a source is relevant.  Give full bibliographic information in a "List of References" at the end of the report, not in footnotes.

    The main part of a report should not include raw printouts.  Instead, each report should have two appendices, which are not counted in the ten-page length limit.  The first appendix should be a printout of the programs written by your team for the assignment (i.e. listings), and the second appendix should be a printout of sample executions of your programs (i.e. a transcript).


    If you are not confident that you know how to write good technical papers, then you should seek help and advice.  The CSE 130 instructor and teaching assistants are available to assist you.  However you should also use other resources.  In particular you should use the UCSD Office of Academic Support and Instructional Services for help with writing.  According to their web page:
    "The Writing Center offers the UCSD community FREE one-to-one conferences on any kind of writing project ... Various workshops are offered, including ... essay writing ... The OASIS writing test assesses your strengths and weaknesses in writing and editing academic papers. ... Individual tutorial services are available to students whose first language is not English."
    The OASIS Writing Center is located in Center Hall. Call 534-3760 to make an appointment.

    The best book on the basics of good writing is The Elements of Style by William Strunk Jr. and E. B. White, Macmillan, New York, third edition, 1979. The full text of the 1918 edition is out of copyright and available online.

    The following report contains everything that a computer scientist needs to know about technical writing. Although the report is protected by copyright law, it is available for viewing on the web.

    Technical Writing for Computer Engineers and Computer Scientists by Kevin Karplus and Dan Scripture.

    From the report: "This document contains course notes and exercises for a course in technical writing. The course is intended for third-year computer engineering majors, and emphasizes technical documentation directed to engineers, engineering managers, technical writers, and other specialized audiences. Exercises include job applications and résumés, memos, electronic correspondence, algorithm description, in-program documentation, naive-user documentation, survey articles, recommendation letters, proposal writing, document specification, progress reports, formal technical reports, and an oral presentation."
    After you have mastered the mechanics of writing, the next challenge is to develop a sense of style.  The book Clear and Simple as the Truth: Writing Classic Prose by Francis-Noel Thomas and Mark Turner is a wonderful treatise on the topic of writing style.  Be sure to explore the authors' online guide to good writing.


    For all sorts of information on server-side programming for the web, see the links in this directory.

    Are expensive database systems worth the money? on Slashdot.

    Scripting: Higher Level Programming for the 21st Century by John K. Ousterhout, IEEE Computer, March 1998.

    How to Write Unmaintainable Code by Roedy Green.

    Most recently updated on July 19, 2001 by Charles Elkan,