https://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&feed=atom&action=historyPattern Implementation Matters/alx - Revision history2024-03-28T21:38:02ZRevision history for this page on the wikiMediaWiki 1.36.1https://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=3559&oldid=prevSfrancisco: Edited format2017-05-16T18:17:54Z<p>Edited format</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:17, 16 May 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= [[Christian Köppe]]</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= [[Christian Köppe]]</div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ref>Patlet first published in Köppe, C. (2011). [http://dl.acm.org/citation.cfm?id=2396718 A pattern language for teaching design patterns (part 1)]. In ''Proceedings of the 16th European Conference on Pattern Languages of Programs'' (p. 2). <del style="font-weight: bold; text-decoration: none;">ACM:</del>New York.</ref><ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. <del style="font-weight: bold; text-decoration: none;">ACM:</del>New York.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ref>Patlet first published in Köppe, C. (2011). [http://dl.acm.org/citation.cfm?id=2396718 A pattern language for teaching design patterns (part 1)]. In ''Proceedings of the 16th European Conference on Pattern Languages of Programs <ins style="font-weight: bold; text-decoration: none;">(EuroPLoP 2011)</ins>'' (p. 2). New York<ins style="font-weight: bold; text-decoration: none;">:ACM</ins>.</ref><ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs <ins style="font-weight: bold; text-decoration: none;">(PLoP 2011)</ins>''. New York<ins style="font-weight: bold; text-decoration: none;">:ACM</ins>.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=3290&oldid=prevSfrancisco: Added category2017-05-15T19:06:13Z<p>Added category</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:06, 15 May 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l52">Line 52:</td>
<td colspan="2" class="diff-lineno">Line 52:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>As Ralph Johnson says in Goldfedder & Rising<ref name="Goldfedder">Goldfedder, B., & Rising, L. (1996). [http://dl.acm.org/citation.cfm?id=236171 A training experience with patterns]. ''Communications of the ACM, 39''(10), 60-64.</ref>: “...people can’t learn patterns without trying them out.”. It is hard for non-experienced programmers to realize the power of patterns without a concrete application of them<ref name="Astrachan">Astrachan, O., Mitchener, G., Berry, G., & Cox, L. (1998). [http://dl.acm.org/citation.cfm?id=273182 Design patterns: an essential component of CS curricula]. In ''ACM SIGCSE Bulletin'' (Vol. 30, No. 1, pp. 153-160). ACM.</ref>. </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>As Ralph Johnson says in Goldfedder & Rising<ref name="Goldfedder">Goldfedder, B., & Rising, L. (1996). [http://dl.acm.org/citation.cfm?id=236171 A training experience with patterns]. ''Communications of the ACM, 39''(10), 60-64.</ref>: “...people can’t learn patterns without trying them out.”. It is hard for non-experienced programmers to realize the power of patterns without a concrete application of them<ref name="Astrachan">Astrachan, O., Mitchener, G., Berry, G., & Cox, L. (1998). [http://dl.acm.org/citation.cfm?id=273182 Design patterns: an essential component of CS curricula]. In ''ACM SIGCSE Bulletin'' (Vol. 30, No. 1, pp. 153-160). ACM.</ref>. </div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The solution is supported by the pedagogical pattern {{Patternlink|Prefer Writing}}<ref name="Bergin2012">Bergin, J., Eckstein, J., Völter, M., Sipos, M., Wallingford, E., Marquardt, K., Chandler, J., Sharp, H., and Manns, M.L. (2012). Pedagogical patterns: advice for educators. Joseph Bergin Software Tools.</ref>, which encourages the use of written exercises and includes also the writing of source code.</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The solution is supported by the pedagogical pattern {{Patternlink|Prefer Writing}}<ref name="Bergin2012">Bergin, J., Eckstein, J., Völter, M., Sipos, M., Wallingford, E., Marquardt, K., Chandler, J., Sharp, H., and Manns, M.L. (2012). <ins style="font-weight: bold; text-decoration: none;">''</ins>Pedagogical patterns: advice for educators<ins style="font-weight: bold; text-decoration: none;">''</ins>. Joseph Bergin Software Tools.</ref>, which encourages the use of written exercises and includes also the writing of source code.</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Having students implementing design patterns on their own helps in getting a better understanding of the solution in general. If a concrete pattern implementation is given to the students, there will be a higher chance that they recognize the participants of the pattern and the roles they play. So even if they use code generation, having implemented a pattern on their own helps them in using it the correct way and to understand the generated code.</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Having students implementing design patterns on their own helps in getting a better understanding of the solution in general. If a concrete pattern implementation is given to the students, there will be a higher chance that they recognize the participants of the pattern and the roles they play. So even if they use code generation, having implemented a pattern on their own helps them in using it the correct way and to understand the generated code.</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l71">Line 71:</td>
<td colspan="2" class="diff-lineno">Line 71:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Design_patterns]] [[Category:Full_Pattern]]<!-- List of other categories the design pattern belongs to. The syntax for linking to a category is: [[Category:<Name of category]] --></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Design_patterns]] [[Category:Full_Pattern<ins style="font-weight: bold; text-decoration: none;">]] [[Category:Pattern Language for Teaching Design Patterns]] [[Category:Traditional Classroom</ins>]]<!-- List of other categories the design pattern belongs to. The syntax for linking to a category is: [[Category:<Name of category]] --></div></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=2752&oldid=prevSfrancisco: Added category2017-05-05T15:31:48Z<p>Added category</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:31, 5 May 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l71">Line 71:</td>
<td colspan="2" class="diff-lineno">Line 71:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><references/></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Design_patterns]] <!-- List of other categories the design pattern belongs to. The syntax for linking to a category is: [[Category:<Name of category]] --></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Design_patterns<ins style="font-weight: bold; text-decoration: none;">]] [[Category:Full_Pattern</ins>]]<!-- List of other categories the design pattern belongs to. The syntax for linking to a category is: [[Category:<Name of category]] --></div></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=2078&oldid=prevSfrancisco: Added contributors2017-04-06T19:30:49Z<p>Added contributors</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:30, 6 April 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l4">Line 4:</td>
<td colspan="2" class="diff-lineno">Line 4:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Infobox_designpattern</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>{{Infobox_designpattern</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|contributor= </div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|contributor= <ins style="font-weight: bold; text-decoration: none;">[[Christian Köppe]]</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ref>Patlet first published in Köppe, C. (2011). [http://dl.acm.org/citation.cfm?id=2396718 A pattern language for teaching design patterns (part 1)]. In ''Proceedings of the 16th European Conference on Pattern Languages of Programs'' (p. 2). ACM:New York.</ref><ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. ACM:New York.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ref>Patlet first published in Köppe, C. (2011). [http://dl.acm.org/citation.cfm?id=2396718 A pattern language for teaching design patterns (part 1)]. In ''Proceedings of the 16th European Conference on Pattern Languages of Programs'' (p. 2). ACM:New York.</ref><ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. ACM:New York.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=1229&oldid=prevSfrancisco: Added source2017-01-30T15:25:05Z<p>Added source</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:25, 30 January 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= </div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. ACM:New York.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2011)<ins style="font-weight: bold; text-decoration: none;"><ref>Patlet first published in Köppe, C. (2011). [http://dl.acm.org/citation.cfm?id=2396718 A pattern language for teaching design patterns (part 1)]. In ''Proceedings of the 16th European Conference on Pattern Languages of Programs'' (p. 2). ACM:New York.</ref></ins><ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. ACM:New York.</ref>; Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=1164&oldid=prevSfrancisco: Edited source2017-01-17T19:16:51Z<p>Edited source</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:16, 17 January 2017</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l5">Line 5:</td>
<td colspan="2" class="diff-lineno">Line 5:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= </div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|contributor= </div></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>|source= Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>|source= <ins style="font-weight: bold; text-decoration: none;">Köppe (2011)<ref>Pattern first published in Köppe, C. (2011). [http://koeppe.nl/publications/PatternsForPatternTeaching_ACM_Plop11.pdf A pattern language for teaching design patterns (part 2)]. In ''Proceedings of the 18th Conference on Pattern Languages of Programs''. ACM:New York.</ref>; </ins>Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --></div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l14">Line 14:</td>
<td colspan="2" class="diff-lineno">Line 14:</td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker" data-marker="−"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Also Known As: Implementation Matters</div></td><td class="diff-marker" data-marker="+"></td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Also Known As: <ins style="font-weight: bold; text-decoration: none;">{{Patternlink|</ins>Implementation Matters<ins style="font-weight: bold; text-decoration: none;">}}</ins></div></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
<tr><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td><td class="diff-marker"></td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br/></td></tr>
</table>Sfranciscohttps://www.learningenvironmentslab.org/openpatternrepository/index.php?title=Pattern_Implementation_Matters/alx&diff=1087&oldid=prevSfrancisco: Created pattern in alx2016-11-16T18:46:10Z<p>Created pattern in alx</p>
<p><b>New page</b></p><div><!-- Design pattern template<br />
Fill in all succeeding fields that are either surrounded by a comment tag (<!-- - ->) or angle brackets (< >) when applicable --><br />
<br />
{{Infobox_designpattern<br />
|image= <!-- Provide the filename of the image to be displayed (e.g., Design_pattern.png) --><br />
|contributor= <br />
|source= Köppe (2013)<ref name="Koppe2013">Köppe, C. (2013). [http://link.springer.com/chapter/10.1007/978-3-642-38676-3_2 A Pattern Language for Teaching Design Patterns.] In ''Transactions on Pattern Languages of Programming III'' (pp. 24-54). Springer Berlin Heidelberg.</ref><br />
|dataanalysis= <!-- If applicable, list of data analyses used for mining the pattern separated by a " , "comma --><br />
|domain= <!-- Learning domain the design pattern belongs to (e.g., General, Math, Algebra) --><br />
|stakeholders= <!-- List of stakeholders separated by a " , "comma --><br />
|evaluation = <!-- List of evaluations on the pattern separated by a " , "comma --><br />
|application = <!-- List of environments where the pattern was applied separated by a " , "comma --><br />
|appliedevaluation = <!-- List of environments where the pattern was applied and evaluated separated by a " , "comma --><br />
}}<br />
<br />
Also Known As: Implementation Matters<br />
<br />
<br />
[[File:Pattern Implementation Matters-alx.png|center|400px]]<br />
<br />
<center>Knowing is not enough; we must apply. Willing is not enough; we must do.</center><br />
<center> -Johann Wolfgang von Goethe</center><br />
<br />
<br />
<br />
The concept of patterns is often abstract to students when first introduced to it. Especially the solution of a pattern is described on a high abstraction level, which makes it hard for students to see how this solution could or should be implemented in a concrete context.<br />
<br />
<center><nowiki>***</nowiki></center><br />
<br />
'''The students have difficulties with implementing the solutions of patterns if they only read or hear about them. It is hard for them to add the information necessary for the pattern implementation, which has been abstracted away during the definition of the pattern.'''<br />
<br />
<br />
Similar to programming techniques, it is not sufficient to just know about the solution a specific design pattern describes in order to use it in the intended way. E.g. the concept of recursion should be implemented and played with in order to get a real understanding of it. The process of unfolding to specific needs is generally an essential part of using abstractions like patterns.<br />
<br />
<br />
''Abstract vs. Concrete.'' Design pattern solutions are usually given in an abstract way. The participants are described and the structure is shown in a class diagram. However, all these stay on an abstract level for the student. Even if a sample implementation is given for a specific problem, the students still might have problems on how to apply the pattern for ''their own'' concrete problem. It is not an easy task applying an abstract solution to a concrete problem.<br />
<br />
<br />
''Implementation Complexity.'' Some patterns are easy to implement, while others are much more complex. This difference is not easily comprehensible for students.<br />
<br />
<br />
''Code Generation.'' Some development tools offer support for the application of design patterns<ref>Design pattern generation support can be found e.g. in the Netbeans IDE or in the Eclipse IDE (using PatternBox, http://www.patternbox.com).</ref>. These tools generate most of the code which makes up the important parts of a pattern implementation. The students do often not study this generated code and take for granted that this code reflects the best possible implementation of the pattern solution independent of the rest of their implementation. So if they have to implement a pattern on their own — without using the generating facilities of such an IDE — or if they have to recognize patterns in source code, they are likely to fail.<br />
<br />
<br />
<center><nowiki>***</nowiki></center><br />
<br />
'''Therefore: let the students implement some pattern solutions themselves.'''<br />
<br />
<br />
With software design patterns it is always possible to implement them, and this helps students to understand the transformation from abstract pattern solution to concrete implementation better. However, this is not always easily possible in other domains. E.g. the patterns of Alexander can mostly not be implemented in the context of a course on architecture, and educational patterns at curriculum level might also be too big to be implemented during a course on didactics. This pattern is therefore considered as an invariant in the domain of teaching software design patterns.<br />
<br />
As Ralph Johnson says in Goldfedder & Rising<ref name="Goldfedder">Goldfedder, B., & Rising, L. (1996). [http://dl.acm.org/citation.cfm?id=236171 A training experience with patterns]. ''Communications of the ACM, 39''(10), 60-64.</ref>: “...people can’t learn patterns without trying them out.”. It is hard for non-experienced programmers to realize the power of patterns without a concrete application of them<ref name="Astrachan">Astrachan, O., Mitchener, G., Berry, G., & Cox, L. (1998). [http://dl.acm.org/citation.cfm?id=273182 Design patterns: an essential component of CS curricula]. In ''ACM SIGCSE Bulletin'' (Vol. 30, No. 1, pp. 153-160). ACM.</ref>. <br />
<br />
The solution is supported by the pedagogical pattern {{Patternlink|Prefer Writing}}<ref name="Bergin2012">Bergin, J., Eckstein, J., Völter, M., Sipos, M., Wallingford, E., Marquardt, K., Chandler, J., Sharp, H., and Manns, M.L. (2012). Pedagogical patterns: advice for educators. Joseph Bergin Software Tools.</ref>, which encourages the use of written exercises and includes also the writing of source code.<br />
<br />
Having students implementing design patterns on their own helps in getting a better understanding of the solution in general. If a concrete pattern implementation is given to the students, there will be a higher chance that they recognize the participants of the pattern and the roles they play. So even if they use code generation, having implemented a pattern on their own helps them in using it the correct way and to understand the generated code.<br />
<br />
This pattern is just a part of the whole language and should not be used in isolation. {{Patternlink|Pattern Implementation Matters}} can be used in combination with {{Patternlink|Experience of Benefits}}, but does not have to. After using {{Patternlink|Pattern Implementation Matters}} it is advisable to also ensure a {{Patternlink|Principle-Supporting Pattern Usage}} and that the students put {{Patternlink|Simplicity Above Patterns}}.<br />
<br />
The applicability of this pattern depends on the domain of the patterns. If the implementation is not realistic in the scope of the educational setting due to time or space constraints, then alternatives as e.g. working with a prototype or modelling the solution could be considered.<br />
<br />
''Probably all courses on design patterns include the implementation of at least a few of them. In our course the students had, among others, to implement e.g. the {{Patternlink|Strategy}} pattern. This exercise was then also used to give them the {{Patternlink|Experience of Benefits}}. Another exercise included the implementation of the {{Patternlink|Facade}} pattern. Many more examples can be found in the references section.''<br />
<br />
''In Head First Design Patterns<ref name="Freeman">Freeman, E., Robson, E., Bates, B., & Sierra, K. (2004). ''Head first design patterns.'' O'Reilly Media, Inc..</ref> many implementation exercises are included.''<br />
<br />
<br />
''The assignments for the course on software architecture at the University of Vienna all require the implementation of different architectural patterns.''<br />
<br />
<br />
==References==<br />
<references/><br />
<br />
[[Category:Design_patterns]] <!-- List of other categories the design pattern belongs to. The syntax for linking to a category is: [[Category:<Name of category]] --></div>Sfrancisco