CPET 499/ITC 250 Web Systems

Fall  2015


Lectures
Example Codes from the Text Book
Fundamentals of Web Development, by Randy Connolly and Ricardo Hoar, Publisher: Pearson

Week  No
Topics/Activities
1
8/25
*Lecture Note # 1 - Overview of the course, Discussion of Systms, Web systems, and other related topics
**  Lecture Note 1 Web Systems Infrastructure and Protocols (1 of 2), 8/25
8/27
* Homework Assignment #1 (Ch 1 Review Questions; pp. 49-50) due 9/8
** Continue  Lecture Note 1 Web Systems Infrastructure and Protocols (1 of 2)
* LAMP (Linux OS; Apache HTTP Web server; MySQL DB; PHP, Perl, Python)
* XAMPP Bundle-software, https://www.apachefriends.org/index.html
** XAMPP Web server Installation and Issues
** Chapter 1 How the Web Works (PPT slide)

2
9/1
** Chapter 1 How the Web Works - continue (PPT slide)
** Apache Web server (XAMPP) Installation and Issues, Lecture note
** TCP/IP Network Monitoring and Management - Hw 2, due 9/15
*** TCP/IP Networking Commands: WIndows Command Widnows/Linux Commands
*** Hw/Lab Report format

9/3
** Chapter 1 How the Web Works - continue (PPT slide)
Lecture On: Lecture note (PDF), (HTML page with reference Links)
** Networking Services for Web Deployment
** Web Hosting Solutions
** IT Service Solutions
** Data Centers
** Cloud-Based Network Services

3 9/8
** Introduction to HTML, Web Browsers and Web Server - Lecture Note 3(PPT slide)
** References
* 2015 Internet Browser Software Product Comparisons, http://internet-browser-review.toptenreviews.com/

* E-Book on Building Web Applications with HTML, 2012, by Paul I. Lin, http://www.etcs.ipfw.edu/~lin/CECourses/2_HTML/CE_02WebHhtmlindex.html   

9/10
** Fundamentals of Web Development, 2015, by Randy Connolly and Ricardo Hoar, published by Pearson, (Code Examples)
** Introduction to HTML, Web Browsers and Web Server - Lecture Note 3(PPT slide) - continue
** Chapter 2 Introduction to HTML (Figures on PPT slide)

References
* HTML 5, W3C recommendation 28 October 2014, http://www.w3.org/TR/html5/
4 9/15
** Chapter 2 Introduction to HTML (Figures on PPT slide) - continue
** Chapter 3 Introduction to CSS (PPT slide with Figures)

9/17
** Chapter 4 HTML Forms and Tables (using Text book with Elmo document projector) - covered HTML Tables from pp. 149 to 158; plus example codes

References:
** HTML 5 - 4.9 Tabular Data,
http://www.w3.org/TR/html/tabular-data.html
** HTML 5 - 4.10 Forms,
http://www.w3.org/TR/html5/forms.html
5 9/22
** Chapter 4 HTML Forms and Tables (using text book with Elmo document projector) - will cover HTML Forms, from pp. 158-178; plus example codes
** HTML 5 - 4.10 Forms, http://www.w3.org/TR/html5/forms.html
** Creating HTML Forms, Paul Lin, http://www.etcs.ipfw.edu/~lin/CECourses/2_HTML/Lectures/5_HTMLForm.html
** HTTP 1.1 RFC 2616 (Obsolete), http://www.w3.org/Protocols/rfc2616/rfc2616.html 
*** HTTP/1.1 RFC 7230- Message Syntax and Routing; June 2014, http://tools.ietf.org/html/
*** HTTP/1.1 RFC 7237 Method Registration; June 2014, http://tools.ietf.org/html/
9/25
Chapter 6. JavaScript: Client-Side Scripting (using Text book with Elmo document projector)


References
** Standard ECMA-262, ECMAScript 2015 Language Specifications, 6th Edition, 2015, http://www.ecma-international.org/publications/standards/Ecma-262.htm
** JavaScript Web APIs, http://www.w3.org/standards/webdesign/script.html
** Developing Advanced Web Applications using JavaScript, by Paul Lin, http://www.etcs.ipfw.edu/~lin/Presentation/JavaScript/JavaScriptBookIndex.html
** JavaScript Language Reference, https://msdn.microsoft.com/library/d1et7k7c(v=vs.94).aspx


Exam1
(50 minutes, Online, close-books/notes exam; through Blackboard) -  from 5:00 PM, Thursday, Sept. 24 to 11:00  PM Sunday, Sept 27.
Covering Chapters 1 through 4, plus the lectures notes and hw assignments related topics.
6 9/29
Creating HTML5 Slide Shows using <meta> element, Lin's Lecture note, HTML page
Using HTML5 <video> and <audio> elements, Lin's Lecture note: (HTML page, PDF file)

Hw4 JavaScript for Dynamic Web Page (prepare documentation for Ch 6 code listings), due 10/6
Hw 5 Final Poject Proposal
(10% of hw grade) - Discussion of Project Ideas, Project Proposal, team formation: Proposal due on Oct. 15, Thursday before 3 PM, as an email attachment

Chapter 6. JavaScript:
Client-Side Scripting (using Text book with Elmo document projector)
** Syntax, Keywords, Variables
** Operators: (arithmetic, equality and relational: comparison, logical, conditional);
** Decision Making statement: if, else; conditional operator;
** Multiple Decision Making Statement: switch, case, break, continue
** Loops or repitition statement: while, for, do while
** Functions and program modules: built-in, programmer/user defined
** Objects (constructors, Properties, methods):
*** Array object: one-dimensional and multidimentisoanl arrays- push(), concat(), slice(), join(), reverse(), shift(), sort()
**** Figure 6.16: push() example
*** Math object- Properties: Math.PI, Math.E, Math.LN2, Math.LN10, Math.LOG2E, Math.LOG10E, Math.SQRT2, Math.SQRT1_2
******* Math methods: abs(x), ceil(x), floor(x), log(x), max(x,y), min(x,y), pow(x,y), sqrt(x), exp(x), round(x), sqrt(),random(); t=Trigonometric functions: sin(x), cos(x), tan(x), acttan(x)
**** Listing 6.7: some Math constants: PI, sqrt(4), random()
*** String object: chartAt(index), charCodeAt(index), concat(string), fromChardCode(), lastIndexOf(), replace(), slice(), split(), substr(), substring(), toLowerCase(), toUpperCase()

10/1 - covered pages 259-275.
*** Date object
*** Document object: document.getElementByID, etc
*** Window objet: alert()
** The Document Object Model (DOM): DOM tree, Nodes, DOM document object
*** Figure 6.17 DOM Tree, Figure 6.18 DOM nodes, Table 6.3 Some Essential Node Object Properties
*** Table 6.4 Some Essential Document Object Methods, Figure 6.19 getElementbyID(), getElementbyTagName()
*** Table 6.5 Some Essential Element Node Properties
*** Table 6.6 Some Specific HTML DOM Element Properties for Certain Tag Types 
*** Listing 6.8 Changing the HTML using innerHTML
*** Listing 6.9 Changing the HTML using createTectNode() and appendChild()
JavaScript Events: Events (keyboard, mouse, form), Event Listener, Event Handler
**** Mouse Events: onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmouseout, onmousemove
**** Keyboard Events: onkeydown, onkeypress, onkeyup
**** Form Events: onblur, onchange, onfocus, onreset, onselect, onsubmit
**** Frame Events: onaboard, onerror, onload, onresize, onscroll, onunload
Ch 6 Code Examples
7 10/6, 10/8  
Update on Innovative Web Services/Web Sites and Apps,
* Web Magazines, Oct. 2015 Issue, http://www.websitemagazine.com/content/ -10/6
*** The Data on Big Data: Data collection (personal, behavioral), Data Analytics, Benefits (improving customer experience, increaseing revenue), page 9
*** Hitting a Customer Service Homerun: (1) Make mobile the Most Valuable Player (MVP), (2) Throw a Social Strike, (3) Take a Swing at Self-Service, page 12
*** The Digital Redesign Process, page 20-21
*** Disruptive Business Operation, page 24-29 

* Chapter 8 Introduction to Server-Side Development with PHP (Example codes), pages 322-342; 10/6

* Topics on Web Server and Application Server Integration, Lecture Note
* Introduction to PHP,
Lecture Note; 10/6
8 10/13 (Fall break)
10/15
* Chapter 9 PHP Arrays and Superglobals (use text book examples)
* Lecture Note Intro to PHP: Part 2, PHP Arrays and Supergloabls, PDF file, HTML file

9 10/20
* Chapter 9 PHP Arrays and Superglobals (use text book examples), and php code
*** Superglobal arrays for server-side programming : HTTP headers, Query string parameter,  and other needed information for (a) Server and Cookies related, (b) Form handling, and (c) Web Database Integration;
** The Class was interrupted by ETCS Building's Emergency Alram at 3:50 PM. **
*** Lecture note: PDF, HTML
*** Examples, Chapter 9
*** Other Examples
*** See your browser information: PHPbrowser-server-info.php 

***** XAMPP Testing: http://127.0.0.1/Lin-php-examples/PHPbrowser-server-info.php
*** Read Cookie's Content: readYourCookies.php
***** XAMPP Testing: http://127.0.0.1/Lin-php-examples/readYourCookies.php
*** Show Browser & Server Info: PHPbrowser-server-infoAll.php; code in txt file
*** PHP Cookie Example, http://www.w3schools.com/php/php_cookies.asp
*** File Upload Example, fileupload.html
10/24 Lecture Notes
* References
*** SERVER, http://php.net/manual/en/reserved.variables.server.php

*** Cookie, http://php.net/manual/en/features.cookies.php, setcookie, http://php.net/manual/en/function.setcookie.php
*** PHP ini directives, http://php.net/manual/en/ini.php
*** PHP Runtime Configuration, http://php.net/manual/en/session.configuration.php
*** How to Enable Session Support for PHP
, http://support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP
*** How to Create, Read, Update, and Delete Cookies,  http://www.pontikis.net/blog/create-cookies-php-javascript
*** Handling File Uploads, http://php.net/manual/en/features.file-upload.php
10 10/27
** Enterprise Data & Application Integration, Lecture note
** Chapter 10. PHP Classes and Objects: Section. 10.1 to 10.2
** Chapter 11. Working with Database: Section 11.1 Database & Web Development
** Workflow for Data Modeling, note
10/29
** Discussion of progress reports and Examples
** Computer and Web Technology Trend, Lecture note

** E-Commerce and Business: An Introduction, Lecture note
** PhpMyAdmin, http://www.phpmyadmin.net/  and MySQL Developer Zone, http://dev.mysql.com/
** Structure Query Language (SQL)
**** ANSI Standard SQL, https://docs.oracle.com/cd/B12037_01/server.101/b10759/ap_standard_sql001.htm
**** SQL (Structured Query Language),
http://docs.oracle.com/cd/B28359_01/server.111/b28286/intro002.htm
**** Ch 11.2 SQL Statements and Functions (An introduction), pp. 445-454
***** Data Manipulation Language
******* SELECT, FROM, ORDER BY, WHERE, AND, INNER JOIN, AS, GROUP BY;  INSERT INTO, VALUES, SET;  UPDATE, SET, WHERE;  DELETE FROM, WHERE
***** Transactions: a sequence of steps that are treated as a single unit, and proide a way to gracefully handle errors and keep your data properly consistent when errors do occur.
******** Local transaction processing: START, TRANSACTION, COMMIT, ROLLBACK
******** Distributed transaction processing: Multiple systems, Transaction manager: two-phase commit
***** Data Definition Statements (DDL): Creating tables, modifying the structure of a table, deleting tables, creating and deleting databases; through phpMyAdmin (Lecture note: XAMPP/phpMyAdmin/MySQL)
**** Database Indexes and Efficiency
11 11/3
** Mobile Sales Automation System - UML Diagram
** Managing MySQL: MySQL command line, navigation through
c:\xampp\mysql, show databases, show tables, use database_name, etc; phpMyAdmin; Lecture note
** Database APIs
** Accessing MySQL in PHP; Discussion of Lab 11 from Working with Databases in Student Resources of the 
11/5;
http://www.pearsonhighered.com/cs-resources/products/product.html#product,isbn=0133407152; This lab 11 will be assigned hw 8, due Nov. 17.

11/5
** Exam 2 Review, Lecture  Note
** Exam 2 Period (Starting 10 AM, Friday Nov. 6; Ending 11 PM, Sunday Nov. 8, 2015); Online, closed books, Note, and not Web references
** Exam 2 Coverage Areas
**** Ch. 6. JavaScript: Client-Side Scripting
**** Ch. 7 Web Media: Section 7.5  Audio and Video
**** Ch. 8 Introduction to Server-Side Development with PHP
**** Ch. 9 PHP Arrays and Superglobals
**** Ch. 10. PHP Classes and Objects: Section 10.1 Object-Oriented Overview, 10.2 Classes and Objects in PHP
**** Plus the lectures notes and hw assignments related topics.
12 11/10
Chapter 13. managing State, Lecture Note

11/12
Chapter 13. managing State, Lecture Note (continue)
HTML5 Web Storage and Applications, Lecture Note
References:
* Text Book: Fundamentals of Web Development, 2015, by Randy Connolly and Ricardo Hoar, published by Pearson
* Internet & World Wide Web How To Program, 5th ed, by Paul Deitel, Harvey Deitel, and Abbey Deitel, publisher Pearson
* HTTP State Management Mechanism, http://tools.ietf.org/html/rfc6265 
* Web Storage, W3C Recommendation, June 09, 2015, http://www.w3.org/TR/webstorage
* Web Storage Test Suite, https://github.com/w3c/web-platform-tests/tree/master/webstorage
* HTML Local Storage Objects, http://www.w3schools.com/html/html5_webstorage.asp 
* 9 JavaScript Libraries for Working with Local Storage, http://www.sitepoint.com/9-javascript-libraries-working-with-local-storage/
* HTML5 Demo, http://html5demos.com/storage 
* “Chapter 7 The Past, Present, and Future of Local Storage for Web Applications,” HTML5 Up and Running, by Mark Pilgrim, Publishers O’Reilly/Google Press, http://shop.oreilly.com/product/9780596806033.do  ; Aurthor’s Web site, http://diveintohtml5.info/  ; http://diveintohtml5.info/storage.html ; http://diveintohtml5.info/storage.html
* “5. Mobile Application: Client Storage and Offline Execution,” HTML5 in Action, by Rob Crowther, Joe Lennon, Ash Blue, and Greg Wanish, publisher Manning, https://www.manning.com/books/html5-in-action 
* “Hack 54 Use the WebStorage to Persist User Data,” HTML5 Hacks, by Jesse Cravens & Jeff Burtoft, publisher O’Reilly, https://github.com/html5hacks 
* Creating Mobile Web Applications with HTML 5: Part 1. Combine HTML5, Geolocation APIs, and Web Services to Create Mobile Mashups, http://www.ibm.com/developerworks/library/x-html5mobile1/ 
* Creating Mobile Web Applications with HTML 5: Part 2. Unlock local storage, http://www.ibm.com/developerworks/library/x-html5mobile2/ 
* A New version of SaaS for areas with Internet Connectivity Challenges, http://craigappl.github.io/Offline-Enabled-SAAS-Systems/
*How to clear Web Storage in your browser of choic, http://www.ghacks.net/2015/02/05/how-to-clear-web-storage-in-your-browser-of-choice/
* Introduction to Web Storage, https://msdn.microsoft.com/en-us/library/bg142799(v=vs.85).aspx
13 11/17
Chapter 16. Security, Lecture note

11/19 (Class cancelled)
14 11/24
Chapter 16. Security, Lecture note (continue)

11/26 (Thanksgiving holiday)
15 12/1

* Chapter 16. Security, Lecture note - updated new note 12/1/2015 (continue)
* The Web's Cruft Problem, by T J VanToll, Web Site Magazine, pp. 20-21, Dec. 2015
* Everyday & Everywhere Web Analytics, by Peter Prestipino, Web Site Magazine, pp. 24-29, Dec. 2015

References
* Password Formats - Basic Authentications, https://httpd.apache.org/docs/2.2/misc/password_encryptions.html
* The apache-md5 package (OpenSSL MD5() function), https://hackage.haskell.org/package/apache-md5
* Ch. 15 Security, Linux System Administration, 2nd Ed, by Vicki Stanfield and Roderick W. Smith, published by SYBEX
* Ch. 15 System Security, A Practical Guide to Ubuntu Linux, 4th Ed, by Mark G. Sobell, published by Prentice Hall
* Windows 7:  Security Features, http://www.microsoft.com/security/pc-security/windows7.aspx 
* Windows 10 Security Overview, https://technet.microsoft.com/en-us/library/mt601297(v=vs.85).aspx
* What's New in Windows Server 2016 Technical Preview, Aug. 18, 2015,  https://technet.microsoft.com/en-us/library/dn765472.aspx
* Security Best Practice for IIS 8, June 24, 2013,  https://technet.microsoft.com/en-us/library/jj635855.aspx
* Windows Server, https://technet.microsoft.com/en-us/library/bb625087.aspx
* Microsoft Internet Information Server (IIS 10), https://www.iis.net/
* What's New in IIS 10.0?, https://www.iis.net/learn
* Microsoft Azure: Cloud Computing Platform & Services, https://azure.microsoft.com/en-us/

12/3
* Chapter 16. Security, Lecture note - updated new note 12/1/2015 (continue)
* Exam 3 Review
16 12/8
* Enterprise Application Integration (EAI), Lecture note
* XML and Web Services (Using Ch 17 text & document projector)
* Special Lecture on NIST Cloud Computing Definition, Standards & Roadmap, Security & Privacy Guideline

12/10 (Final Project Presentation)
** "Entertainment Web Site," by Jason Arango, Andrew Inherst, and  Troy Waidelich, 3:00-3:20 PM
** "Home Automation/Monitoring Web-based Applications," by Kevin Hjelm and Zachary Mezera, 3:25-3:45 PM
** "Ultrazone Web Site," Dayvid Myers, Jacob Szilagyi, and  Andrew McDermitt, 3:50-4:15 PM
17 12/15 (Final Project Presentation)
** "Campuslist.org," by Austin Szilagyi and Nicholas Stevens, 3:00-3:20 PM
** "ANC News Website Homepage Revamp," by Amanda Necessary, Benjamin Rairigh, and Matthew Ranochak, 3:25-3:45PM
** "Outwear Suggesting Daily Weather Email with Settings Web Site," Mitchell Grogg, 3:50 - 4:10 PM
** "A Music Steaming Web Site," Latif Bichai, 4:10-4:30 PM