CS-4220
Web Software Applications
Dr. Mark L. Hornick
Winter 2013-2014


Description     Syllabus     Policies     Quizzes/Homework     Grading  


Revision History

This page was last accessed on 02/21/2014

Class Schedule

Lectures are held on Tuesday and Wednesday in R201 from 10:00am to 10:50am
Labs are on Friday in S210 from 10:00am to 11:50am

As stated in my general course policies, attendance is mandatory for all lectures and labs. Email me when you foresee yourself to be absent. If you miss a lab, you will receive a 0 grade for that assignment. Be sure to read the entire document for all relevant policies that apply to this course.

Course Description

This course is an introduction to the development, using various technologies, of Web sites of varying complexity and functionality from simple Web pages and forms to a data-driven commercial Web site capable of secure e-commerce transactions. Topics covered include HTTP, HTML, CSS, Java servlets, Java Server Pages (JSP), JavaScript, AJAX, jQuery, web services, and security.

You can use the following list of detailed Daily Learning Objectives as a study guide throughout the course.

Prerequisites

CS-2852 - that implies a good degree of proficiency in Java.

Required Textbook

There are many different technologies that can be used for server-side development; many continue to evolve and displace others, although there seems to be no dominant approach. In this course, you'll be introduced to the Java servlet-based approach. Many of the concepts apply universally to web app development.

The textbook is available as a Kindle ebook. It covers, to some depth, the structure and configuration of Java-based servlets, which comprise those parts of a dynamic web application that reside and execute on a Tomcat-based web server. It does not cover the technologies (HTML, CSS, JavaScript, the DOM) that address the client (i.e. browser) side of web application development.

There is no single textbook that can adequately cover the broad span of all the technologies that you must ultimately master in order to become proficient at web application development. However, much is available online, so we'll be making use of online resources to provide supplemental coverage of browser-side topics.

Recommended Textbooks

Available as Kindle ebooks, these textbooks present good introductions to HTML5 and JavaScript/jQuery, with plenty of examples and thorough explanation of key concepts.

Browsers

You'll need both Chrome and Firefox in this course. Chrome has really a really nice JavaScript debugger. Firefox can be augmented with a decent debugger as well - Firebug - as well as an HTML Validator.

Links

Here are a number of useful links to programs and utilities that we'll be using in this course:

Tools and Utilities:

References:

Syllabus

Week Day Topic Reading Lab
1
 
T Course Introduction Install/update the latest version of Google Chrome

Install/update Firefox, along with theFirebug and HTML Validator add-ons 

Lab 1: Simple Web Server

Demo due before start of Lab 2!

Submission files due in Blackboard by 10am day of Lab 2.

W Foundations of the www Textbook: ch 1

HTTP Protocol Specification

Sample Code: ServerApp.zip

2
 
T Introductory HTML

HTML elements: headers, metadata, block elements vs. inline elements, list elements, table elements, <div> and <span> elements, attributes

Sample code: HTML documents

HTML Reference
HTML Introduction through HTML Layout
Lab 2: Static web page authoring using HTML and CSS

Submission files due in Blackboard by 10am day of Lab 3.

Quiz 1: WWW foundations,

W The Document Object Model (DOM)

Presentation vs. Content: CSS

DOM Reference:
DOM Home, DOM Nodes

CSS Reference
CSS Introduction through CSS How To

3
 
T Intro to client-side scripting: Javascript

Basic language elements

Sample code: demo.html

wiki: JavaScript Intro
 

JavaScript Guide:
Chapters 2-5, 7 (skim 6)

Lab 3: JavaScript

Demo during Lab 4!

Submission files due in Blackboard by 10am day of Lab 4.

Quiz 2: HTML and CSS

W JavaScript: Functions and Objects

The Browser Object Model (BOM)

JavaScript and the DOM:
Dynamic HTML

Sample code: Javascript examples
 

JavaScript Guide:
Chapters 8-10

W3Schools DOM Reference:
DOM Methods through DOM Elements

Mozilla's DOM Reference

4 T User input elements & scripting

JavaScript: Handling DOM events

HTML Reference
HTML Forms

DOM Reference:
DOM Events

Lab 4: DOM Scripting and Event Handling

Demo during Lab 5!

Submission files due in Blackboard by 10am day of Lab 5.

Quiz 3: JavaScript fundamentals

W Layout and positioning with CSS

Sample code: LayoutDemo.html
w3schools CSS Reference:
CSS Positioning

Mozilla Layout Reference 

5 T Introductory jQuery

Sample code: jQDemo.html

jQuery Basics

jQuery Reference

Lab 5: jQuery

Demo during Lab 6!

Submission files due in Blackboard by 10am day of Lab 6.

Online Quiz 4: Dynamic HTML with JavaScript
 

W jQuery, continued  
6 T The life of a Servlet:
Introduction to dynamic web applications using Servlets and the Tomcat Container

Request and Response structures

J2EE Eclipse and Tomcat installation

Review: HTTP Protocol Specification

Textbook: ch 1, 2, 3

Java EE Javadoc (includes Servlet API's)

Servlet API Javadoc only

Tomcat utility classes Javadoc

Lab 6: Dynamic web app with Java servlets

Demo (30% of lab grade) of working J2EE Eclipse/Tomcat due during lab.

Full/remaining part of the assignment is due in Blackboard by 10am day of Lab 7. 

Quiz 5: jQuery DOM scripting

W The Deployment Descriptor

Web application deployment

Form data as Request parameters

Sample code: Phone.html
FormProcessorServlet.java

More on Form elements & scripting

 
7 T Threading and Sessions

Servlet and Context Attributes
Textbook: ch 4,5,6 Lab 7: Maintaining State with Sessions

Submission files due in Blackboard by 10am day of Lab 8.

Deployment to sapphire.msoe.edu due by 8am day of Lab 8, with demo during Lab 8.

W Maintaining Conversational State with Sessions and Cookies  
8 T Java Server Pages
 

Sample code: shopper.zip

Textbook: ch 7, 8 Lab 8: Java Server Pages

Submission files due in Blackboard by 10am day of Lab 9. Deployment to sapphire.msoe.edu due by 8am day of Lab 9, with demo during Lab 9.

Quiz 6: Deployment descriptor, servlet and context attributes, threading and sessions

W JSP, continued

Forwarding Requests to JSP's
Request Attributes

 
9 T Ajax

 

Sample code: AjaxIntro.zip Lab 9: Ajax-based web services

Submission files due in Blackboard by 10am Friday of W10. Demos due by end of W10 lab. No deployment to sapphire is required.

Quiz 7: JSP, request attributes, request dispatching

Quiz 7 Solution

W Ajax with jQuery

Ajax, XML, and JSON

Live site: http://sapphire.msoe.edu:8080/AjaxIntro

Sample code: StudentServlet.zip

10 T
 
Web app deployment revisited:
Security

Security continued: custom login pages
Textbook: ch 13, 14

 

Sample code: SecureApp.zip 

Course Outcomes

Final Exam review

Quiz 8: Ajax, XML, and JSON

Quiz 8 Solution

W
 
HTML5: Drawing using the Canvas

HTML5: Geolocation

HTML5: Audio/Video

Sample code: CanvasDemo.html

Sample code: GeolocationDemo.html

Sample code:
VideoDemo.html
AudioDemo.html

11
 
Final Exam
8:00-10:00am
Wednesday Feb 26, 2014
R201

Quizzes & Homework

Quizzes will be given generally each week. No make-up quizzes will be given.

Course policies

The following course policies apply to this course.

Grading

Note that this algorithm indicates how a grade will be determined for students who have successfully demonstrated mastery of the course objectives. An acceptable level of success in meeting all course objectives is a prerequisite for a passing grade in the course.

Labs 40%
Quizzes 30%
Final 30%