msoe


SE-2840
Web Application Development
Dr. Mark L. Hornick


Description     Syllabus     Policies     Quizzes/Homework     Grading  


Revision History

1/8/2020 - Quiz 3 moved to Tuesday of W5.

1/29/2020 Quiz 4 moved to Thursday of W8

This syllabus was updated on 12/2/19. Additional revisions will follow, as the course content from W7 onwards will be modified to stay current with recent web technologies.

Class Schedule

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.

Schedule

Lectures are on Tuesdays, Wednesdays, and Thursdays in L304 from 10:00 to 10:50am
Labs for section 011 are on Wednesdays in L304 from 11:00am to 12:50pm
Labs for section 012 are on Thursdays in L304 from 11:00am to 12:50pm

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 dynamic data-driven Web sites capable of secure transactions. Topics covered include HTTP, HTML, CSS, Bootstrap, JavaScript, AJAX, jQuery, web services,  Node.js, web frameworks/React, MongoDB, and Geolocation.

Prerequisites

CS-2852, CS-2911

Textbooks

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.

Much is available online, so we'll be making use of online resources to provide supplemental coverage of additional topics, such as Bootstrap and React.

There are many different technologies that can be used for server-side development; many continue to evolve and displace others, the dominant approach changes every few years. In this course, you'll be introduced to Node.js (based on Javascript, which is already the dominant language for client-side development).

Browsers

You'll need both Chrome and Firefox in this course.

Links

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

Web development tools: Utilities: References:

 

 

 

Syllabus

Week Day Topic Reading Lab
1
 
 
L1 Course Introduction

Foundations of the www

Introductory HTML

Sample code: HTML documents

HTML Reference
HTML Introduction through HTML Layout

example code used in lectures: Demo.html

Install/update the latest versions of Google Chrome and Firefox

Install JetBrains Webstorm

Lab 1: Static web page authoring using HTML and CSS

Content (html file) demo due by end of W1 lab (10% of lab grade).

Complete submission due in Blackboard by end of W2 lab.
Working demo during W2 lab.

Acceptance Criteria checks sample

L2

Introductory HTML, continued

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

Presentation vs. Content: CSS

Sample code: HTML with CSS

CSS Reference
CSS Introduction through CSS How To

L3 HTML and CSS, continued

 

2
 
L1 Intro to client-side scripting: Javascript

Basic language elements

 

Crockford: The World's Most Misunderstood Programming Language

online: new (2019) JavaScript features

online:
JavaScript Guide:
Chapters 1: Introduction,
2:Grammar and Types,
3:Control Flow and Error Handling,
4:Loops and Iteration,

6:Expressions and Operators,
7:Numbers and Dates
 

Lab 2: JavaScript

Demo during W3 lab. Submission due in Blackboard by end of W3 Lab.

Practice1.pdf (to prep for Quiz 1)

L2

JavaScript, continued: Classes, Functions

online: JavaScript Guide:
Chapter5: Functions,
10:Indexed Collections,
11: Keyed Collections,

 

L3 JavaScript, continued
Quiz 1: HTML and CSS
online: JavaScript Guide:
Chapter 12: Working with Objects,
13: Details of the Object Model
3 L1

JavaScript, the BOM, the DOM and
Dynamic HTML

Sample code: DOMDemo.html

online: DOM Reference:
HTML Document,

HTML Element through HTML Attributes

online:Additional reference: Mozilla's DOM Reference

Lab 3: DOM Scripting and Event Handling

Demo during W4 lab. Submission zipfile due by end of W4 lab

 

L2 JavaScript: Handling DOM events

Sample code: EventDemo.html
online:HTML Reference
HTML Input Types

online:DOM Reference:
HTML Events

L3 Javascript Event handling, continued

Bootstrap: a CSS Framework

Sample code: BootstrapDemo.html

 Quiz 2:  JavaScript fundamentals
(declarations, scope, data types, functions, classes)

online: Bootstrap Reference and tutorials

4 L1

Introductory jQuery

Sample code: jqDemo.html

online: jQuery Basics

online: jQuery Reference

Lab 4: jQuery and Bootstrap (Updated 1/6/20)

Demo during W5 lab. Submission zipfile due by end of W5 lab

Apply JSHint settings: Webstorm Configuration

 

http://sapphire.msoe.edu:8080/CoinFlipTimes/

L2 jQuery, continued

HTML5: Drawing using the Canvas

Sample code: CanvasDemo.html
L3

  Layout and positioning with CSS

Sample code: Layouts.html

online: CSS Reference: CSS Positioning

online: Mozilla Layout Reference

5 L1

Update 1/8/20 Quiz 3: Dynamic HTML with JavaScript

Introduction to Ajax with jQuery

Sample code: AjaxDemo.html

example json data

online: jQuery Ajax documentation

Update 1/14/20 Lab 5: Using Web Services: Bus Tracker

Get your MapQuest Key here.

Get your MCTS key here.

Key demos due by end of W5 lab.

Submission zipfile due by end of W7 lab

 

L2

JSON: Javascript Object Notation

Quiz3 Solution

 

L3 Ajax, continued Midterm Exam Review
Review Course Outcomes through week 5

6 L1 Introduction to NodeJS: Server-side Javascript


Online tutorial

NodeDemo.js

Hello.txt
Student.txt
CoinFlipData.js
MyClass.js

Midterm Exam (during lab)
L2

NPM - Node Package Manager

Writing a web server with NodeJS (the hard way)

Web Services Directory:
www.programmableweb.com/apis/directory

SimpleServer.js (the hard way)

Homework: modify doAjaxRequest per comments
L3 NodeJS web server, continued
7 L1

NodeJS and Express

ExpressServer.js

Lab 6: Server-side JavaScript: NodeJS BusTracker Server

Submission zipfile due by end of W8 lab

10pts: Install NodeJS before start of lab and demo it running the sample NodeDemo.js or SimpleServer.js during lab

L2

NodeJS/Express web service

HTTP GET vs POST
POSTing form data to a server

PhoneServer.js

Phone.html
Phone.js

L3 NodeJS/Express web service, continued

Midterm makeup

8 L1

Introduction to MongoDB

mongoDemo.js

Lab 7: Mongo Speeding Bus Viewer

Submission zipfile due by end of W9 lab

Install MongoDB before start of lab by following steps 1-4 on slide 6 of "Introduction to MongoDB" powerpoint slides.
Demo it running during lab (10pts of lab grade) using this NodeJS App mongoBusDataCollector.js

L2

Mongo and NodeJS



L3
Javascript Promises
https://promisesaplus.com/#terminology

Quiz 4: Ajax, and JSON; JSON object representation
PromiseDemo.js
mongoDemoWithPromises.js

mongoPhoneServer.js
9 L1

Intro to React
Web frameworks

MapDemo.js

reactDemo.html
jQueryApproach.js


Lab 8: React-based Bus Tracker

Follow Steps 1-4 in the lab instructions and demonstrate by end of Thursday lecture (10 pts of lab grade)

Submission zipfile due by end of W10 lab

L2

React, continued

reactApproach.js
jsxApproach.js
L3 React, continued

Quiz 5: NodeJS and Express
reactPhone.html
jsxPhoneController.js
jsxPhoneTable.js
10 L1

HTML5: Geolocation

GeolocationDemo.html

Lab 8 continued/finish



All labs due no later than 5pm Friday.
No submissions accepted after then.
L2

Geolocation, continued

HTML5: Audio/Video, if time permits


VideoDemo.html
AudioDemo.html

L3

Quiz 6: React

Review and course evaluation

Final Exam review

quiz6 solution

Course Outcomes

11 Final Exam
Wednesday, Feb 26, 2020
11:00am - 1:00pm
L304

Quizzes & Homework

Quizzes will be given as indicated in the above schedule.

No make-up quizzes will be given. No quizzes will be dropped.

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 25%
Quizzes 30%
Midterm 20%
Final 25%