diff --git a/Doc/Sd1/Ref/Projects/soDumm2.png b/Doc/Sd1/Ref/Projects/soDumm2.png new file mode 100644 index 0000000000000000000000000000000000000000..b212114fe0358120635162bc15e3e0ddaa5a5300 Binary files /dev/null and b/Doc/Sd1/Ref/Projects/soDumm2.png differ diff --git a/Doc/Sd1/appendix.xml b/Doc/Sd1/appendix.xml index fb80dc764890b8085dbd9f65868e385486a41d40..5062a2c8e7e1f64a8e84be2bc574b1323a35c19e 100644 --- a/Doc/Sd1/appendix.xml +++ b/Doc/Sd1/appendix.xml @@ -1,6 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> -<appendix version="5.1" xmlns="http://docbook.org/ns/docbook" +<appendix annotations="slide" version="5.1" + xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:xila="http://www.w3.org/2001/XInclude/local-attributes" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns="http://docbook.org/ns/transclusion" @@ -12,37 +14,94 @@ <section xml:id="sd1ExaminationHints"> <title>Examination hints</title> - <para>Some programming tasks come with <xref linkend="glo_Junit"/> tests. - Your personal score will depend on the number of successfully executing - tests possibly weighted with factors modelling an individual test's - significance.</para> + <figure xml:id="sd1_fig_examByJunit"> + <title>Unit tests in examinations</title> - <para>That said you should have a focus on completing units of work rather - than <quote>nearly</quote> finishing a large number of tasks.</para> + <itemizedlist> + <listitem> + <para>Interface definitions by <xref linkend="glo_Javadoc"/>.</para> + </listitem> - <caution> - <para>Unit testing is quite relentless. It is different from high school - where a wrong sign at the end of a calculation does not matter too much - with respect to marking.</para> - </caution> + <listitem> + <para>Corresponding Unit tests.</para> + </listitem> - <para>You should <emphasis>actively</emphasis> train debugging programs: - Watching a test fail is not so bad if you know how to - <emphasis>systematically</emphasis> fix bugs. Several options are on - offer:</para> + <listitem> + <para>Automated evaluation scoring your achievements.</para> + </listitem> - <orderedlist> - <listitem> - <para>Use a debugger, typically the one provided by Eclipse. More - specifically train debugging <xref linkend="glo_Junit"/> test cases - individually to address failing tests one by one.</para> - </listitem> + <listitem> + <para>Individual weights reflecting a test's significance.</para> + </listitem> + </itemizedlist> + </figure> - <listitem> - <para>Insert log statements into your implementation as being provided - by log4j.</para> - </listitem> - </orderedlist> + <figure xml:id="sd1_fig_interfaceDefExample"> + <title>Example interface definition</title> + + <programlisting language="java">/** +* Finde das n-te ungerade Element einer Wertefolge. +* +* <p>Beispiel: Im Array {3, 2, 0, 1, 4} ist der Wert »1« an der Index- +* position »3« das zweite ungerade Element.</p> +* +* @param werte Die zu durchsuchenden Werte. Alle Werte ungleich null. +* @param n Die gewünschte Position, Start bei 1. +* +* @return Den Index des n-ten ungeraden Wertes falls es mindestens n +* ungerade Werte gibt, ... +*/ +static public int getNtesUngeradesElement(final int[] werte, final int n){ + return 12345; // TODO: Implementiere mich korrekt! +}</programlisting> + </figure> + + <figure xml:id="sd1_fig_testExample"> + <title>Corresponding test</title> + + <programlisting language="java">@Test +@Marking(points=1) /* 1 point if test passes */ +public void test_400() { + Assert.assertEquals( + 2, /* Expected result */ + Helper.getNtesUngeradesElement(new int[]{-4, 6, 1, -2, 8}, 1)); +}</programlisting> + </figure> + + <figure xml:id="sd1_fig_unitTestsStrategy"> + <title>Unit tests strategy in examinations</title> + + <itemizedlist> + <listitem> + <para>Unit testing is relentless: You are no longer at high school + where a result having <quote>just</quote> a wrong sign used to + matter next to nothing.</para> + </listitem> + + <listitem> + <para>Focus on completing units of work rather than + <quote>nearly</quote> finishing a large number of tasks.</para> + </listitem> + + <listitem> + <para>Watching a test fail just happens. Learn to + <emphasis>systematically</emphasis> fix bugs:</para> + + <orderedlist> + <listitem> + <para>Use your <xref linkend="glo_IDE"/>'s debugger. Practise + debugging <xref linkend="glo_Junit"/> tests individually + addressing failures one by one.</para> + </listitem> + + <listitem> + <para>Insert log statements using <productname + xlink:href="https://logging.apache.org/log4j">log4j</productname>.</para> + </listitem> + </orderedlist> + </listitem> + </itemizedlist> + </figure> </section> <section xml:id="sd1ExternalSupplementaryExercises"> @@ -142,27 +201,38 @@ <title>Examination bonus point projects</title> <para>Each lecture participant may start a project to gain bonus points - with respect to the final examination. This bonus is given as a percentage - and will be added to your final examinations mark. Possible values - depending on a project's achievements are:</para> + with respect to the final examination. This bonus will be added to your + final examination's mark:</para> - <itemizedlist> - <listitem> - <para>0%</para> - </listitem> + <figure xml:id="sd1_fig_points"> + <title>Bonus points</title> - <listitem> - <para>5%</para> - </listitem> + <itemizedlist> + <listitem> + <para>Examination: 90 points resulting in <quote>1,0</quote>, 45 + points resulting in <quote>4.0</quote>.</para> + </listitem> - <listitem> - <para>10%</para> - </listitem> - </itemizedlist> + <listitem> + <para>0-10 bonus points on top of examination score.</para> + </listitem> + + <listitem> + <para>Example: 35 points in your exam having 10 bonus points on top + results in <quote>passed</quote>.</para> + </listitem> + </itemizedlist> + </figure> + + <figure xml:id="sd1_fig_projectWorkAsTeam"> + <title>Working in a team</title> - <para>So if the examination's result is 85% a bonus of 10% will result in - a mark corresponding to 95% of a regular exam result. The following rules - apply:</para> + <mediaobject> + <imageobject> + <imagedata fileref="Ref/Projects/soDumm2.png"/> + </imageobject> + </mediaobject> + </figure> <orderedlist> <listitem> @@ -273,8 +343,9 @@ </listitem> <listitem> - <para>Test special cases: If a method expects i.e. an array of - strings it may be allowed having zero length.</para> + <para>Test special cases: If a method expects + <abbrev>i.e.</abbrev> an array of strings it may be allowed having + zero length.</para> </listitem> </itemizedlist> </listitem>