CS 479 Web Programming II
Contents
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.