E30: Experience creating standards-compliant UH degree data

In the Underscore module experiences Part 1, Part 2, and Part 3, you developed seven functions to manipulate UH degree data. In this experience, you’ll revisit this code and make it conform to our coding standards.

Prior to starting this WOD, please make sure your IntelliJ environment is configured to support our Code Layout Standards.

The WOD

For this practice WOD,

Ready? Let’s begin:

  1. Start your timer.

  2. Create an empty GitHub repo called “uhdegreedata” and clone it to your local computer.

  3. Create an IntelliJ “Static Web” project called “uhdegreedata” within your local uhdegreedata repo directory.

  4. Create two files: index.html and uhdatafunctions.js.

  5. The index.html should load the underscore library, the uhdata library, and uhdatafunctions.js:

      <script src="//philipmjohnson.github.io/ics314f15/morea/underscore/underscore-min.js"></script>
      <script src="//philipmjohnson.github.io/ics314f15/morea/underscore/uhdata.js"></script>
      <script src="uhdatafunctions.js"></script>
    
  6. The uhdatafunctions.js file should contain the code necessary to implement the seven functions from the Underscore module experiences.

  7. Document all functions and variables in your module using JSDoc (Javascript Coding Standard C1).

  8. Make sure your module passes JSHint (Javascript Coding Standard F).

  9. In index.html, add the following <script> that invokes each of the seven functions and outputs their return values to the console. Retrieve this page in a Chrome browser window to test that the module functions correctly:

       <script>
         console.log("Total Degrees", totalDegrees(uhdata));
         console.log("Percentage Hawaiian", percentageHawaiian(uhdata));
         console.log("Total Degrees By Year", totalDegreesByYear(uhdata, 2012));
         console.log("List Campuses", listCampuses(uhdata));
         console.log("List Campus Degrees", listCampusDegrees(uhdata));
         console.log("Max Degrees", maxDegrees(uhdata));
         console.log("Doctoral Degree Programs", doctoralDegreePrograms(uhdata));
       </script>
    
  10. Make sure your GitHub project conforms to GitHub standards B1, B2, B3, B4.

  11. Commit your code to GitHub. Make sure the commit message conforms to GitHub standard C1.

  12. Check that your code is on GitHub.

  13. Create a GitHub page for your site (GitHub standard B5). You can pick whatever theme you like.

  14. Stop your timer and record your time. Be sure to record it, because you will need your WOD time data when you write your technical essay.

Rx: < 33 min Av: 33-40 min Sd: 40-45 min DNF: 45+ min

Demonstration

Once you’ve finished trying the WOD for the first time, watch me do it:

Standard WOD Caveats

You’ll learn significantly less from watching me solve the WOD if you haven’t attempted the WOD yourself first.

While it’s an achievement to finish the WOD no matter how long it takes, you might experience “diminishing returns” if you work longer than the DNF time. Thus, it is usually strategic to stop working at the DNF time and watch my solution.

After watching my solution, I recommend that you repeat the WOD if you have not achieved at least Av performance. If so, be sure to:

Feel free to keep trying until you make Rx if that’s of interest to you.

Submission Instructions

To be completed by the time and date indicated on the Schedule page.