Skip to content

infsci2560fa16/syllabus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Web Technologies and Standards Syllabus

  • Course: INFSCI2560-1020 (26292), University of Pittsburgh
  • Instructor: Brian J Kolowitz, kolowitz@pitt.edu
    • Office Hours: By Appointment
  • GSA: Chun-Hua Tsai (Hyman), cht77@pitt.edu
    • Office Hours: Tue 4-6pm Wed 4-6pm or By Appointment
  • Need help?
    • Gitter
      • It sends message digests to people who aren't active in the room, so feel free to ask a question even if no one's around.
    • Email for 1-on-1 help, or to set up a time to meet

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.

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

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.

Goals

The goals of the course are:

  • To understand the base technologies that are being used in the development and deployment of information and applications to the World Wide Web.

  • To analyze functional needs for web systems and design web components and systems to meet these needs in a reliable way.

  • To develop a standards compliant website

  • To develop major components of a website such as forms, web services, persistent stores, etc.

  • To understand and follow trends in the development of web technologies and standards

  • To define the basic characteristics of standards, define the processes by which standards are developed, and to experience the process of designing/programming information systems in accord with some standard.

Course Materials

Course Materials

The recommended textbooks for this course are:

  • Beginning XML, 4th Edition (Programmer to Programmer) (Paperback) David Hunter, Jeff Rafter, Joe Fawcett, Eric van der Vlist, Danny Ayers, Jon Duckett, Andrew Watt, and Linda McKinnon. Publisher: Wrox; 4 edition (May 21, 2007), Paperback: 1080 pages. ISBN-10: 0470114878, ISBN-13: 978-0470114872

  • (Provided by the instructor – do not purchase) Scaffolding the New Web: Standards and Standards Policy for the Digital Economy by Martin C. Libicki, et al (Paperback - June 2000), RAND Corporation (June, 2000). ISBN: 0833028588 (http://www.rand.org/pubs/monograph_reports/MR1215/index.html)

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

  • "Information Technology Standards." In M.E. Williams (ed.) Annual Review of Information Science and Technology. Volume 26.

  • Standards Policy for Information Infrastructure, Brian Kahnin and Janet Abbate (Eds.) MIT Press, Cambridge Mass, 1996.

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.

  • In part one, we will look at all the base technologies and the fundamental structure of the web. We will explore both client side coding in HTML, CSS, and JavaScript.

  • In part two, we will look at developing backend systems utilizing Java. Here we'll leverage cloud technologies for deployment and hosting. We'll also look at the XML family of standards in depth.

  • In part three, we will explore web mobility and how mobile applications can leverage web technologies.

  • In part four, we will look dig a bit deeper into the web exploring notifications, analytics, and other backend options.

Course Schedule

  • Part 1. HTML, CSS and JavaScript
    • Week 1. Intro – Getting Started with Heroku
      • Managing your code with GitHub
      • Continuous Deployment with Travis-CI
      • Full Stack Web Development with Heroku
    • Week 2. Web Basics
    • Week 3. Styling the Web with CSS
    • Week 4. Interactive Web with JavaScript
  • Part 2. Server-Side Development and XML
    • Week 5. Java Fundamentals & Object Oriented Programming
    • Week 6. Building a Backend – Web Services & JSON
    • Week 7. Enhanced Backend – XML & Schemas
    • Week 8. Storing the Data – Database Integration JDBC, JPA, SQL, and NoSQL
    • Week 9. Caching the Data – In Memory Databases
  • Part 3. Multiplatform Mobile App Development with Web Technologies
    • Week 10. Responsive Design & Mobility
    • Week 11. Mobile Clients (Android Development Studio)
  • Part 4. Advanced Topics
    • Week 12. Push vs. Pull Notifications
    • Week 13. Other Back ends (NodeJS)
    • Week 14. Web Analytics
    • Week 15. Course Wrap-up

Assignments

Late assignments will be subject to a 10% penalty per day late. Assignments submitted 7 day's after the due date will not be accepted.

The course assignments are broken down into 2 major projects with multiple assignments per project.

Project 1 - Full Stack Web

You are required to create a web application to satisfy the requirements to complete this class. This is an open-ended project that complements the lecture and in-class activities. This project will give you the necessary experience to hone your Web programming skills in a practical and personal manner.

Minimum Project Requirements

At a minimum, you must create a Create-Read-Update-Delete (CRUD) Full Stack Web Application that utilizes Web 2.0-style Ajax interactions. More specifically, the application must:

  • Allow users to create accounts and persist data
  • Allow users to update existing data
  • Allow users to delete data and accounts
  • Do all of the above utilizing Ajax (and/or WebSockets) where appropriate. Static personal websites or even dynamic read-only sites such as weather-lookup applications do not meet the requirements. There is no way for a user to both create an account and update persisted data.

High-level requirements include:

  • The app must work when viewed in a modern web browser.

  • The client-side code must be HTML5 compliant (HTML, JavaScript, CSS) e.g. no Flash, Siverlight, Java Applets, etc.

  • The server-side code must be Java and utilize the Heroku java-getting-started codebase as a starting point.

  • All project code must be publicly hosted on your full-stack-web-project GitHub repository and successfully build through the instructor’s integration with Travis-CI.

  • All HTML files should pass W3C Markup Validation.

  • All written JS should pass JSHint.

  • Must apply "good programming style" learned in class

  • Functions should be "short" (see Sandi Metz's rules for developers).

  • Optimize for readability.

  • Use Object-Oriented Programming.

  • Any borrowed code must be properly annotated.

  • The application must be hosted on Heroku.

  • You must be able to demonstrate the project in person (or virtually) if called upon for grading or to answer project specific questions.

  • You must ensure that your project satisfies all of the individual items in the Courseweb rubric which will be used for grading.

  • Assignment 1.1 Getting Started (50 points)

  • Assignment 1.2 Project Proposal (50 points)

  • Assignment 1.3 Presentation tier (50 points)

  • Assignment 1.4 Full Stack Web (100 points)

  • Assignment 1.5 Project Presentation (50 points)

Project 2 – Standards Assessment

  • Assignment 2.1 Standards Assessment Proposal (10 points)
  • Assignment 2.2 Standards Assessment Bibliography (10 points)
  • Assignment 2.3 Standards Assessment Outline (10 points)
  • Assignment 2.4 Standards Assessment Paper (70 points)

Requirements

Carve out one area of current W3C or other web related standardization activity and develop an assessment of the state of the standardization effort. Select an area of W3C or other web related standardization activity. The focus of the paper should be on the way in which the standard is created, updated, and maintained and not about the technology itself. Your report should address:

  • Description: What is being standardized?
    • Assessment: What are the related standards and how is this different?
  • Description: What is the goal of the standard and why is it necessary?
    • Assessment: Does this standard achieve the goal and solve the need?
  • Description: How is the standard being standardized?
    • Assessment: Does the standardization mechanism limit its effectiveness or adoption?
  • Description: Who are the prime movers and/or contributors to the standard?
    • Assessment: What specific consequences (good or bad) result from the prime mover contributors.
  • Description: What impact does the standard have on the intended target audience?
    • Assessment: What is your view of the importance and implications of the standard?

Your final report should include a 10-15 page paper (double spaced excluding title page and bibliography)

All assignments will be graded accorded to the associated rubric listed in the courseweb. All assignments will be submitted as instructed in the corresponding courseweb item.

Grades

Grades for all the assignments will be summed and 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. 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. A readme.md 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:

  • The names of all participants
  • Email addresses and student IDs
  • The course, the term, the CRN
  • The assignment for which the paper is submitted.

Other Resources

Beginner Materials

Recommended Reading

Specific Topics

Other Lists

Tools

GitHub

HTML/CSS/JS Sandboxes

Frameworks

Reference

License

Creative Commons License
This work and all other materials under https://github.com/advanced-js are licensed under a Creative Commons Attribution 4.0 International License.

This repository was cloned from https://github.com/advanced-js/syllabus and modified to meet the needs of this course.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published