<p dir="auto">(Initially <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="93348742" data-permission-text="Title is private" data-url="https://github.com/freeCodeCamp/freeCodeCamp/issues/1212" data-hovercard-type="issue" data-hovercard-url="/freeCodeCamp/freeCodeCamp/issues/1212/hovercard" href="https://github.com/freeCodeCamp/freeCodeCamp/issues/1212">#1212</a>, which I opened and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/BerkeleyTrue/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/BerkeleyTrue">@BerkeleyTrue</a> closed without discussion and which I can't reopen.)</p>
<blockquote>
<p dir="auto">This really isn't Ideal to compare your solutions</p>
</blockquote>
<p dir="auto">Actually, from a learner's perspective, being able to compare their own solution against the ideal solution is absolutely ideal.  In fact, <strong>"If feedback is not appropriate (either from an instructor or from self-reference to an information source), then the practice tends to be ineffective or even detrimental to learning."</strong> [1].  It isn't about competition with others, but self-reflection.</p>
<p dir="auto">One of the biggest challenges becomes identifying "the ideal solution".  But interestingly, reviewing peers' work can be, <em>in and of itself</em>, an effective pedagogical method if certain conditions are met  [2, 3, 4], and FCC is a poster-child for these conditions!</p>
<p dir="auto">The current approach means:</p>
<ul dir="auto">
<li>Having to go search for feedback (e.g. go look it up on the wiki), which means many learners simply won't get that feedback.</li>
<li>Lack of comparison between alternative answers (e.g. comparing and rating multiple working solutions) means learners aren't exposed to other solution paradigms, and therefore aren't developing <em>relevant</em> critical thinking skills.</li>
</ul>
<p dir="auto">And to be very clear, providing alternative solutions <em>does not necessitate competition</em>.  Reviewing multiple alternative solutions (including non-optimal solutions), and comparing peers' ratings of solutions, is the goal.  There is no need for names, affiliations, or anything else that breeds competition with anyone else.  However, it should encourage self-reflection.</p>
<p dir="auto">[1] <a href="https://en.wikipedia.org/wiki/Practice_%28learning_method%29#Deliberate_practice" rel="nofollow">https://en.wikipedia.org/wiki/Practice_%28learning_method%29#Deliberate_practice</a></p>
<p dir="auto">[2] <a href="https://onlinelearninginsights.wordpress.com/2013/03/09/why-and-when-peer-grading-is-effective-for-open-and-online-learning/" rel="nofollow">https://onlinelearninginsights.wordpress.com/2013/03/09/why-and-when-peer-grading-is-effective-for-open-and-online-learning/</a> , particularly:</p>
<blockquote>
<p dir="auto">Listed below are a list of conditions needed to ensure that peer grading  is effective:</p>
<ol dir="auto">
<li>When learners are at a similar skill level.</li>
<li>When assignments are low stakes [i.e. when a course is taken for professional development of personal interest as was the Digital Cultures course].</li>
<li>Where credit is not granted.</li>
<li>When learners are mature, self-directed and motivated.</li>
<li>When learners have experience in learning and navigating within a networked setting [if the review is completed in an open and online setting].</li>
<li>Learners have a developed set of communication skills.</li>
</ol>
</blockquote>
<p dir="auto">[3] <a href="http://www.lrdc.pitt.edu/schunn/research/peers.html" rel="nofollow">http://www.lrdc.pitt.edu/schunn/research/peers.html</a></p>
<p dir="auto">[4] <a href="http://eric.ed.gov/?id=EJ938586" rel="nofollow">http://eric.ed.gov/?id=EJ938586</a></p>
<p dir="auto">Challenge <a href="http://www.freecodecamp.com/challenges/waypoint-passing-values-to-functions-with-arguments#?solution=%2F%2F%20Example%0Afunction%20ourFunction%28a%2C%20b%29%20%7B%0A%20%20console.log%28a%20-%20b%29%3B%0A%7D%0A%2F%2FourFunction%2810%2C%205%29%3B%20%2F%2F%20Outputs%205%0A%0A%2F%2F%20Only%20change%20code%20below%20this%20line.%0A%0Afunction%20myFunction%28arg1%2C%20arg2%29%20%7B%0A%20%20console.log%28arg1%20%2B%20arg2%29%3B%0A%7D%0A%0AmyFunction%284%2C5%29%3B%0A" rel="nofollow">Waypoint: Passing Values to Functions with Arguments</a> has an issue.<br>
User Agent is: <code class="notranslate">Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36</code>.<br>
Please describe how to reproduce this issue, and include links to screenshots if possible.</p>
<p dir="auto">My code:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// Example
function ourFunction(a, b) {
  console.log(a - b);
}
//ourFunction(10, 5); // Outputs 5

// Only change code below this line.

function myFunction(arg1, arg2) {
  console.log(arg1 + arg2);
}

myFunction(4,5);
"><pre class="notranslate"><span class="pl-c">// Example</span>
<span class="pl-k">function</span> <span class="pl-en">ourFunction</span><span class="pl-kos">(</span><span class="pl-s1">a</span><span class="pl-kos">,</span> <span class="pl-s1">b</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">a</span> <span class="pl-c1">-</span> <span class="pl-s1">b</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>
<span class="pl-c">//ourFunction(10, 5); // Outputs 5</span>

<span class="pl-c">// Only change code below this line.</span>

<span class="pl-k">function</span> <span class="pl-en">myFunction</span><span class="pl-kos">(</span><span class="pl-s1">arg1</span><span class="pl-kos">,</span> <span class="pl-s1">arg2</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">arg1</span> <span class="pl-c1">+</span> <span class="pl-s1">arg2</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-en">myFunction</span><span class="pl-kos">(</span><span class="pl-c1">4</span><span class="pl-kos">,</span><span class="pl-c1">5</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>