Name: Edward "Ted" Altenberg Final Project Title: "Automating the Scoring of the Ravens Test" Date: December 13, 2008 Status: Completed Project Purpose: My project automates the complex scoring method used with the Ravens Progressive Matrices Test (a test used worldwide as a culturally- and liguistically unbiased test of general intelligence), which entails a table of percentage scores based on how many correct answers and the age of the person completing the test. Project Entry URL: http://tedaltenberg.com/tech/cis132/final/index.php Files: - altenberg_readMe10.txt: This file decribing the project - index.php: Project web page #1 - ravens.php: Project web page #2 - scoring.php: Project web page #3 - scoringmatrix.php Project web page #4 - google_einstein_widget_edit.htm Project web page #5 (used in the iframe, not really related to the project... just for fun...) - ravens.js: Project external script file - style.css Project style sheet - scoring_stylesheet.css Project style sheet (for scoringmatrix.php only) - home.gif Project menu image file - home_over.gif Project menu image file - ravens.gif Project menu image file - ravens_over.gif Project menu image file - scoring.gif Project menu image file - scoring_over.gif Project menu image file - cis132.gif Project menu image file - cis132_over.gif Project menu image file - final.gif Project menu image file - final_over.gif Project menu image file - vcss.jpg Project image file - vxhtml.jpg Project image file - check.gif Project image file Animation: index.php and ravens.php each have animated

elements. http://tedaltenberg.com/tech/cis132/final/index.php http://tedaltenberg.com/tech/cis132/final/ravens.php Form validation: scoring.php has the embedded function checkForm(), which validates the form on the same page. http://tedaltenberg.com/tech/cis132/final/scoring.php The following items are validated: 1. Month of Birth: cannot equal "Month" (i.e. must select a month) 2. Day of Birth: cannot equal "Day" (i.e. must select a day) 3. Year of Birth: must be 4 digits, and must match regular expression (see #11 below) 4. Month of Testing: cannot equal "Month" (i.e. must select a month) 5. Day of Testing: cannot equal "Day" (i.e. must select a day) 6. Year of Testing: must be 4 digits, and must match regular expression (see #11 below) 7. Year of Birth vs. Year of Testing: Year of Birth must be < (i.e. before) Year of Testing 8. Ravens Test Score: must be 2 digits, and cannot be > 60. When errors are made, an alert explains the error and how to fix it. Cookies: index.php uses a cookie to collect a userŐs name, then retrieves that cookie value in a simple personalization. http://tedaltenberg.com/tech/cis132/final/index.php "Unusual" Code -------------- 1. I use a large 2-dimensional array (lines 132-193 of ravens.js) to represent the scoring matrix for the Ravens. The first index of each element is the row of the array, which corresponds to the tester's raw score. The second index of each element is the column of the array, which corresponds to the age category to which the tester belongs. The value of each element in the 2-D array equals the tester's percentile score. 2. All the web pages use php includes for a portion of the and for the footer of each web page. The footer also uses putenv, echo and the getlastmod() environment variable to display the copyright (Y) and last modified (F d, Y) dates. 3. With just one exception, all the web pages validate as XHTML 1.0 transitional and CSS2.