This course is about the various technologies that we use to build Web applications. It is focused on preparing you for enterprise applications and thus focuses more on Java based back ends. It also introduces you to the vagaries of information technology standards. Standards are quantifiable metrics to which parties adhere for purposes of allowing some common ground for interchange. Some students of standards view monetary systems developed for the exchange of goods as the earliest standards. The alphabet may also be viewed as an early standard - a compatibility standard for the exchange of information. Modern U.S. standards first appear in the manufacturing arena. The history is somewhat cloudy and many stories are told, but in most of them, mass production and the railroads play a role, e.g. the railroads required standardization on many fronts, from track gauge to time. The World Wide Web is made possible by the adoption of standards that allow many independent systems to work together.
We will take an in depth look at the XML technologies. The XML standards will be reviewed. Particular attention will be paid to XML data types, XML Schema, XSLT, XPATH and XQuery. Derivative standards such as the Resource Description Framework and the RDF Schema language RSS and SVG, etc. will be introduced. The course will provide students with the opportunity to explore these standards in the course of real application development.
Within the realm of information technology standards, we still look primarily at the higher level software and information formatting standards. While hardware standards are important they are generally addressed in other courses in the curriculum. Less well addressed, but of increasing prominence, are the software and information formatting standards. They will be the focus of our attention here.
Standards pertinent to the web – HTML, URL and HTTP – will be dissected. The course will touch on distributed object standards such as CORBA that have led to the development of infrastructure standards for distributed services such as IDLs (including WSDL), directory service standards such as LDAP and UDDI and security standards such as DES and PKI. If time permits, we may take a look at some of the network protocols which include addressing standards (IP), transport standards (TCP), and some supporting standards such as ARP, Ethernet, and DNS.
IS 2560 is a graduate course. This means students have responsibility to be proactive in their learning. The instructor's role is less directive and more one of stimulating and guiding learning. If you think back to the things you remember from other courses you have taken, you will probably find that the things you remember best are the things you had to work hard to learn. What takes place in the classroom constitutes only a small part of the overall learning in any course. To this end, the course is constructed to provide three kinds of learning experiences; 1, class lectures and discussions that will help to clarify the concepts and principles in operation, 2, readings that provide an overview and some in depth discussion of the topic, and 3, practical experiences related to the subject matter at hand.
The most important learning will come from the efforts you undertake beyond the textbook and class lectures. The lectures will provide a counterpoint to what is in the book and the assignments will require the use of skills learned in this course along with the many other skills you have developed throughout your program. The lectures for the course will cover a broad range of topics in an effort to provide both orientation and understanding about basic concepts. Finally, the assignments will provide an opportunity to see, in relatively simple situations, how the concepts discussed in the lectures and readings are implemented in practice.
At a very minimum, it is expected that you will read any material assigned to you before the class for which it is assigned. This does not mean skimming the material - it means reading, annotating, and understanding the material. It also means that it is your responsibility to identify areas in which you need to do extra work to bring yourself up to basic competency in the areas we will cover. Any course in this school brings together a diverse group of people with vastly different experiences. This makes it difficult to know where to start in a multifaceted course like this one. While the discussion of standards in the first part of the course is fairly well self contained, the latter parts of the course will require a fundamental understanding of telecommunication and computer systems. The basic knowledge and the associated skills developed in data structures, networking, and information systems provide a common starting point for our discussion. Should you find yourself totally ignorant in these areas, you are encouraged to do some preliminary reading, skill enhancement, or thinking during the first few weeks of the course. It is important that you understand that what you take out of the course will to a large extent be determined by what you bring to it.
While there is no accepted or standard programming language or operating system, there is a growing trend to establish such. For the last decade, many viewed the Unix operating system as a standard toward which we should be moving. Because of the close association between Unix and the C programming language, which has been used extensively for interactive system programming, some saw C and C++ as emerging language standards. More recently NT, XP, and Vista have begun to emerge as operating system platform standards. In conjunction with the explosive growth of the World Wide Web, Java has begun to gain in popularity as a language of choice. While work may be done on any platform and in any scientific language, you are encouraged to use either Unix or XP/Vista operating systems and the C or Java languages for programming work you do in this course.
The goals of the course are:
The required textbooks for this course are:
Students may also wish to look at books like:
· Global Standards: Building Blocks for the Future, Linda Garcia, Office of Technology Assessment (Copies will be provided by the instructor)
· Charles F. Goldfarb's XML Handbook, Fifth Edition Charles F. Goldfarb, Paul Prescod Prentice Hall PTR; 5 edition (November 3, 2003), ISBN: 0130497657
Students are expected to come to class prepared to discuss the topic assigned for the day. In addition, students are expected to be doing their own exploratory reading on related subjects throughout the term. As indicated, the instructor believes that the knowledge and skills you take away from a course come not only from what the instructor says in class, but from your external readings and your own work and writing.
The instructor reserves the right to modify the course requirements. In particular, if deemed necessary, exams may be added to the requirements or substituted for selected requirements if in the instructor's opinion students are not staying abreast of course readings.
In addition to readings and class participation, students are required to complete 100 points of project activities. Final projects may be individual or group, but care should be taken to insure that the scope of group activities are significantly larger than individual projects. (Sample code and other resource materials will be made available at http://www.sis.pitt.edu/~mbsclass. )
· At least 5 separate pages
· Be xhtml compliant (http://validator.w3.org/)
· Meet web accessibility guidelines (http://www.w3.org/WAI/eval/Overview)
· Include a simple navigation scheme
· Include one or more images
· Make use of a CSS style sheet
· what is being standardized and how it is being standardized,
· the motivation for standardization,
· what is being addressed and what is being left out,
· the process that is being used, who is involved and what is going on.
Examples of areas would include any of the topics listed on the main W3C pages.
· Facility with netbeans as a development environment
· Scriplet code in a JSP page
· Business logic in a servlet
· Request dispatching in a servlet
· Use of a bean to store session/request information
The activities below are simply illustrative of those suggested for the class. They are far from exhaustive, and are intended only to stimulate thinking about the kinds of projects students might undertake. The first three suggestions below provide more detailed specifications.
· Social Networking/Collective Intelligence
· Social Networking sites provide an opportunity to harvest user information and contributions into new data sets that may represent new information
· The SN/CI site should serve some useful function – such as a group site for members of the SIS community
· The site should provide automated tools that expose new information or insights for collective uses
· Joint calendaring, shared bookmarks and blogs are all examples of what might be done here
· Responsive design tutorial (Or other HTML 5 functionality)
· Responsive Design is a new approach to cross device applications. Some tutorials are already mounted ion the instructor’s website as examples.
· Any of the advanced features of HTML 5 might be the subject of a demonstration project and tutorial. These would include:
· Canvas 2D API Specification 1.0 specification
· Timed media playback
· Offline storage database (offline web applications)
· Document editing
· Cross-document messaging
· Browser history management
· MIME type and protocol handler registration
· AJAX functionality
· An editor that would provide some advanced feature – editing and existing feed, or translating one feed format to another, etc. The tool could be one or more components of ATOM/AJAX based editing and annotation tool – the instructor will explain
· Any other reasonable exploitation of the kind of functionality provided by AJAX.
· Management Spider tool to catalog the information on a website.
· The tool might check links and pages and report on potential web site problems
· It might recommend web site changes based on the analysis
· Develop an analysis of the significant issues in web standardization that must be addressed related to:
· The National Information Infrastructure.
· Web accessibility for various disabilities
· E-Business and Web Services
· The semantic web
· Mobile and location based services
Assignments are due according to the following tentative schedule:
The submission of required activities are all due by week 8. Late assignments will be subject to a 10% penalty.
Grades for all the assignments will be summed and from 0-10 points will be added by the instructor based on an assessment of class participation. Final grades will be assigned as follows:
Assignments emailed to the instructor should be sent to firstname.lastname@example.org unless you have been specifically instructed to send them to my personal mail account. The subject of the email should include the course number, the assignment number and your name.
There is nothing more frustrating to a student than to have homework not be graded. There is nothing more frustrating to an instructor than to have homework submitted incorrectly or with insufficient information. Before you mail an assignment to me, please make sure that it meets the specific requirements for how it is to be submitted. While there may be additional specific requirements set up in class, the following guidelines should be of help.
· In both the mail note to which the project is attached and in the main file of the project, you should include:
§ The names of all participants
§ Email addresses
§ The course, the term, the CRN
§ The assignment for which the paper is submitted.
o Any paper that is submitted should be carefully proofread and formatted professionally. It should be submitted in word format.
o Any project that is submitted should be thoroughly tested to insure that I will be able to run it on my machine. The project source code and executable files should both be included. The material, if it is extensive, should be zipped up in a zip or jar file. Care should be taken to make sure that all necessary supporting DBMS and lib or jar files are included. A readme file should be included that explains any particular constraints or steps that need to be taken.
You are expected to be fully aware of your responsibility to maintain a high quality of integrity in all of your work. All work must be your own, unless collaboration is specifically and explicitly permitted as in the course group project. Any unauthorized collaboration or copying will at minimum result in no credit for the affected assignment and may be subject to further action under the University Guidelines for Academic Integrity. You are expected to have read and understood these Guidelines.
You should pay particular attention to plagiarism and copying. Specifically:
· For coding projects, all code that comes from any source other than your head needs to be fully and carefully marked. This includes code which you have adapted from some source but which is essentially someone else’s work. Failure to note such use is cause for a grade of 0 on the assignment and may result in an F in the course. All of your code should be carefully and professionally commented and explained.
· For papers, every word, phrase, or sentence that is copied from the web or some other paper must be placed in quotes and attributed. i.e. the source from which it is taken must be noted. Given the prevalence of plagiarism in recent years, you will prepend the following note to any paper you submit.
I assert that all of this paper has been written by me and not copied from any source except where specifically noted by placing material in quotes or blocks with attribution to the source. This includes not only specific words, but ideas that came from some other source (i.e., are not my own). Basically, if you take an idea from some source and weave it into your own paper, the source should be identified. You do not have to cite things that are common knowledge - that the average person is very likely to know. Changing a word or two in a sentence usually does not eliminate the need to use quotation.
If you have a disability that requires special testing accommodations or other classroom modifications, please, notify both the instructor and Disability Resources and Services by the second week of the term. You may be asked to provide documentation of your disability to determine the appropriateness of accommodations. To notify Disability Resources and Services, call 648-7890 (voice or TDD) to schedule an appointment. The office is located in the William Pitt Union, Room 216.
This course is addresses a subject which has not traditionally been a part of the information science curriculum. The topics are interdisciplinary, broad, deep, and complex. From the academic perspective there is not any comprehensive perspective or model from which the subject may be suitably studied. For these reasons, students should anticipate that the sequence of topics may be adjusted, expanded, or contracted as the term proceeds.
In general, the course will be divided into four parts.
Introduction and Overview
· Review of the course syllabus
· Discussion of the assignments
Frameworks for Understanding Standards
· The purpose of standards
· The history of standards development
o nationally (in the U.S. and in other countries)
· Broad Categories
o Internal corporate standard
o De-facto standard
o De-jure and client determined standards
o Formal consensus standards
· Classificatory Models
· Economic Models
· Impact on research and development
· Impact on end user purchases
· Cost of the standards themselves
· Impact of technological developments
· Operational Models -- OSI
· Organizational Models
W3C and Standards
· Accreditation of a developer
· Planning and coordination of standards
· Designation, publication, maintenance, and interpretation of standards
· Procedures for development of a standard by a committee
· Organization of the committee
· Responsibilities, officers and membership
· Subgroups of the committee
· Termination of the committee
· Role of consortia
Java Web Basics
· XML data types
· XML Schema
· Derivative standards such as the Resource Description Framework and the RDF Schema language RSS and VRML, etc. will be introduced. The course will provide students with the opportunity to explore these standards in the course of real application development.
Next Generation Web (Web 2.0)
· Web Services