CS 479 Web Programming II

From Computer Science
Jump to: navigation, search

Catalog Description

  • Advanced programming for the World Wide Web and the Internet. This course includes client and server side programming with HTML/CSS/ECMAScript on the client side and PHP/mysqli scripting on the server. As well as some server side configuration using the Apache web server. Prerequisite - C or better in CS 170 and CS 201.

Prerequisites

  • Basic understanding of HTML, CSS and JavaScript (ECMAScript) in the browser


Standard Content

Course Outline

  • Review of CS170 concepts:
  • Basic HTML: basic formatting, lists, tables
  • Extensive HTML forms review
  • Basic CSS: selectors, box model, colors, fonts
  • JavaScript/ECMAScript review: basic data-types, variables and scope, functions, conditionals, loops.
  • The DOM, document and window objects, events and the event object
  • PHP Scripting:
  • Output
  • Data-types and scoping
  • Super-Globals: $_GET, $_POST, etc.
  • Language features: functions, conditionals, loops: while, for, foreach
  • MySQL/MariaDB:
  • Databases and tables
  • Data-types
  • SQL syntax: creating table, insert, update, delete and select
  • The PHP Mysqli interface (switch to PDO?)
  • simple vs. prepared statements
  • Security, escaping strings, input validation, etc
  • AJAX: Asynchronous client/server pages via XMLHttpRequest and JSON encoded data.
  • HTTP authentication schemes including HTTP auth, PHP sessions, creating long lived sessions using sessions cookies coupled with a user and sessions tables, password hashing, SSL/TLS security
  • WebSockets (time permitting)

Learning Outcomes

  • HTML forms, client side ECMAScript-ing and server side PHP scripting and MySQL. Understanding of basic web security concepts.

Important Assignments and/or Exam Questions

  • CS170 style review problems:
  • Creating static HTML forms and submitting to a PHP form handler
  • Dynamic PHP pages using $_GET variables
  • Simple ECMAScript dynamic server pages (PHP generated server side data requested via XMLHttpRequest() on the client.)
  • Creating tables and inserting data into a MySQL database via PHP from files / web forms.
  • Paginated display of a database w/ column sorting via server side PHP/Mysqli
  • Chat client/server (time permitting)

Standard resources

  • W3Schools, Mozilla Developer Network (MDN)
  • PHP.net, Mariadb.org, etc.