ID: SME: Justin Gates Development Round: Accelerated Online Course Development High-Level Design Template Course Name: Server-Side Scripting Course Number: NM260 SME: Justin Gates Address:8303 Mark Twain Place, Tampa, FL 33637 Email: justin.gates@rasmussen.edu Phone: 813.704.0858 Course Description: This course focuses on dynamic interactive web sites from a multimedia perspective. Emphasis is on data driven pages, interactivity through client side scripting, dynamic web content and database access through server side scripting. Pre-Requisites: Dynamic Content Management Fundamentals of Web Authoring and Design Credit Hours: 3 Required Textbook: Title: PHP and MySQL Web Development, 4th ed. Author: Luke Welling and Laura Thomson ISBN: 0672329166 Publisher Addison-Wesley Professional Additional Publisher Digital Assets: CD containing software: PHP, MySQL, and Apache (included with textbook) Other Required Materials: N/A Course/Performance Objectives: These must exactly align with the official syllabus Page 1 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates 1. 2. 3. 4. 5. 6. 7. Development Round: Identify server side technologies used on the web to an accurate level. a. Differentiate Between Server-Side and Client-Side Technolgoies/Languages b. Compare the role of Frontend (client-side) and Backend (server-side) development activities. c. Contrast the functions performed by HTML, PHP, and MySQL as it relates to interactive websites/web applications. d. Interpret basic core PHP functionality (including basic operators) Demonstrate basic programming of variables, calculations, and comparisons utilizing PHP and MySQL to 100% accuracy. a. Differentiate between variable data types used in PHP and MySQL. b. Demonstrate the ability to create variables of various types in PHP and discuss/describe the relationship between PHP variables and MySQL database fields/columns based on data type. c. Produce examples of a number of different functions commonly used in PHP to perform basic calculations, comparisons, and variable manipulation. d. Construct basic functions using variables created in PHP and to store function output as new variables. Develop error free code that is optimized and efficient through the use of arrays, functions, and constants a. Analyze how data structures such as arrays, collections, constants and groupings function in PHP and MySQL and how functions can be used to take advantage of each data structure to optimize the performance of a website/application. b. Explain the concept of Refactoring and optimizing/improving existing functions or creating new functions and reducing potential for errors in PHP and MySQL. c. Investigate basic error codes reported in MySQL and using the MySQL Reference Manual as a resource for error checking. Create dynamic forms using PHP and HTML forms to dynamically manipulate data to an accurate level. a. Describe the role of forms on HTML-based web pages and frontend interface design. b. Analyze the DOM (Document Object Model) concept and how PHP uses field data entered on forms and translates the information into variables to be used as part of functions and stored within a record within a MySQL database. c. Create scripts to output manipulated information (through PHP) to a browser window. Manipulate multidimensional arrays, and strings for advanced data manipulation to an error free level. a. Perform activities needed to enhance existing functions to include advanced manipulation of variable-based data in PHP and to output information to a browser window or to a MySQL database. b. Basic analysis of PHP error reporting in a browser session. c. Apply best practices relating to data manipulation to reduce potential errors. Utilize external files, sessions, and cookies to dynamically display information to an error free level. a. Employ sessions and cookies – Demonstrate the ability to determine the difference between and when to use sessions and cookies. b. Demonstrate ability to attach an external file to a client-side form and for the file to be saved as part of a record in a MySQL database or within a thirdparty file system. c. Manipulate SOURCE script files to generate MySQL databases or information population (such as record entry) and to export existing databases to .sql format for use/porting of databases and records from one server environment to another. Produce error free custom classes and methods for advanced tasks utilizing PHP. a. Create, modify, and deploy custom classes. b. Apply functions to perform specific or routine tasks such as form data validation. Page 2 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates 8. Development Round: c. Apply Stored Procedures in a MySQL database. Demonstrate troubleshooting and debugging skills with common MySQL and PHP issues based on error codes at both the runtime and development levels a. Diagnose browser-based PHP errors and/or MySQL-based errors b. Demonstrate ability to use existing tools to correct errors and to incorporate measures to reduce future errors. c. Execute comprehensive reference queries within the MySQL Reference Manual and other resources for error diagnosis and correction. Final Project Details: Description: PHP-Based Budgeting Web App The course project will consist of three components, a frontend interface for user data entry, a backend database to store data entered using the interface and a transactional/transfer component built in PHP and used to manipulate user-entered data into meaningful information to then be stored within a MySQL database record for editing and/or later recall by a user. The concept is to provide users with a web form-based application to enter in data for creating a monthly budget to include information relating to a user’s income and expenses. Once entered, text-based data will be manipulated (using PHP) and converted from text to numeric values to be used within functions to determine key metrics such as the percentage of the user’s income used for paying a key expense such as monthly rent or a mortgage and to present the output of calculations to the user in a browser window using a well-formatted presentation structure. In addition to collecting and manipulating user data, data entered by users will also be stored within a MySQL database for editing or later recall by the user at a later time. For example, a user may want to recall a budget from a previous month or edit the current month’s budget. Deliverables: Week 4: Project Kick-Off – Review Full Project Requirements and Create plan for HTML form and field names/data types for data intake. Week 5: PHP Data Manipulation I – Identify the PHP processes needed to collect and convert user-entered data into variables to be used within calculations and functions. Week 6 – PHP Data manipulation II – Create PHP-driven functions to manipulate data into outputs to be reported to the user and staged for entry into the MySQL database. Week 7 – Browser Output – Use function output results from PHP-based functions/calculations along with concatenation to present output from a user created budget to a browser window for the user to review. Week 8 – MySQL Database Setup – Create MySQL database with appropriate tables and fields to store data entered into a budget as a record within the database to be accessed by a user. Page 3 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 9 – Database Linking – Link existing PHP-based budget with the MySQL database to allow for user data to be saved within the database such that the user is able to use the Web Form to enter budget data, PHP is able to take the data and convert the data into information that is used by functions/calculations and reported back to the user as results in the browser and calculation results are also stored within the MySQL database as a record for each period such as a month. Weekly Schedule Details: Page 4 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Example Performance Objectives Met this Week 1. Performance objective 1 2. Performance objective 2 3. Etc. Weekly Objectives a. b. c. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media Discussion Written Assignment Activity Project Read Chapter 1 Descriptions of the key theories First Person perspective of theory in practice Podcast from Newsweek Given... What would you do? Research topic for course project Introduction Objective(s) 1a 1b 1b 1c 1.c 1b 1a, 2c, 3b 1a, 2b, 3b Total Time Commitment Completion Time (hrs) 1 hour 1 hour 20 minutes 2 hours 4 hours . Key Challenges with Learning this Material: Students often struggle tying the theoretical basis back to practice. Potential Media Opportunity: Podcast Interview based audio for online lecture Widget explaining theories Page 5 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 01 – Introduction to Server-Scripting Using PHP Performance Objectives Met this Week 1. Identify server side technologies used on the web to an accurate level. Weekly Objectives a. b. c. d. Differentiate Between Server-Side and Client-Side Technologies/Languages Compare the role of Frontend (client-side) and Backend (server-side) development activities. Contrast the functions performed by HTML, PHP, and MySQL as it relates to interactive websites/web applications. Interpret basic core PHP functionality (including basic operators) Learning Activity Assignment/Activity Description Objective(s) Textbook Reading Online Lecture Online Lecture Media Discussion Written Assignment Activity Project PHP and MySQL Web Development, Introduction, Chapter 1 Overview of Client-Side and Server-Side Languages and Technologies N/A Student Web Hosting / PHP and Apache packages (as needed and if required) Week 01: Examples of Server-Side Languages and Technologies “Applying PHP in the Real-World “ Setup PHP, Apache, and MySQL N/A 1a, 1b, 1c 1a, 1b, 1c N/A N/A 1a 1a, 1b, 1c N/A Total Time Commitment Page 6 of 1 Completion Time (hrs) 2 hrs N/A 1 hr N/A 1 hr 2 hr 3 hr . 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 02 – Basic Programming in PHP Performance Objectives Met this Week 1. Demonstrate basic programming of variables, calculations, and comparisons utilizing PHP and MySQL to 100% accuracy. Weekly Objectives a. b. c. d. Differentiate between variable data types used in PHP and MySQL. Demonstrate the ability to create variables of various types in PHP and discuss/describe the relationship between PHP variables and MySQL database fields/columns based on data type. Produce examples of a number of different functions commonly used in PHP to perform basic calculations, comparisons, and variable manipulation. Construct basic functions using variables created in PHP and to store function output as new variables. Learning Activity Assignment/Activity Description Objective(s) Textbook Reading Online Lecture Online Lecture Media 1a, 1c 1b, 1d N/A N/A Discussion Written Assignment Activity PHP and MySQL Web Development, Chapter 2 The Role of Functions in PHP N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP and Apache packages (as needed and if required) Week 02: Creating Simple PHP Functions “Creating Your First PHP Function” Creating A Basic Information Intake Script in PHP Project N/A Page 7 of 1 1b, 1d 1b N/A N/A Total Time Commitment Completion Time (hrs) 2 hrs 1 hr 1 hr 3 hrs 2 hrs . 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 03 – Title Interface Design Using HTML and PHP Performance Objectives Met this Week 1. Create dynamic forms using PHP and HTML forms to dynamically manipulate data to an accurate level. Weekly Objectives a. b. c. Describe the role of forms on HTML-based web pages and frontend interface design. Analyze the DOM (Document Object Model) concept and how PHP uses field data entered on forms and translates the information into variables to be used as part of functions and stored within a record within a MySQL database Create scripts to output manipulated information (through PHP) to a browser window. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media N/A N/A Frontend Engineering Using HTML and PHP 1a, 1b Creating a Data Map Using PHP Variables 1b, 1c Adobe Dreamweaver CS6, Student Web Hosting / PHP and Apache packages (as needed and if N/A required) Week 03: Form Design in Dreamweaver CS6 1a “Common Uses of Forms” 1a, 1b Using a Data Map to Create PHP Variables 1b, 1C Week 04 Deliverable Assigned – Project Kick-Off N/A Total Time Commitment Discussion Written Assignment Activity Project Page 8 of 1 Objective(s) Completion Time (hrs) N/A 1 hr 2 hr N/A 1 hr 2 hr 2 hr 1 hr 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 04 – Title Advanced PHP and Error Handling Best Practices Performance Objectives Met this Week 1. Develop error free code that is optimized and efficient through the use of arrays, functions, and constants 2. Demonstrate troubleshooting and debugging skills with common MySQL and PHP issues based on error codes at both the runtime and development levels Weekly Objectives a. b. c. d. e. Analyze how data structures such as arrays, collections, constants and groupings function in PHP and MySQL and how functions can be used to take advantage of each data structure to optimize the performance of a website/application. Explain the concept of Refactoring and optimizing/improving existing functions or creating new functions and reducing potential for errors in PHP and MySQL. Investigate basic error codes reported in MySQL and using the MySQL Reference Manual as a resource for error checking. Diagnose browser-based PHP errors and/or MySQL-based errors Demonstrate ability to use existing tools to correct errors and to incorporate measures to reduce future errors. Learning Activity Assignment/Activity Description Objective(s) Textbook Reading PHP and MySQL Web Development, Chapter 7 Online Lecture Creating Arrays and Constants in PHP and Introduction to Error Handling Online Lecture Media Discussion N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed and if required) Week 04: On Error Patrol 2b, 2c, 2d, 2e 1a, 2b, 2c, 2d,2e N/A N/A Written Assignment “Resolving PHP Errors” Activity Debugging Errored PHP Scripts Project Week 04 Deliverable Due Week 05 Deliverable Assigned – PHP Data Manipulation I 2b, 2c, 2d, 2e 2b, 2c, 2d, 2e 2b, 2c, 2d, 2e 1 hr N/A N/A 1 hr 2 hr 2.5 hr .N/A Total Time Commitment Page 9 of 1 Completion Time (hrs) 2 .5 hrs 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 05 – Title Combining PHP with MySQL Performance Objectives Met this Week 1. Manipulate multidimensional arrays, and strings for advanced data manipulation to an error free level. Weekly Objectives a. b. c. Perform activities needed to enhance existing functions to include advanced manipulation of variable-based data in PHP and to output information to a browser window or to a MySQL database. Basic analysis of PHP error reporting in a browser session. Apply best practices relating to data manipulation to reduce potential errors. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media 1a, 1b, 1c PHP and MySQL Web Development, Chapter 4 A Friendly Handshake: PHP Meets MySQL 1a N/A N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed N/A and if required) Week 05: PHP and My SQL Around the Web 1a, 1b, 1c “MySQL in the Real-World” 1a Adding MySQL Connections to a PHP Script 1a, 1b Week 05 Deliverable Due N/A Week 06 Deliverable Assigned – PHP Data Manipulation II Total Time Commitment Discussion Written Assignment Activity Project Page 10 of 1 Objective(s) Completion Time (hrs) 2 hrs 1 hr N/A N/A 1 hr 2 hr 2 hr . 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: Page 11 of 1 SME: Justin Gates Development Round: Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 06 – Title PHP Browser Behavior and MySQL Interaction Performance Objectives Met this Week 1. Utilize external files, sessions, and cookies to dynamically display information to an error free level. Weekly Objectives a. b. c. Employ sessions and cookies – Demonstrate the ability to determine the difference between and when to use sessions and cookies. Demonstrate ability to attach an external file to a client-side form and for the file to be saved as part of a record in a MySQL database or within a third-party file system. Manipulate SOURCE script files to generate MySQL databases or information population (such as record entry) and to export existing databases to .sql format for use/porting of databases and records from one server environment to another. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media 1a, 1b, 1c PHP and MySQL Web Development, Chapter 23 Using Sessions and Cookies Within a PHP Website or Application 1a, 1b, 1c N/A N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed N/A and if required) Week 06: When to Use Sessions and Cookies 1a “Common Examples of Sessions and Cookies” 1a Using Sessions and Cookies within a Web Application 1a, 1b, 1c Week 06 Deliverable Due N/A Week 07 Deliverable Assigned – Browser Output Total Time Commitment Discussion Written Assignment Activity Project Page 12 of 1 Objective(s) Completion Time (hrs) 2.5 hrs 1 hr 1 hr 2 hrs 2.5 hrs . 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 07 – Title Using and Creating Classes in PHP Performance Objectives Met this Week 1. Produce error free custom classes and methods for advanced tasks utilizing PHP. Weekly Objectives a. b. c. Create, modify, and deploy custom classes. Apply functions to perform specific or routine tasks such as form data validation. Apply Stored Procedurse in a MySQL database. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media 1c PHP and MySQL Web Development, Chapter 6 Using Classes and Objects in PHP 1a, 1b, 1c N/A N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed N/A and if required) Week07: Why Use Custom Classes? 1b, 1c “Solving Programmatic Challenges with Custom Classes” 1a, 1b, 1cI Creating and Using a Custom Class 1a Week 07 Deliverable Due N/A Week 08 Deliverable Assigned – MySQL Database Setup Total Time Commitment Discussion Written Assignment Activity Project Page 13 of 1 Objective(s) Completion Time (hrs) 2 hrs 1 hr N/A N/A 1 hr 2 hr 2 hr . 8 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 08 – Title Debugging in PHP and MySQL Performance Objectives Met this Week 1. Demonstrate troubleshooting and debugging skills with common MySQL and PHP issues based on error codes at both the runtime and development levels. (Part II) Weekly Objectives a. b. c. Diagnose browser-based PHP errors and/or MySQL-based errors Demonstrate ability to use existing tools to correct errors and to incorporate measures to reduce future errors. Execute comprehensive reference queries within the MySQL Reference Manual and other resources for error diagnosis and correction. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media 1a, 1b, 1c PHP and MySQL Web Development, Chapter 26 Debugging and Error Triage in PHP and MySQL 1a, 1b, 1c N/A N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed N/A and if required), MySQL Reference Manual Week 08: Using the MySQL Reference Manual 1a, 1b, 1c “Debugging Techniques” 1a, 1b, 1c Debugging PHP in Adobe Dreamweaver CS6 1b Week 08 Deliverable Due Week 09 Deliverable Assigned –Database Linking Total Time Commitment Discussion Written Assignment Activity Project Page 14 of 1 Objective(s) Completion Time (hrs) 2.5 hrs 1 hr N/A 2 hrs 2 hrs 2 hrs . 9.5 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 09 – Special Topics in Server-Side Scripting Performance Objectives Met this Week 1. Identify server side technologies used on the web to an accurate level. Weekly Objectives a. b. Differentiate Between Server-Side and Client-Side Technologies/Languages Compare the role of Frontend (client-side) and Backend (server-side) development activities. Learning Activity Assignment/Activity Description Objective(s) Textbook Reading Online Lecture Online Lecture Media Discussion Written Assignment Activity Project User Experience (UX) Article on Alternative Server-Side Scripting Languages Additional Server-Side Scripting Technologies Bridging the Gap from PHP Adobe Dreamweaver CS6 Week 09: Beyond PHP and MySQL “The Power of Server-Side Scripting in Action” Creating Similar Functions to PHP-Based Functions Course Project Final Submission Due 1a, 1b 1a, 1b 1a, 1b N/A 1a, 1b 1a, 1b 1a,1b Total Time Commitment Completion Time (hrs) 1 hr 1 hr 1 hr N/A 2 hrs 2 hrs 2 hrs . 9 hrs Notes: Opportunity to discuss the role User Experience (UX) plays in relation to creating interactive web applications Page 15 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 10 – Title Alternatives to PHP for Server-Side Scripting Performance Objectives Met this Week 1. Create dynamic forms using PHP and HTML forms to dynamically manipulate data to an accurate level. Weekly Objectives a. b. c. Describe the role of forms on HTML-based web pages and frontend interface design. Analyze the DOM (Document Object Model) concept and how PHP uses field data entered on forms and translates the information into variables to be used as part of functions and stored within a record within a MySQL database. Create scripts to output manipulated information (through PHP) to a browser window. Learning Activity Assignment/Activity Description Objective(s) Textbook Reading Online Lecture Online Lecture Media Discussion Written Assignment Activity Project W3Schools Tutorial on JavaScript Forms JavaScript vs. PHP N/A Adobe Dreamweaver CS6 Week 10: Choices “When to Use JavaScript” Creating a JavaScript-Enabled Web Form N/A 1a, 1b, 1c 1a, 1b, 1c N/A N/A 1a, 1b, 1c 1a, 1b, 1c 1a, 1b, 1c Completion Time (hrs) 1.5 hrs 1.5 hrs N/A N/A 1.5 hrs 2.5 hrs 2.5 hrs . 9.5 hrs Total Time Commitment Notes: This weekly module is designed to give students exposure to a scripting language outside of PHP and one that is significant in the current market as a skill needed to be competitive in the job market. JavaScript is used for a number of different applications and also works with PHP and can be used on the client-side to work in conjunction with PHP on the server-side. Page 16 of 1 Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Week 11 – Title Course Wrap Up Performance Objectives Met this Week 1. Demonstrate troubleshooting and debugging skills with common MySQL and PHP issues based on error codes at both the runtime and development levels Weekly Objectives a. b. c. Diagnose browser-based PHP errors and/or MySQL-based errors Demonstrate ability to use existing tools to correct errors and to incorporate measures to reduce future errors. Execute comprehensive reference queries within the MySQL Reference Manual and other resources for error diagnosis and correction. Learning Activity Assignment/Activity Description Textbook Reading Online Lecture Online Lecture Media W3Schools Review of Debugging and Exception Handling 1a, 1b, 1c Testing and Publishing A Web Application 1b, 1c N/A N/A Adobe Dreamweaver CS6, Student Web Hosting / PHP, Apache, and MySQL packages (as needed N/A and if required), MySQL Reference Manual Week 11: Publishing A Web Application 1b, 1c 1a, 1b, 1c Designing a Contingency Plan for Diagnosing Errors with a Published Web Application 1a, 1b, 1c Debugging and Error Handling After Publishing a Web Application N/A Total Time Commitment Discussion Written Assignment Activity Project Page 17 of 1 Objective(s) Completion Time (hrs) 2 hrs 2 hrs N/A N/A 1.5 hrs 2 hrs 1.5 hrs . 9 hrs Confidential & Proprietary Rasmussen, 2010 ID: SME: Justin Gates Development Round: Online Course Development High-Level Design Template Revision Record Revision: Complete the following table ONLY if there is a revision made to the above content following formal sign-off. Module Page 18 of 1 Revision Purpose/Goal of Revision: Date Confidential & Proprietary Rasmussen, 2010 ID: Page 19 of 1 SME: Justin Gates Development Round: Confidential & Proprietary Rasmussen, 2010