Syllabus
IS 2560: Web Technologies and Standards

IS 2560
Fall 2013 (214-1)
CRN: 22027
Tuesday 6:00-8:50 Room 403
 
Michael B. Spring
Department of Information Science and Telecommunications
University of Pittsburgh
701B SIS Building
Personal Email: spring@pitt.edu
Class Email: mbsclass@pitt.edu
Office Hours:  Monday-Friday 8:00-6:00
Phone: 412-624-9429

Note:  This class meets on Tuesdays and thus is subject to a scheduling anomaly related to the fall break that is scheduled for the week of October 14th.  Monday, October 14th will be a holiday for students, but classes scheduled for Monday will be held on Tuesday and Tuesday classes will not meet that week.  (Confusing?  I understand but it has to do with the classes on each day meeting a given number of times during the term.)  For now just keep in mind that there will be no class on October 15th.

 

Introduction

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.

 

Overview

This course is primarily an introduction to web technologies and standards, but it also treats standards more generally.  The course will client and server side technologies for the web.  This will include HTML, xhtml, JavaScript, CSS, servlets, JSP, J2EE, etc.  We will explore HTML 5 and the responsive design technologies.  As time permits, we will introduce both older/more fundamental technologies such as PERL and regular expressions  more advanced web technologies such as J2EE, AJAX and Android.

 

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.

 

Applications standards pertinent to the web – SMTP and HTTP – will be dissected.  The course will touch on distributed object standards such as CORBA, and DCOM 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. As 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. 

 

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.

 

The Course

Philosophy and Approach

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. First, class lectures and discussions that help to clarify the concepts and principles in operation. Second, readings that both provide an overview and some in depth discussion of the topic. Third, 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.

 

Expectations about Preparation

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.

 

Goals

The goals of the course are:

 

Course Materials

The required textbooks for this course are:

Students may also wish to read:

·       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

 

Course Requirements

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 espouses 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 (accounting for 10 points of the grade awarded by the instructor), students are required to complete 90 points of project activities. There are 50 points worth of activities to be undertaken by all students. Beyond these minimum requirements, students may choose from the optional activities listed below or they may propose new activities (in writing to be reviewed and if appropriate approved by the instructor.) Proposed activities may be individual or group, but care should be taken to insure that the scope of group activities are significantly larger than individual projects.

Required activities:

(Copies of 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 simple JavaScript for things like date of last modification

·       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.

·       Syllabus

·       Report

·       Dissertation

·       Resume

·       Facility with netbeans as a development environment

·       Scriplet code in a JSP page

·       Business logic in a servlet

·       Request dispatching in a serlet

·       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.

·       RSS Reader – Based on ATOM

·       ATOM is the new standard for syndication and blogging – replacing the various versions of RSS standard

·       The tool could be a web site or a stand alone program that generates a valid ATOM feed.  The generator should guarantee all required elements and allow selected optional elements.

·       AJAX editor

·       The tool could 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

·       Write a weblog analysis tool that provides at least three of the following kinds of information

·       Most frequent visitors to a website

·       Starting and stopping pages

·       Pages with bad links

·       Pages that have not been modified in over a year

·       Average session length

·       Missing pages

·       Path analysis – this can serve as 2 kinds of information

·       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

·       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

 

Assignment Due Dates and Grading

Assignments are due according to the following tentative schedule:

  1. Web site – week 3
  2. Intelligent Document – week 5
  3. W3 Standardization or Website Component– week 7
  4. Proposal for Final Project – week 8
  5. XML Schema – week 9
  6. Servlet/JSP Project– week 11
  7. Final Project – week 14

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:

Grade

Points

A

100-90

B

80-89

C

60-79

F

0-59

 

Course Policies

Academic Integrity

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. A document discussing these guidelines was included in your orientation materials.

Special Considerations

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 64807890 (voice or TDD) to schedule and appointment. The office is located in the William Pitt Union, Room 216.

Professionalism and Plagiarism

There are a couple things that you need to keep in mind as you start this course.  Any documents you submit should be carefully proofread and formatted professionally.  The paper should provide all the necessary information – your name, your email address, student ID, the course, the term, the CRN, and the assignment for which the paper is submitted.  Any code that is submitted should be thoroughly tested to insure that I will be able to run it on any 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. 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 an F in the course.  All of your code should be carefully and professionally commented and explained. In both the mail note to which the project is attached and in the main file of the project, you should include:

Course Overview

 

Schedule of Topics and Readings

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

·       http

·       url

·       html

·       xml

·       cgi

·        

JavaScript

 

Frameworks for Understanding Standards

·       The purpose of standards

·       The history of standards development

o   nationally (in the U.S. and in other countries)

o   internationally 

·       Broad Categories

o   Internal corporate standard

o   De-facto standard

o   De-jure and client determined standards

o   Formal consensus standards

·       Classificatory Models

·       Taxonomies

·       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

·       Meetings

·       Voting

·       Submission

·       Communications

·       Termination of the committee

·       Appeals

·       Maintenance

·       Role of consortia

 

XML

·       XML data types

·       XML Schema

·       XPATH

·       XSLT

·       XQuery

·       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.

 

Java and Parsers

·       Servlets

·       JSP

·       Parsers

o   SAX

o   DOM

o   TRAX

Next Generation Web (Web 2.0)

·       AJAX

·       RSS

·       Atom

·       Web Services

·       Wikis