From 969faf86da2e6a0698d0daf3500cd4c6aa10dbc5 Mon Sep 17 00:00:00 2001
From: Martin Goik <goik@hdm-stuttgart.de>
Date: Mon, 18 Sep 2017 22:42:55 +0200
Subject: [PATCH] Starting if related slides

---
 .../Statements/multipleStatementPerLine.png   |  Bin 0 -> 43100 bytes
 Doc/Sd1/languageFundamentals.xml              | 4996 +++++++++--------
 Doc/Sd1/statements.xml                        | 3692 ++++++------
 3 files changed, 4383 insertions(+), 4305 deletions(-)
 create mode 100644 Doc/Sd1/Ref/Statements/multipleStatementPerLine.png

diff --git a/Doc/Sd1/Ref/Statements/multipleStatementPerLine.png b/Doc/Sd1/Ref/Statements/multipleStatementPerLine.png
new file mode 100644
index 0000000000000000000000000000000000000000..8752c964fa46ee3ce69aa527210a97a3904b9fb8
GIT binary patch
literal 43100
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
ONJ>mzwBn1wkN*MkpW0;r

literal 0
HcmV?d00001

diff --git a/Doc/Sd1/languageFundamentals.xml b/Doc/Sd1/languageFundamentals.xml
index 433dca253..36dee0a4a 100644
--- a/Doc/Sd1/languageFundamentals.xml
+++ b/Doc/Sd1/languageFundamentals.xml
@@ -2,183 +2,180 @@
 <chapter annotations="slide" version="5.1" xml:id="sw1LanguageFundamental" 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:trans="http://docbook.org/ns/transclusion" xmlns:svg="http://www.w3.org/2000/svg" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
   <title>Language Fundamentals</title>
 
-  <section xml:id="sd1_sect_langFundamental_intro">
-    <title>Introduction</title>
+  <section xml:id="sd1_fig_asciiAndUnicode">
+    <title>Integer, <xref linkend="glo_ASCII"/> and <xref linkend="glo_unicode"/></title>
 
-    <section xml:id="sd1_fig_asciiAndUnicode">
-      <title>Integer, <xref linkend="glo_ASCII"/> and <xref linkend="glo_unicode"/></title>
+    <para>We will deal with computation machines. Having just mechanical devices at hand this still works:</para>
 
-      <para>We will deal with computation machines. Having just mechanical devices at hand this still works:</para>
+    <figure xml:id="sd1_fig_cashier">
+      <title>Cash register</title>
 
-      <figure xml:id="sd1_fig_cashier">
-        <title>Cash register</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/cashRegister.png"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/cashRegister.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <figure xml:id="sd1_fig_zuseZ3">
+      <title>Zuse Z3</title>
 
-      <figure xml:id="sd1_fig_zuseZ3">
-        <title>Zuse Z3</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/zuseZ3.jpg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/zuseZ3.jpg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <figure xml:id="sd1_fig_eniac">
+      <title>Eniac</title>
 
-      <figure xml:id="sd1_fig_eniac">
-        <title>Eniac</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/eniac.jpg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/eniac.jpg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <para>So far all machines being described are based on non-semiconductor technologies. Inventing the transistor in the fifties gave rise to a rapid development of microprocessor chips:</para>
 
-      <para>So far all machines being described are based on non-semiconductor technologies. Inventing the transistor in the fifties gave rise to a rapid development of microprocessor chips:</para>
+    <figure xml:id="sd1_fig_microprocessors">
+      <title>Microprocessor ICs</title>
 
-      <figure xml:id="sd1_fig_microprocessors">
-        <title>Microprocessor ICs</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/processors.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/processors.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <para>These sample devices differ heavily with respect to addressable memory, data size, supported arithmetic operations / speed and other features. We take a closer look to Zilog's Z80 processor:</para>
 
-      <para>These sample devices differ heavily with respect to addressable memory, data size, supported arithmetic operations / speed and other features. We take a closer look to Zilog's Z80 processor:</para>
+    <figure xml:id="sd1_fig_z80">
+      <title>Zilog Z80 CPU</title>
 
-      <figure xml:id="sd1_fig_z80">
-        <title>Zilog Z80 CPU</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/z80DataBus.jpg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/z80DataBus.jpg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <para>Following technological advances processors have been categorized by the length the so called address- and data-bus:</para>
 
-      <para>Following technological advances processors have been categorized by the length the so called address- and data-bus:</para>
+    <figure xml:id="sd1_fig_adressDataBus">
+      <title>Address and data bus sizes</title>
 
-      <figure xml:id="sd1_fig_adressDataBus">
-        <title>Address and data bus sizes</title>
+      <informaltable border="1">
+        <tr>
+          <th>Processor</th>
 
-        <informaltable border="1">
-          <tr>
-            <th>Processor</th>
+          <th>Year</th>
 
-            <th>Year</th>
+          <th>Address size / Bit</th>
 
-            <th>Address size / Bit</th>
+          <th>Data size / Bit</th>
+        </tr>
 
-            <th>Data size / Bit</th>
-          </tr>
+        <tr>
+          <td>Intel 4004</td>
 
-          <tr>
-            <td>Intel 4004</td>
+          <td>1971</td>
 
-            <td>1971</td>
+          <td>12</td>
 
-            <td>12</td>
+          <td>4</td>
+        </tr>
 
-            <td>4</td>
-          </tr>
+        <tr>
+          <td>Zilog Z80</td>
 
-          <tr>
-            <td>Zilog Z80</td>
+          <td>1976</td>
 
-            <td>1976</td>
+          <td>16</td>
 
-            <td>16</td>
+          <td>8</td>
+        </tr>
 
-            <td>8</td>
-          </tr>
+        <tr>
+          <td>Motorola 68000</td>
 
-          <tr>
-            <td>Motorola 68000</td>
+          <td>1980</td>
 
-            <td>1980</td>
+          <td>24 / 32</td>
 
-            <td>24 / 32</td>
+          <td>16</td>
+        </tr>
 
-            <td>16</td>
-          </tr>
+        <tr>
+          <td>Motorola 68020</td>
 
-          <tr>
-            <td>Motorola 68020</td>
+          <td>1984</td>
 
-            <td>1984</td>
+          <td>32</td>
 
-            <td>32</td>
+          <td>32</td>
+        </tr>
 
-            <td>32</td>
-          </tr>
+        <tr>
+          <td>AMD Opteron</td>
 
-          <tr>
-            <td>AMD Opteron</td>
+          <td>2003</td>
 
-            <td>2003</td>
+          <td>64</td>
 
-            <td>64</td>
+          <td>64</td>
+        </tr>
+      </informaltable>
+    </figure>
 
-            <td>64</td>
-          </tr>
-        </informaltable>
-      </figure>
+    <para>We remind the reader to the binary representation of signed integer values. Details will be discussed in your math lectures. Our first example features three bit 2-complement:</para>
 
-      <para>We remind the reader to the binary representation of signed integer values. Details will be discussed in your math lectures. Our first example features three bit 2-complement:</para>
+    <figure xml:id="sd1_fig_signed3bitIntDual">
+      <title>Signed 3 bit integer representation</title>
 
-      <figure xml:id="sd1_fig_signed3bitIntDual">
-        <title>Signed 3 bit integer representation</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/dualSigned3bit.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/dualSigned3bit.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <para>Signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> values are being represented accordingly:</para>
 
-      <para>Signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> values are being represented accordingly:</para>
+    <figure xml:id="sd1_fig_signedIntRepresentBinary">
+      <title>Signed 8 bit integer binary representation</title>
 
-      <figure xml:id="sd1_fig_signedIntRepresentBinary">
-        <title>Signed 8 bit integer binary representation</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/dualSignedByte.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/dualSignedByte.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_hotelKeyCard">
+      <title>Hotel key cards</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_hotelKeyCard">
-        <title>Hotel key cards</title>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>A hotel supplies the following type of cards for opening room doors:</para>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>A hotel supplies the following type of cards for opening room doors:</para>
-
-              <mediaobject>
-                <imageobject>
-                  <imagedata fileref="Ref/LangFundament/keycard.jpg" scale="25"/>
-                </imageobject>
-              </mediaobject>
+            <mediaobject>
+              <imageobject>
+                <imagedata fileref="Ref/LangFundament/keycard.jpg" scale="25"/>
+              </imageobject>
+            </mediaobject>
 
-              <para>A customer is worried concerning the impact of loosing his card. For security reasons the corresponding pattern can never be issued again. Thus the hotel may eventually run <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> on available combinations.</para>
+            <para>A customer is worried concerning the impact of loosing his card. For security reasons the corresponding pattern can never be issued again. Thus the hotel may eventually run <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> on available combinations.</para>
 
-              <para>Discuss this argument by estimating the number of distinct patterns.</para>
-            </question>
+            <para>Discuss this argument by estimating the number of distinct patterns.</para>
+          </question>
 
-            <answer>
-              <para>No need to be worried: Judging the image a card probably offers 39 grid positions:</para>
+          <answer>
+            <para>No need to be worried: Judging the image a card probably offers 39 grid positions:</para>
 
-              <programlisting language="none">X X X X X X  
+            <programlisting language="none">X X X X X X  
  X X X X X 
 X X X X X X
  X X X X X 
@@ -186,902 +183,902 @@ X X X X X X
  X X X X X 
 X X X X X X</programlisting>
 
-              <para>Since each position may either contain a hole or be solid we have <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:msup>
-                        <m:mi>2</m:mi>
+            <para>Since each position may either contain a hole or be solid we have <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:msup>
+                      <m:mi>2</m:mi>
 
-                        <m:mi>39</m:mi>
-                      </m:msup>
+                      <m:mi>39</m:mi>
+                    </m:msup>
 
-                      <m:mo>=</m:mo>
+                    <m:mo>=</m:mo>
 
-                      <m:mi>549755813888</m:mi>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> distinct possibilities.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                    <m:mi>549755813888</m:mi>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> distinct possibilities.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <para>Regarding language characters we start with one of the oldest and widespread character encoding schemes:</para>
+    <para>Regarding language characters we start with one of the oldest and widespread character encoding schemes:</para>
 
-      <figure xml:id="sd1_fig_7bitASCII">
-        <title>7-bit <xref linkend="glo_ASCII"/></title>
+    <figure xml:id="sd1_fig_7bitASCII">
+      <title>7-bit <xref linkend="glo_ASCII"/></title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/ascii7bit.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/ascii7bit.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <para><xref linkend="glo_ASCII"/> by design is limited to US characters and does not include characters from non-English languages. Since <xref linkend="glo_ASCII"/> only uses seven bits we may a parity bit to form one byte per character:</para>
+    <para><xref linkend="glo_ASCII"/> by design is limited to US characters and does not include characters from non-English languages. Since <xref linkend="glo_ASCII"/> only uses seven bits we may a parity bit to form one byte per character:</para>
 
-      <figure xml:id="sd1_fig_7bitASCII_andParity">
-        <title>7-bit <xref linkend="glo_ASCII"/> with even parity bit</title>
+    <figure xml:id="sd1_fig_7bitASCII_andParity">
+      <title>7-bit <xref linkend="glo_ASCII"/> with even parity bit</title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/ascii7bitEven.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/ascii7bitEven.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <para>A byte's parity bit may instead be used for encoding non- <xref linkend="glo_ASCII"/> supplementary characters. One such example is the <link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO 8859-1 (ISO Latin 1)</link> standard representing western European character sets:</para>
+    <para>A byte's parity bit may instead be used for encoding non- <xref linkend="glo_ASCII"/> supplementary characters. One such example is the <link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO 8859-1 (ISO Latin 1)</link> standard representing western European character sets:</para>
 
-      <figure xml:id="sd1_fig_iso8859_1">
-        <title><link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO Latin 1</link> encoding</title>
+    <figure xml:id="sd1_fig_iso8859_1">
+      <title><link xlink:href="https://en.wikipedia.org/wiki/ISO/IEC_8859-1">ISO Latin 1</link> encoding</title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/iso8859_1.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/iso8859_1.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <para>Supporting additional languages comes at a price: We have to increase the number of bytes representing a single character:</para>
+    <para>Supporting additional languages comes at a price: We have to increase the number of bytes representing a single character:</para>
 
-      <figure xml:id="sd1_fig_unicodeSample">
-        <title>Some <xref linkend="glo_unicode"/> <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> samples</title>
+    <figure xml:id="sd1_fig_unicodeSample">
+      <title>Some <xref linkend="glo_unicode"/> <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> samples</title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/unicode.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/unicode.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <para>Notice the representation's differing byte count: <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> <xref linkend="glo_unicode"/> encoding allows for one-, two-, three- and four- byte encodings. See <quote xlink:href="https://betterexplained.com/articles/unicode">Unicode and You</quote> for further details.</para>
-    </section>
+    <para>Notice the representation's differing byte count: <link xlink:href="https://en.wikipedia.org/wiki/UTF-8">UTF-8</link> <xref linkend="glo_unicode"/> encoding allows for one-, two-, three- and four- byte encodings. See <quote xlink:href="https://betterexplained.com/articles/unicode">Unicode and You</quote> for further details.</para>
+  </section>
 
-    <section xml:id="sd1_sect_variables">
-      <title>Variables</title>
+  <section xml:id="sd1_sect_variables">
+    <title>Variables</title>
 
-      <para>Variables are convenient handles for accessing memory. We don't need to mess with memory addresses:</para>
+    <para>Variables are convenient handles for accessing memory. We don't need to mess with memory addresses:</para>
 
-      <figure xml:id="sd1_fig_varMemoryHandle">
-        <title>Handle to memory</title>
+    <figure xml:id="sd1_fig_varMemoryHandle">
+      <title>Handle to memory</title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/variableToMemory.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/variableToMemory.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <para>Declaring a variable requires a type name like <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> and an identifier:</para>
+    <para>Declaring a variable requires a type name like <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> and an identifier:</para>
 
-      <figure xml:id="sd1_fig_varDeclare">
-        <title>Variable declaration</title>
+    <figure xml:id="sd1_fig_varDeclare">
+      <title>Variable declaration</title>
 
-        <programlisting language="java">double pi;</programlisting>
-      </figure>
+      <programlisting language="java">double pi;</programlisting>
+    </figure>
 
-      <para>We may assign values to variables or build expressions like <code>pi * 2.0 * 2.0</code> :</para>
+    <para>We may assign values to variables or build expressions like <code>pi * 2.0 * 2.0</code> :</para>
 
-      <figure xml:id="sd1_fig_varDeclareAndUse">
-        <title>Declare and use</title>
+    <figure xml:id="sd1_fig_varDeclareAndUse">
+      <title>Declare and use</title>
 
-        <programlisting language="java">double pi; // Declaration
+      <programlisting language="java">double pi; // Declaration
 ...
 pi = 3.1415926; // Value assignment
 
 // Area of circle having radius 2.0
 System.out.println(pi * 2.0. * 2.0);</programlisting>
-      </figure>
+    </figure>
 
-      <figure xml:id="sd1_fig_varDeclareInit">
-        <title>Declaration and initialization</title>
+    <figure xml:id="sd1_fig_varDeclareInit">
+      <title>Declaration and initialization</title>
 
-        <glosslist>
-          <glossentry>
-            <glossterm>Separate declaration and initialization</glossterm>
+      <glosslist>
+        <glossentry>
+          <glossterm>Separate declaration and initialization</glossterm>
 
-            <glossdef>
-              <programlisting language="java">double pi; // Declaration of variable pi
+          <glossdef>
+            <programlisting language="java">double pi; // Declaration of variable pi
 ...
 pi = 3.1415926; // Value assignment</programlisting>
-            </glossdef>
-          </glossentry>
+          </glossdef>
+        </glossentry>
 
-          <glossentry>
-            <glossterm>Combined declaration and initialization</glossterm>
+        <glossentry>
+          <glossterm>Combined declaration and initialization</glossterm>
 
-            <glossdef>
-              <programlisting language="java">double pi = 3.1415926;</programlisting>
-            </glossdef>
-          </glossentry>
-        </glosslist>
-      </figure>
+          <glossdef>
+            <programlisting language="java">double pi = 3.1415926;</programlisting>
+          </glossdef>
+        </glossentry>
+      </glosslist>
+    </figure>
 
-      <figure xml:id="sd1_fig_varMultiple">
-        <title>Multiple variables of same type</title>
+    <figure xml:id="sd1_fig_varMultiple">
+      <title>Multiple variables of same type</title>
 
-        <programlisting language="java">int a;
+      <programlisting language="java">int a;
 int b = 22;
 int c;</programlisting>
 
-        <para>is equivalent to either of:</para>
+      <para>is equivalent to either of:</para>
 
-        <informaltable border="1">
-          <tr>
-            <th>Compact</th>
+      <informaltable border="1">
+        <tr>
+          <th>Compact</th>
 
-            <th>Multiple lines</th>
-          </tr>
+          <th>Multiple lines</th>
+        </tr>
 
-          <tr>
-            <td valign="top"><programlisting language="java">int a, b = 22, c;         </programlisting></td>
+        <tr>
+          <td valign="top"><programlisting language="java">int a, b = 22, c;         </programlisting></td>
 
-            <td valign="top"><programlisting language="java">int a,                       
+          <td valign="top"><programlisting language="java">int a,                       
     b = 22,
     c;</programlisting></td>
-          </tr>
-        </informaltable>
-      </figure>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <figure xml:id="sd1_fig_varNameConventions">
+      <title>Variable naming conventions</title>
+
+      <itemizedlist>
+        <listitem>
+          <para>Start with a small letter like <code>africa</code> rather than <code>Africa</code>.</para>
+        </listitem>
+
+        <listitem>
+          <para>Use <quote>camel case</quote> e.g. <code>myFirstCode</code>.</para>
+
+          <mediaobject>
+            <imageobject>
+              <imagedata fileref="Ref/LangFundament/camelCase.svg"/>
+            </imageobject>
+          </mediaobject>
+        </listitem>
+
+        <listitem>
+          <para>Do not start with <code>_</code> or <code>$</code>.</para>
+        </listitem>
+      </itemizedlist>
+    </figure>
+
+    <figure xml:id="sd1_fig_varFinal">
+      <title>Constants</title>
+
+      <programlisting language="java">final double pi = 3.1415926;
+...
+pi = 1.0; // Compile time error: Constant cannot be modified</programlisting>
+    </figure>
 
-      <figure xml:id="sd1_fig_varNameConventions">
-        <title>Variable naming conventions</title>
+    <figure xml:id="sd1_fig_legalVariableName">
+      <title>Variable names</title>
 
-        <itemizedlist>
-          <listitem>
-            <para>Start with a small letter like <code>africa</code> rather than <code>Africa</code>.</para>
-          </listitem>
+      <para>A variable</para>
 
-          <listitem>
-            <para>Use <quote>camel case</quote> e.g. <code>myFirstCode</code>.</para>
+      <informaltable border="1">
+        <tr>
+          <td><itemizedlist>
+              <listitem>
+                <para>Starts with a letter</para>
+              </listitem>
 
-            <mediaobject>
-              <imageobject>
-                <imagedata fileref="Ref/LangFundament/camelCase.svg"/>
-              </imageobject>
-            </mediaobject>
-          </listitem>
+              <listitem>
+                <para>May be followed by letters or digits</para>
+              </listitem>
 
-          <listitem>
-            <para>Do not start with <code>_</code> or <code>$</code>.</para>
-          </listitem>
-        </itemizedlist>
-      </figure>
+              <listitem>
+                <para>Must not match:</para>
 
-      <figure xml:id="sd1_fig_varFinal">
-        <title>Constants</title>
+                <itemizedlist>
+                  <listitem>
+                    <para>a <xref linkend="glo_Java"/> keyword</para>
+                  </listitem>
 
-        <programlisting language="java">final double pi = 3.1415926;
-...
-pi = 1.0; // Compile time error: Constant cannot be modified</programlisting>
-      </figure>
+                  <listitem>
+                    <para>a boolean literal</para>
+                  </listitem>
+
+                  <listitem>
+                    <para>The <code>null</code> literal</para>
+                  </listitem>
+                </itemizedlist>
+              </listitem>
+            </itemizedlist></td>
 
-      <figure xml:id="sd1_fig_legalVariableName">
-        <title>Variable names</title>
+          <td><glosslist>
+              <glossentry>
+                <glossterm>Legal</glossterm>
 
-        <para>A variable</para>
+                <glossdef>
+                  <itemizedlist>
+                    <listitem>
+                      <para>$test</para>
+                    </listitem>
 
-        <informaltable border="1">
-          <tr>
-            <td><itemizedlist>
-                <listitem>
-                  <para>Starts with a letter</para>
-                </listitem>
+                    <listitem>
+                      <para>count</para>
+                    </listitem>
 
-                <listitem>
-                  <para>May be followed by letters or digits</para>
-                </listitem>
+                    <listitem>
+                      <para>blue</para>
+                    </listitem>
+                  </itemizedlist>
+                </glossdef>
+              </glossentry>
 
-                <listitem>
-                  <para>Must not match:</para>
+              <glossentry>
+                <glossterm>Illegal</glossterm>
 
+                <glossdef>
                   <itemizedlist>
                     <listitem>
-                      <para>a <xref linkend="glo_Java"/> keyword</para>
+                      <para>2sad</para>
                     </listitem>
 
                     <listitem>
-                      <para>a boolean literal</para>
+                      <para>switch</para>
                     </listitem>
 
                     <listitem>
-                      <para>The <code>null</code> literal</para>
+                      <para>true</para>
                     </listitem>
                   </itemizedlist>
-                </listitem>
-              </itemizedlist></td>
-
-            <td><glosslist>
-                <glossentry>
-                  <glossterm>Legal</glossterm>
-
-                  <glossdef>
-                    <itemizedlist>
-                      <listitem>
-                        <para>$test</para>
-                      </listitem>
-
-                      <listitem>
-                        <para>count</para>
-                      </listitem>
-
-                      <listitem>
-                        <para>blue</para>
-                      </listitem>
-                    </itemizedlist>
-                  </glossdef>
-                </glossentry>
-
-                <glossentry>
-                  <glossterm>Illegal</glossterm>
-
-                  <glossdef>
-                    <itemizedlist>
-                      <listitem>
-                        <para>2sad</para>
-                      </listitem>
-
-                      <listitem>
-                        <para>switch</para>
-                      </listitem>
-
-                      <listitem>
-                        <para>true</para>
-                      </listitem>
-                    </itemizedlist>
-                  </glossdef>
-                </glossentry>
-              </glosslist></td>
-          </tr>
-        </informaltable>
-      </figure>
-
-      <figure xml:id="sd1_fig_varCaseSensitive">
-        <title>Case sensitivity</title>
-
-        <para>Variable names are case sensitive:</para>
-
-        <programlisting language="java">int count = 32;
+                </glossdef>
+              </glossentry>
+            </glosslist></td>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <figure xml:id="sd1_fig_varCaseSensitive">
+      <title>Case sensitivity</title>
+
+      <para>Variable names are case sensitive:</para>
+
+      <programlisting language="java">int count = 32;
 int Count = 44;
 System.out.println(count + ":" + Count); // This yields "32:44"</programlisting>
-      </figure>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaLegalVarNames">
-        <title>Legal variable names</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaLegalVarNames">
+      <title>Legal variable names</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Which of the following names are legal variable names? Complete the following table and explain your decision with respect to the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc4_html_3">variables</quote> section.</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Which of the following names are legal variable names? Complete the following table and explain your decision with respect to the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc4_html_3">variables</quote> section.</para>
 
-              <informaltable border="1">
-                <colgroup width="19%"/>
+            <informaltable border="1">
+              <colgroup width="19%"/>
 
-                <colgroup width="10%"/>
+              <colgroup width="10%"/>
 
-                <colgroup width="71%"/>
+              <colgroup width="71%"/>
 
-                <tr>
-                  <th>Identifier</th>
+              <tr>
+                <th>Identifier</th>
 
-                  <th>is legal? (yes / no)</th>
+                <th>is legal? (yes / no)</th>
 
-                  <th>Explanation / remark</th>
-                </tr>
+                <th>Explanation / remark</th>
+              </tr>
 
-                <tr>
-                  <td><code>for</code></td>
+              <tr>
+                <td><code>for</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>sum_of_data</code></td>
+              <tr>
+                <td><code>sum_of_data</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>sumOfData</code></td>
+              <tr>
+                <td><code>sumOfData</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>first-name</code></td>
+              <tr>
+                <td><code>first-name</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>ABC</code></td>
+              <tr>
+                <td><code>ABC</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>42isThesolution</code></td>
+              <tr>
+                <td><code>42isThesolution</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>println</code></td>
+              <tr>
+                <td><code>println</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>B4</code></td>
+              <tr>
+                <td><code>B4</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>AnnualSalary</code></td>
+              <tr>
+                <td><code>AnnualSalary</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>"hello"</code></td>
+              <tr>
+                <td><code>"hello"</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>_average </code></td>
+              <tr>
+                <td><code>_average </code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>ανδρος</code></td>
+              <tr>
+                <td><code>ανδρος</code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
+                <td/>
+              </tr>
 
-                <tr>
-                  <td><code>$sum </code></td>
+              <tr>
+                <td><code>$sum </code></td>
 
-                  <td/>
+                <td/>
 
-                  <td/>
-                </tr>
-              </informaltable>
+                <td/>
+              </tr>
+            </informaltable>
 
-              <tip>
-                <para>You may want to prepare a simple <xref linkend="glo_Java"/> program testing the above names.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>You may want to prepare a simple <xref linkend="glo_Java"/> program testing the above names.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Consider:</para>
+          <answer>
+            <para>Consider:</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
    int 42isThesolution = 6; // <emphasis role="bold">Syntax error on token "42", delete this token</emphasis>
 }</programlisting>
 
-              <para>Unfortunately this message does not explain the underlying cause: It does not hint towards an illegal identifier name.</para>
+            <para>Unfortunately this message does not explain the underlying cause: It does not hint towards an illegal identifier name.</para>
 
-              <para>One indication of a sound compiler implementation is its ability to provide meaningful, self explanatory error messages.</para>
+            <para>One indication of a sound compiler implementation is its ability to provide meaningful, self explanatory error messages.</para>
 
-              <informaltable border="1">
-                <colgroup width="19%"/>
+            <informaltable border="1">
+              <colgroup width="19%"/>
 
-                <colgroup width="10%"/>
+              <colgroup width="10%"/>
 
-                <colgroup width="71%"/>
+              <colgroup width="71%"/>
 
-                <tr>
-                  <th>Identifier</th>
+              <tr>
+                <th>Identifier</th>
 
-                  <th>is legal? (yes / no)</th>
+                <th>is legal? (yes / no)</th>
 
-                  <th>Explanation / remark</th>
-                </tr>
+                <th>Explanation / remark</th>
+              </tr>
 
-                <tr>
-                  <td><code>for</code></td>
+              <tr>
+                <td><code>for</code></td>
 
-                  <td>no</td>
+                <td>no</td>
 
-                  <td><quote>for</quote> is a Java keyword.</td>
-                </tr>
+                <td><quote>for</quote> is a Java keyword.</td>
+              </tr>
 
-                <tr>
-                  <td><code>sum_of_data</code></td>
+              <tr>
+                <td><code>sum_of_data</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>-</td>
-                </tr>
+                <td>-</td>
+              </tr>
 
-                <tr>
-                  <td><code>sumOfData</code></td>
+              <tr>
+                <td><code>sumOfData</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>-</td>
-                </tr>
+                <td>-</td>
+              </tr>
 
-                <tr>
-                  <td><code>first-name</code></td>
+              <tr>
+                <td><code>first-name</code></td>
 
-                  <td>no</td>
+                <td>no</td>
 
-                  <td>Operators like <quote>-</quote> or <quote>+</quote> must not appear in variable names.</td>
-                </tr>
+                <td>Operators like <quote>-</quote> or <quote>+</quote> must not appear in variable names.</td>
+              </tr>
 
-                <tr>
-                  <td><code>ABC</code></td>
+              <tr>
+                <td><code>ABC</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td>
-                </tr>
+                <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td>
+              </tr>
 
-                <tr>
-                  <td><code>42isThesolution</code></td>
+              <tr>
+                <td><code>42isThesolution</code></td>
 
-                  <td>no</td>
+                <td>no</td>
 
-                  <td>Identifiers must not start with a number.</td>
-                </tr>
+                <td>Identifiers must not start with a number.</td>
+              </tr>
 
-                <tr>
-                  <td><code>println</code></td>
+              <tr>
+                <td><code>println</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td><code>println</code> is a method of <code>System.out.println(...)</code> but is no <xref linkend="glo_Java"/> keyword.</td>
-                </tr>
+                <td><code>println</code> is a method of <code>System.out.println(...)</code> but is no <xref linkend="glo_Java"/> keyword.</td>
+              </tr>
 
-                <tr>
-                  <td><code>B4</code></td>
+              <tr>
+                <td><code>B4</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td>
-                </tr>
+                <td>Best practices: Discouraged variable name, non-constant variables should start with lowercase letters.</td>
+              </tr>
 
-                <tr>
-                  <td><code>AnnualSalary</code></td>
+              <tr>
+                <td><code>AnnualSalary</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Best practices: Legal but discouraged variable name: Non-constant variables should start with lowercase letters.</td>
-                </tr>
+                <td>Best practices: Legal but discouraged variable name: Non-constant variables should start with lowercase letters.</td>
+              </tr>
 
-                <tr>
-                  <td><code>"hello"</code></td>
+              <tr>
+                <td><code>"hello"</code></td>
 
-                  <td>no</td>
+                <td>no</td>
 
-                  <td>String delimiters must not be part of an identifier.</td>
-                </tr>
+                <td>String delimiters must not be part of an identifier.</td>
+              </tr>
 
-                <tr>
-                  <td><code>_average </code></td>
+              <tr>
+                <td><code>_average </code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Best practices: Should be reserved for system code.</td>
-                </tr>
+                <td>Best practices: Should be reserved for system code.</td>
+              </tr>
 
-                <tr>
-                  <td><code>ανδρος</code></td>
+              <tr>
+                <td><code>ανδρος</code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Perfectly legal Greek <orgname>Unicode</orgname> characters.</td>
-                </tr>
+                <td>Perfectly legal Greek <orgname>Unicode</orgname> characters.</td>
+              </tr>
 
-                <tr>
-                  <td><code>$sum </code></td>
+              <tr>
+                <td><code>$sum </code></td>
 
-                  <td>yes</td>
+                <td>yes</td>
 
-                  <td>Best practices: Using the <quote>$</quote> sign should be reserved for system code.</td>
-                </tr>
-              </informaltable>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                <td>Best practices: Using the <quote>$</quote> sign should be reserved for system code.</td>
+              </tr>
+            </informaltable>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_varDeclareBeforeUse">
-        <title>Declare before use</title>
+    <figure xml:id="sd1_fig_varDeclareBeforeUse">
+      <title>Declare before use</title>
 
-        <glosslist>
-          <glossentry>
-            <glossterm>Correct:</glossterm>
+      <glosslist>
+        <glossentry>
+          <glossterm>Correct:</glossterm>
 
-            <glossdef>
-              <programlisting language="java">double f;
+          <glossdef>
+            <programlisting language="java">double f;
 f = -4.55;</programlisting>
-            </glossdef>
-          </glossentry>
+          </glossdef>
+        </glossentry>
 
-          <glossentry>
-            <glossterm>Wrong</glossterm>
+        <glossentry>
+          <glossterm>Wrong</glossterm>
 
-            <glossdef>
-              <programlisting language="java">f = -4.55;
+          <glossdef>
+            <programlisting language="java">f = -4.55;
 double f;</programlisting>
-            </glossdef>
-          </glossentry>
-        </glosslist>
-      </figure>
+          </glossdef>
+        </glossentry>
+      </glosslist>
+    </figure>
 
-      <figure xml:id="sd1_fig_typeSafety">
-        <title>Type safety</title>
+    <figure xml:id="sd1_fig_typeSafety">
+      <title>Type safety</title>
 
-        <programlisting language="java">int i = 2;
+      <programlisting language="java">int i = 2;
 int j = i; // o.K.: Assigning int to int
 
 boolean b = true;
 i = b;     // Error: int and boolean are incompatible types
 
 i = "Hello"; // Even worse: Assigning a String to an int</programlisting>
-      </figure>
+    </figure>
 
-      <figure xml:id="sd1_fig_final">
-        <title>Using final</title>
+    <figure xml:id="sd1_fig_final">
+      <title>Using final</title>
 
-        <glosslist>
-          <glossentry>
-            <glossterm>Bad</glossterm>
+      <glosslist>
+        <glossentry>
+          <glossterm>Bad</glossterm>
 
-            <glossdef>
-              <programlisting language="java">double pi = 3.141592653589793;
+          <glossdef>
+            <programlisting language="java">double pi = 3.141592653589793;
  ...
 pi = -4; // Woops, accidential redefinition</programlisting>
-            </glossdef>
-          </glossentry>
+          </glossdef>
+        </glossentry>
 
-          <glossentry>
-            <glossterm>Good:</glossterm>
+        <glossentry>
+          <glossterm>Good:</glossterm>
 
-            <glossdef>
-              <para><programlisting language="java">final double pi = 3.141592653589793;
+          <glossdef>
+            <para><programlisting language="java">final double pi = 3.141592653589793;
 ...
 pi = -4; // Compile time error:
          // Cannot assign a value to final variable 'pi'</programlisting></para>
-            </glossdef>
-          </glossentry>
+          </glossdef>
+        </glossentry>
 
-          <glossentry>
-            <glossterm>Even better</glossterm>
+        <glossentry>
+          <glossterm>Even better</glossterm>
 
-            <glossdef>
-              <para><programlisting language="java">final double PI = 3.141592653589793; // Coding style (Best practices):
+          <glossdef>
+            <para><programlisting language="java">final double PI = 3.141592653589793; // Coding style (Best practices):
                                      // Using capital letters for constant variable
 ...</programlisting></para>
-            </glossdef>
-          </glossentry>
-        </glosslist>
-      </figure>
+          </glossdef>
+        </glossentry>
+      </glosslist>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_typeAssignCompat">
-        <title>Assignment and type safety</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_typeAssignCompat">
+      <title>Assignment and type safety</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>We consider:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>We consider:</para>
 
-              <programlisting language="java">int i = -21;
+            <programlisting language="java">int i = -21;
 double d = i;</programlisting>
 
-              <para>This snippet shows perfectly correct <xref linkend="glo_Java"/> code. However <xref linkend="sd1_fig_typeSafety"/> suggests we should not be allowed to assign an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value due to type safety.</para>
+            <para>This snippet shows perfectly correct <xref linkend="glo_Java"/> code. However <xref linkend="sd1_fig_typeSafety"/> suggests we should not be allowed to assign an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value due to type safety.</para>
 
-              <para>Even worse: Swapping types yields a compile time error:</para>
+            <para>Even worse: Swapping types yields a compile time error:</para>
 
-              <programlisting language="java">double d = 2.4;
+            <programlisting language="java">double d = 2.4;
 int i = d; // Error: Incompatible types</programlisting>
 
-              <para>Why is this? Make an educated guess.</para>
-            </question>
+            <para>Why is this? Make an educated guess.</para>
+          </question>
 
-            <answer>
-              <para>The first snippet compiles by using the widening conversion: When assigning <code>d = i</code> the <xref linkend="glo_Java"/> compiler implicitly converts the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> into a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para>
+          <answer>
+            <para>The first snippet compiles by using the widening conversion: When assigning <code>d = i</code> the <xref linkend="glo_Java"/> compiler implicitly converts the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> into a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para>
 
-              <para>Turning a double into an int is more cumbersome: The expression <code>i = 3.5</code> could be evaluated by agreeing on a specific rounding prescription. But what about i = 3457357385783573478955345.45? A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s maximum value is <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:msup>
-                        <m:mi>2</m:mi>
+            <para>Turning a double into an int is more cumbersome: The expression <code>i = 3.5</code> could be evaluated by agreeing on a specific rounding prescription. But what about i = 3457357385783573478955345.45? A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s maximum value is <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:msup>
+                      <m:mi>2</m:mi>
 
-                        <m:mi>31</m:mi>
-                      </m:msup>
+                      <m:mi>31</m:mi>
+                    </m:msup>
 
-                      <m:mo>-</m:mo>
+                    <m:mo>-</m:mo>
 
-                      <m:mi>1</m:mi>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>exceeding the former <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para>
+                    <m:mi>1</m:mi>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>exceeding the former <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> value.</para>
 
-              <para>Conclusion: <xref linkend="glo_Java"/> disallows double to int assignments unless using a so called cast (explicit type conversion):</para>
+            <para>Conclusion: <xref linkend="glo_Java"/> disallows double to int assignments unless using a so called cast (explicit type conversion):</para>
 
-              <programlisting language="java">double d = 2.4;
+            <programlisting language="java">double d = 2.4;
 int i = (int) d; // Explicit cast double to int</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <para><xref linkend="glo_Java"/> provides meta information on types:</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_intTypeMaxMin">
-        <title>Maximum and minimum values</title>
+    <para><xref linkend="glo_Java"/> provides meta information on types:</para>
 
-        <informaltable border="1">
-          <tr>
-            <th>Type</th>
+    <figure xml:id="sd1_fig_intTypeMaxMin">
+      <title>Maximum and minimum values</title>
 
-            <th>Bytes</th>
+      <informaltable border="1">
+        <tr>
+          <th>Type</th>
 
-            <th>Min value</th>
+          <th>Bytes</th>
 
-            <th>Max value</th>
-          </tr>
+          <th>Min value</th>
 
-          <tr>
-            <td>byte</td>
+          <th>Max value</th>
+        </tr>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">1</link></td>
+        <tr>
+          <td>byte</td>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MIN_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:mo>-</m:mo>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">1</link></td>
 
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MIN_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:mo>-</m:mo>
 
-                      <m:mi>7</m:mi>
-                    </m:msup>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MAX_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:msup>
-                      <m:mi>2</m:mi>
+                    <m:mi>7</m:mi>
+                  </m:msup>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
 
-                      <m:mi>7</m:mi>
-                    </m:msup>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Byte.MAX_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                    <m:mo>-</m:mo>
+                    <m:mi>7</m:mi>
+                  </m:msup>
 
-                    <m:mi>1</m:mi>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
-          </tr>
+                  <m:mo>-</m:mo>
 
-          <tr>
-            <td>char</td>
+                  <m:mi>1</m:mi>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
+        </tr>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">2</link></td>
+        <tr>
+          <td>char</td>
 
-            <td>0</td>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html#BYTES">2</link></td>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Character.MAX_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <td>0</td>
 
-                      <m:mi>16</m:mi>
-                    </m:msup>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Character.MAX_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                    <m:mo>-</m:mo>
+                    <m:mi>16</m:mi>
+                  </m:msup>
 
-                    <m:mi>1</m:mi>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
-          </tr>
+                  <m:mo>-</m:mo>
 
-          <tr>
-            <td>short</td>
+                  <m:mi>1</m:mi>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
+        </tr>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.BYTES">2</link></td>
+        <tr>
+          <td>short</td>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MIN_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:mo>-</m:mo>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.BYTES">2</link></td>
 
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MIN_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:mo>-</m:mo>
 
-                      <m:mi>15</m:mi>
-                    </m:msup>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MAX_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:msup>
-                      <m:mi>2</m:mi>
+                    <m:mi>15</m:mi>
+                  </m:msup>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
 
-                      <m:mi>15</m:mi>
-                    </m:msup>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Short.MAX_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                    <m:mo>-</m:mo>
+                    <m:mi>15</m:mi>
+                  </m:msup>
 
-                    <m:mi>1</m:mi>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
-          </tr>
+                  <m:mo>-</m:mo>
 
-          <tr>
-            <td>int</td>
+                  <m:mi>1</m:mi>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
+        </tr>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.BYTES">4</link></td>
+        <tr>
+          <td>int</td>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MIN_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:mo>-</m:mo>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.BYTES">4</link></td>
 
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MIN_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:mo>-</m:mo>
 
-                      <m:mi>31</m:mi>
-                    </m:msup>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:msup>
-                      <m:mi>2</m:mi>
+                    <m:mi>31</m:mi>
+                  </m:msup>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
 
-                      <m:mi>31</m:mi>
-                    </m:msup>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                    <m:mo>-</m:mo>
+                    <m:mi>31</m:mi>
+                  </m:msup>
 
-                    <m:mi>1</m:mi>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
-          </tr>
+                  <m:mo>-</m:mo>
 
-          <tr>
-            <td>long</td>
+                  <m:mi>1</m:mi>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
+        </tr>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.BYTES">8</link></td>
+        <tr>
+          <td>long</td>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MIN_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:mo>-</m:mo>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.BYTES">8</link></td>
 
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MIN_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:mo>-</m:mo>
 
-                      <m:mi>63</m:mi>
-                    </m:msup>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-            <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><inlineequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:msup>
-                      <m:mi>2</m:mi>
+                    <m:mi>63</m:mi>
+                  </m:msup>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
 
-                      <m:mi>63</m:mi>
-                    </m:msup>
+          <td><link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><inlineequation>
+              <m:math display="inline">
+                <m:mrow>
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                    <m:mo>-</m:mo>
+                    <m:mi>63</m:mi>
+                  </m:msup>
 
-                    <m:mi>1</m:mi>
-                  </m:mrow>
-                </m:math>
-              </inlineequation></link></td>
-          </tr>
-        </informaltable>
-      </figure>
+                  <m:mo>-</m:mo>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaTinyIntRepresent">
-        <title>Inventing <code>tinyint</code>.</title>
+                  <m:mi>1</m:mi>
+                </m:mrow>
+              </m:math>
+            </inlineequation></link></td>
+        </tr>
+      </informaltable>
+    </figure>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Suppose <xref linkend="glo_Java"/> was offering a signed integer type <code>tinyint</code> using 3-bit 2-complement representation.</para>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaTinyIntRepresent">
+      <title>Inventing <code>tinyint</code>.</title>
 
-              <orderedlist>
-                <listitem>
-                  <para>Write down all possible decimal values among with their corresponding binary representation.</para>
-                </listitem>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Suppose <xref linkend="glo_Java"/> was offering a signed integer type <code>tinyint</code> using 3-bit 2-complement representation.</para>
 
-                <listitem>
-                  <para>Perform the following additions on binary level:</para>
+            <orderedlist>
+              <listitem>
+                <para>Write down all possible decimal values among with their corresponding binary representation.</para>
+              </listitem>
 
-                  <itemizedlist>
-                    <listitem>
-                      <para>1 + 2</para>
-                    </listitem>
+              <listitem>
+                <para>Perform the following additions on binary level:</para>
 
-                    <listitem>
-                      <para>-4 + 2</para>
-                    </listitem>
+                <itemizedlist>
+                  <listitem>
+                    <para>1 + 2</para>
+                  </listitem>
 
-                    <listitem>
-                      <para>-1 - 2</para>
-                    </listitem>
+                  <listitem>
+                    <para>-4 + 2</para>
+                  </listitem>
 
-                    <listitem>
-                      <para>3 + 1</para>
-                    </listitem>
-                  </itemizedlist>
-                </listitem>
-              </orderedlist>
-            </question>
+                  <listitem>
+                    <para>-1 - 2</para>
+                  </listitem>
 
-            <answer>
-              <orderedlist>
-                <listitem>
-                  <programlisting language="none"> 3  011
+                  <listitem>
+                    <para>3 + 1</para>
+                  </listitem>
+                </itemizedlist>
+              </listitem>
+            </orderedlist>
+          </question>
+
+          <answer>
+            <orderedlist>
+              <listitem>
+                <programlisting language="none"> 3  011
  2  010
  1  001
  0  000
@@ -1089,184 +1086,184 @@ int i = (int) d; // Explicit cast double to int</programlisting>
 -2  110
 -3  101
 -4  100</programlisting>
-                </listitem>
+              </listitem>
 
-                <listitem>
-                  <glosslist>
-                    <glossentry>
-                      <glossterm>1 + 2</glossterm>
+              <listitem>
+                <glosslist>
+                  <glossentry>
+                    <glossterm>1 + 2</glossterm>
 
-                      <glossdef>
-                        <para><screen> 1   001
+                    <glossdef>
+                      <para><screen> 1   001
  2  +010
 --  ----
  3   011</screen></para>
-                      </glossdef>
-                    </glossentry>
+                    </glossdef>
+                  </glossentry>
 
-                    <glossentry>
-                      <glossterm>-4 + 1</glossterm>
+                  <glossentry>
+                    <glossterm>-4 + 1</glossterm>
 
-                      <glossdef>
-                        <screen>-4   100
+                    <glossdef>
+                      <screen>-4   100
  2  +010
 --  ----
 -2   110</screen>
-                      </glossdef>
-                    </glossentry>
+                    </glossdef>
+                  </glossentry>
 
-                    <glossentry>
-                      <glossterm>-1 - 2</glossterm>
+                  <glossentry>
+                    <glossterm>-1 - 2</glossterm>
 
-                      <glossdef>
-                        <screen>-1     111
+                    <glossdef>
+                      <screen>-1     111
 -2    +110
 --  ------
 -3   1_101 (See comment below)</screen>
 
-                        <para>In 3-bit two complement representation the leftmost bit will be discarded. Thus the actual result is <code>101</code> as being expected.</para>
-                      </glossdef>
-                    </glossentry>
+                      <para>In 3-bit two complement representation the leftmost bit will be discarded. Thus the actual result is <code>101</code> as being expected.</para>
+                    </glossdef>
+                  </glossentry>
 
-                    <glossentry>
-                      <glossterm>3 + 1</glossterm>
+                  <glossentry>
+                    <glossterm>3 + 1</glossterm>
 
-                      <glossdef>
-                        <screen> 1   001
+                    <glossdef>
+                      <screen> 1   001
  3  +011
 --  ----
 -4   100 Surprise! See comment below</screen>
 
-                        <para>This is actually an overflow: In 3-bit two complement representation the highest possible value is 3 being equal to <inlineequation>
-                            <m:math display="inline">
-                              <m:mrow>
-                                <m:msup>
-                                  <m:mi>2</m:mi>
+                      <para>This is actually an overflow: In 3-bit two complement representation the highest possible value is 3 being equal to <inlineequation>
+                          <m:math display="inline">
+                            <m:mrow>
+                              <m:msup>
+                                <m:mi>2</m:mi>
 
-                                  <m:mrow>
-                                    <m:mi>3</m:mi>
+                                <m:mrow>
+                                  <m:mi>3</m:mi>
 
-                                    <m:mo>-</m:mo>
+                                  <m:mo>-</m:mo>
 
-                                    <m:mi>1</m:mi>
-                                  </m:mrow>
-                                </m:msup>
+                                  <m:mi>1</m:mi>
+                                </m:mrow>
+                              </m:msup>
 
-                                <m:mo>-</m:mo>
+                              <m:mo>-</m:mo>
 
-                                <m:mi>1</m:mi>
-                              </m:mrow>
-                            </m:math>
-                          </inlineequation>. Trying to add a value of 1 leads to disaster and in suitable circumstances may cause a US$370 <link xlink:href="https://en.wikipedia.org/wiki/Ariane_5#Notable_launches">spacecraft plummeting from the sky</link>! Excerpt from the <link xlink:href="http://sunnyday.mit.edu/accidents/Ariane5accidentreport.html">Ariane 5 flight 501 failure report</link>:</para>
+                              <m:mi>1</m:mi>
+                            </m:mrow>
+                          </m:math>
+                        </inlineequation>. Trying to add a value of 1 leads to disaster and in suitable circumstances may cause a US$370 <link xlink:href="https://en.wikipedia.org/wiki/Ariane_5#Notable_launches">spacecraft plummeting from the sky</link>! Excerpt from the <link xlink:href="http://sunnyday.mit.edu/accidents/Ariane5accidentreport.html">Ariane 5 flight 501 failure report</link>:</para>
+
+                      <blockquote>
+                        <para>The internal SRI software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value. The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer.</para>
+                      </blockquote>
+                    </glossdef>
+                  </glossentry>
+                </glosslist>
+              </listitem>
+            </orderedlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaMaxMinInt">
+      <title>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum value</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>In this exercise we look at an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s the largest and smallest (negative) possible value.</para>
+
+            <para>A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">int</code> is internally being represented by 4 <link linkend="glo_byte">bytes</link>. <inlineequation>
+                <m:math display="inline">
+                  <m:msub>
+                    <m:mi>00000000000000000000000000000101</m:mi>
 
-                        <blockquote>
-                          <para>The internal SRI software exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value. The floating point number which was converted had a value greater than what could be represented by a 16-bit signed integer.</para>
-                        </blockquote>
-                      </glossdef>
-                    </glossentry>
-                  </glosslist>
-                </listitem>
-              </orderedlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                    <m:mi>2</m:mi>
+                  </m:msub>
+                </m:math>
+              </inlineequation> for example represents the decimal value 5.</para>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaMaxMinInt">
-        <title>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum value</title>
+            <para><xref linkend="glo_Java"/> implements negative values using <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation. We provide some values:</para>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>In this exercise we look at an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s the largest and smallest (negative) possible value.</para>
+            <table border="1" xml:id="sw1Table4ByteIntegerRepresentation">
+              <caption>4 Byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation of <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values.</caption>
 
-              <para>A <xref linkend="glo_Java"/> <code xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html">int</code> is internally being represented by 4 <link linkend="glo_byte">bytes</link>. <inlineequation>
-                  <m:math display="inline">
-                    <m:msub>
-                      <m:mi>00000000000000000000000000000101</m:mi>
+              <tr>
+                <th>Two complement representation</th>
 
-                      <m:mi>2</m:mi>
-                    </m:msub>
-                  </m:math>
-                </inlineequation> for example represents the decimal value 5.</para>
+                <th>Decimal representation</th>
+              </tr>
 
-              <para><xref linkend="glo_Java"/> implements negative values using <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation. We provide some values:</para>
+              <tr>
+                <td><code>00000000000000000000000000000000</code></td>
 
-              <table border="1" xml:id="sw1Table4ByteIntegerRepresentation">
-                <caption>4 Byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation of <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values.</caption>
+                <td>0</td>
+              </tr>
 
-                <tr>
-                  <th>Two complement representation</th>
+              <tr>
+                <td><code>01111111111111111111111111111111</code></td>
 
-                  <th>Decimal representation</th>
-                </tr>
+                <td><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                <tr>
-                  <td><code>00000000000000000000000000000000</code></td>
+                          <m:mrow>
+                            <m:mi>16</m:mi>
 
-                  <td>0</td>
-                </tr>
-
-                <tr>
-                  <td><code>01111111111111111111111111111111</code></td>
-
-                  <td><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
-
-                            <m:mrow>
-                              <m:mi>16</m:mi>
-
-                              <m:mo>-</m:mo>
+                            <m:mo>-</m:mo>
 
-                              <m:mi>1</m:mi>
-                            </m:mrow>
-                          </m:msup>
+                            <m:mi>1</m:mi>
+                          </m:mrow>
+                        </m:msup>
 
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> (Maximum)</td>
-                </tr>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> (Maximum)</td>
+              </tr>
 
-                <tr>
-                  <td><code>10000000000000000000000000000000</code></td>
+              <tr>
+                <td><code>10000000000000000000000000000000</code></td>
 
-                  <td><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:mo>-</m:mo>
+                <td><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:mo>-</m:mo>
 
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mrow>
-                              <m:mi>16</m:mi>
+                          <m:mrow>
+                            <m:mi>16</m:mi>
 
-                              <m:mo>-</m:mo>
+                            <m:mo>-</m:mo>
 
-                              <m:mi>1</m:mi>
-                            </m:mrow>
-                          </m:msup>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> (Minimum)</td>
-                </tr>
+                            <m:mi>1</m:mi>
+                          </m:mrow>
+                        </m:msup>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> (Minimum)</td>
+              </tr>
 
-                <tr>
-                  <td><code>11111111111111111111111111111111</code></td>
+              <tr>
+                <td><code>11111111111111111111111111111111</code></td>
 
-                  <td>-1</td>
-                </tr>
-              </table>
+                <td>-1</td>
+              </tr>
+            </table>
 
-              <para>Use <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1"><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals</link> in <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-BinaryNumeral">binary representation</link> like e.g. <code>0B1100</code> in section <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> in order to write an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum possible value to standard output.</para>
+            <para>Use <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1"><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals</link> in <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-BinaryNumeral">binary representation</link> like e.g. <code>0B1100</code> in section <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> in order to write an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s minimum and maximum possible value to standard output.</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+            <programlisting language="java">   public static void main(String[] args) {
       
       int minumum = ... , //TODO: provide values by
           maximum = ...;  // binary int literals
@@ -1274,12 +1271,12 @@ int i = (int) d; // Explicit cast double to int</programlisting>
       System.out.println("Minimum:" + minumum);
       System.out.println("Maximum:" + maximum);
    }</programlisting>
-            </question>
+          </question>
 
-            <answer>
-              <para>We insert <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representations of minimum and maximum int values according to <xref linkend="sw1Table4ByteIntegerRepresentation"/>.</para>
+          <answer>
+            <para>We insert <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representations of minimum and maximum int values according to <xref linkend="sw1Table4ByteIntegerRepresentation"/>.</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
       
       int minumum = 0B10000000_00000000_00000000_00000000,
           maximum = 0B01111111_11111111_11111111_11111111;
@@ -1288,100 +1285,100 @@ int i = (int) d; // Explicit cast double to int</programlisting>
       System.out.println("Maximum int value:" + maximum);
    }</programlisting>
 
-              <para>BTW: The <xref linkend="glo_JDK"/> does provide maximum value, minimum value and related information for <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> data types int its related <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html">Byte</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</classname> and <classname
-              xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname> classes. You may want to execute:</para>
+            <para>BTW: The <xref linkend="glo_JDK"/> does provide maximum value, minimum value and related information for <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> primitive data types within their corresponding <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html">Byte</classname>, <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</classname> and <classname
+            xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname> classes. You may want to execute:</para>
 
-              <programlisting language="java">    System.out.println("int minimum:" + Integer.MIN_VALUE);
+            <programlisting language="java">    System.out.println("int minimum:" + Integer.MIN_VALUE);
     System.out.println("int maximum:" + Integer.MAX_VALUE);
     
     System.out.println("int bytes:" + Integer.BYTES);
     System.out.println("int size:" + Integer.SIZE);</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_variableCategories">
-        <title>Two categories of variables</title>
+    <figure xml:id="sd1_fig_variableCategories">
+      <title>Two categories of variables</title>
 
-        <glosslist>
-          <glossentry>
-            <glossterm>Primitive type</glossterm>
+      <glosslist>
+        <glossentry>
+          <glossterm>Primitive type</glossterm>
 
-            <glossdef>
-              <programlisting language="java">int a = -15;</programlisting>
+          <glossdef>
+            <programlisting language="java">int a = -15;</programlisting>
 
-              <para>Possible types: All eight primitive <xref linkend="glo_Java"/> types.</para>
-            </glossdef>
-          </glossentry>
+            <para>Possible types: All eight primitive <xref linkend="glo_Java"/> types.</para>
+          </glossdef>
+        </glossentry>
 
-          <glossentry>
-            <glossterm>Reference type</glossterm>
+        <glossentry>
+          <glossterm>Reference type (based on classes)</glossterm>
 
-            <glossdef>
-              <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);</programlisting>
+          <glossdef>
+            <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);</programlisting>
 
-              <para>Possible types: Arbitrary built in or user defined classes.</para>
-            </glossdef>
-          </glossentry>
-        </glosslist>
-      </figure>
+            <para>Possible types: Arbitrary built in or user defined classes.</para>
+          </glossdef>
+        </glossentry>
+      </glosslist>
+    </figure>
 
-      <figure xml:id="sd1_fig_refTypeVariants">
-        <title>Reference type variants</title>
+    <figure xml:id="sd1_fig_refTypeVariants">
+      <title>Reference type variants</title>
 
-        <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);
+      <programlisting language="java">GpsPosition start = new GpsPosition(48.7758, 9.1829);
 String name = "Simon";
 LocalDate birtday = LocalDate.of(1990, Month.JULY, 5);</programlisting>
-      </figure>
-    </section>
+    </figure>
+  </section>
 
-    <section xml:id="sd1_sect_literals">
-      <title>Literals</title>
+  <section xml:id="sd1_sect_literals">
+    <title>Literals</title>
 
-      <figure xml:id="sd1_fig_literal2memory">
-        <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></title>
+    <figure xml:id="sd1_fig_literal2memory">
+      <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/literalToMemory.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/literalToMemory.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <figure xml:id="sd1_fig_equivalentIntRepresentations">
-        <title>Four ways representing 35</title>
+    <figure xml:id="sd1_fig_equivalentIntRepresentations">
+      <title>Four ways representing 35</title>
 
-        <informaltable border="1">
-          <tr>
-            <th>Code</th>
+      <informaltable border="1">
+        <tr>
+          <th>Code</th>
 
-            <th>Result</th>
-          </tr>
+          <th>Result</th>
+        </tr>
 
-          <tr>
-            <td><programlisting language="java">System.out.println("Decimal "+ <emphasis role="bold">35</emphasis>); 
+        <tr>
+          <td><programlisting language="java">System.out.println("Decimal "+ <emphasis role="bold">35</emphasis>); 
 System.out.println("Binary " + <emphasis role="bold">0b10_0011</emphasis>);
 System.out.println("Hex "    + <emphasis role="bold">0x23</emphasis>);   
 System.out.println("Octal "  + <emphasis role="bold">043</emphasis>);   </programlisting></td>
 
-            <td><screen>Decimal 35
+          <td><screen>Decimal 35
 Binary  35
 Hex 35
 Octal 35</screen></td>
-          </tr>
-        </informaltable>
-      </figure>
+        </tr>
+      </informaltable>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaWild">
-        <title>Pretty may not be pretty</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaWild">
+      <title>Pretty may not be pretty</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following program:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following program:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+            <programlisting language="java">   public static void main(String[] args) {
 
       int a = 20,
           b = 3,
@@ -1391,13 +1388,13 @@ Octal 35</screen></td>
       
    }</programlisting>
 
-              <para>This will run smoothly producing the expected output:</para>
+            <para>This will run smoothly producing the expected output:</para>
 
-              <screen>20 + 3 + 9 = 32</screen>
+            <screen>20 + 3 + 9 = 32</screen>
 
-              <para>We now prettify our variable definitions by introducing right aligning numbers thereby padding leading positions with zeros:</para>
+            <para>We now prettify our variable definitions by introducing right aligning numbers thereby padding leading positions with zeros:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+            <programlisting language="java">   public static void main(String[] args) {
 
       int a = 20,
           b = 03,
@@ -1406,121 +1403,121 @@ Octal 35</screen></td>
       System.out.println(a + " + " + b + " + " + c + " = " + (a + b + c));
    }</programlisting>
 
-              <para>The above code does not compile due to the compiler error when defining variable <code>c</code>.</para>
+            <para>The above code does not compile due to the compiler error when defining variable <code>c</code>.</para>
 
-              <para>Explain the underlying cause. In particular: Why is <code>b = 03</code> just fine in contrast to <code>c = 09</code> ?</para>
+            <para>Explain the underlying cause. In particular: Why is <code>b = 03</code> just fine in contrast to <code>c = 09</code> ?</para>
 
-              <tip>
-                <para>Re-read the section on integer literal representations.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Re-read the section on integer literal representations.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Integer literals starting with <quote>0</quote> are being interpreted as octal representation. Since the octal system's set of digits is {0,1,2,3,4,5,6,7} the value <quote>09</quote> is simply not valid.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          <answer>
+            <para>Integer literals starting with <quote>0</quote> are being interpreted as octal representation. Since the octal system's set of digits is {0,1,2,3,4,5,6,7} the value <quote>09</quote> is simply not valid.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1OctalOutput">
-        <title>Strange output</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1OctalOutput">
+      <title>Strange output</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code:</para>
 
-              <programlisting language="java">int a = 041;
+            <programlisting language="java">int a = 041;
 System.out.println("Value = " + a);</programlisting>
 
-              <para>On execution we receive the output <code>Value = 33</code>. Explain this result</para>
-            </question>
+            <para>On execution we receive the output <code>Value = 33</code>. Explain this result</para>
+          </question>
 
-            <answer>
-              <para>This problem is related to the previous exercise: The integer literal 041 defines octal representation. Changing from octal to decimal representation takes us to 4 * 8 + 1 = 33.</para>
+          <answer>
+            <para>This problem is related to the previous exercise: The integer literal 041 defines octal representation. Changing from octal to decimal representation takes us to 4 * 8 + 1 = 33.</para>
 
-              <para>There are 11 types of people: Those, who know can read binary codes, those who know what binary is and those who don't have a clue what binary is.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>There are 11 types of people: Those, who know can read binary codes, those who know what binary is and those who don't have a clue what binary is.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_intLiteralLimitExcess">
-        <title>Know your limits!</title>
+    <figure xml:id="sd1_fig_intLiteralLimitExcess">
+      <title>Know your limits!</title>
 
-        <programlisting language="java">System.out.println(10000000000<emphasis role="bold">L</emphasis>);  // o.K.
+      <programlisting language="java">System.out.println(10000000000<emphasis role="bold">L</emphasis>);  // o.K.
 System.out.println(10000000000 );  // Compile time error: Integer number too large</programlisting>
-      </figure>
+    </figure>
 
-      <figure xml:id="sd1_fig_javaLiterals">
-        <title><xref linkend="glo_Java"/> literals</title>
+    <figure xml:id="sd1_fig_javaLiterals">
+      <title><xref linkend="glo_Java"/> literals</title>
 
-        <informaltable border="1">
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></td>
+      <informaltable border="1">
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></td>
 
-            <td>-</td>
-          </tr>
+          <td>-</td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></td>
 
-            <td><code>'A'</code>, <code>'\u0041'</code></td>
-          </tr>
+          <td><code>'A'</code>, <code>'\u0041'</code></td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></td>
 
-            <td><code>29</code>, <code>0b1_1101</code>, <code>0x1D</code>, <code>035</code>, <code>-29</code>,</td>
-          </tr>
+          <td><code>29</code>, <code>0b1_1101</code>, <code>0x1D</code>, <code>035</code>, <code>-29</code>,</td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></td>
 
-            <td><code>35L</code>, <code>0b10_0011L</code>, <code>0x23L</code>, <code>043L</code>, <code>-35L</code>,...</td>
-          </tr>
+          <td><code>35L</code>, <code>0b10_0011L</code>, <code>0x23L</code>, <code>043L</code>, <code>-35L</code>,...</td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code></td>
 
-            <td><code>55.43F</code>, <code>1.7E-23F</code>, <code>-17.F, 100_342.334_113</code></td>
-          </tr>
+          <td><code>55.43F</code>, <code>1.7E-23F</code>, <code>-17.F, 100_342.334_113</code></td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code></td>
 
-            <td><code>55.43</code>, <code>1.7 E -23</code>, <code>-17.</code></td>
-          </tr>
+          <td><code>55.43</code>, <code>1.7 E -23</code>, <code>-17.</code></td>
+        </tr>
 
-          <tr>
-            <td><code>String</code></td>
+        <tr>
+          <td><code>String</code></td>
 
-            <td><code>"Hello"</code>, <code>"Greek Δ"</code>, <code>"Greek <link xlink:href="https://www.fileformat.info/info/unicode/char/0394/index.htm">\u0394</link>"</code></td>
-          </tr>
+          <td><code>"Hello"</code>, <code>"Greek Δ"</code>, <code>"Greek <link xlink:href="https://www.fileformat.info/info/unicode/char/0394/index.htm">\u0394</link>"</code></td>
+        </tr>
 
-          <tr>
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">boolean</code></td>
+        <tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">boolean</code></td>
 
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">true</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">false</code></td>
-          </tr>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">true</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.5-100">false</code></td>
+        </tr>
 
-          <tr>
-            <td/>
+        <tr>
+          <td/>
 
-            <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.1-200">null</code></td>
-          </tr>
-        </informaltable>
-      </figure>
+          <td><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.1-200">null</code></td>
+        </tr>
+      </informaltable>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_poorMansAscii">
-        <title>Poor mans ASCII table</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_poorMansAscii">
+      <title>Poor mans ASCII table</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>We want to construct a list of <link xlink:href="http://www.rapidtables.com/code/text/ascii-table.htm#print">printable ASCII characters</link>. Write a <xref linkend="glo_Java"/> application by starting just from from the character literals <code>' '</code>, <code>'!'</code>, <code>'"'</code>, <code>'#'</code>, '$', '%', '&amp;' to show their corresponding <xref linkend="glo_ASCII"/> decimal values. The intended output is:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>We want to construct a list of <link xlink:href="http://www.rapidtables.com/code/text/ascii-table.htm#print">printable ASCII characters</link>. Write a <xref linkend="glo_Java"/> application by starting just from from the character literals <code>' '</code>, <code>'!'</code>, <code>'"'</code>, <code>'#'</code>, '$', '%', '&amp;' to show their corresponding <xref linkend="glo_ASCII"/> decimal values. The intended output is:</para>
 
-              <screen> : 32
+            <screen> : 32
 !: 33
 ": 34
 #: 35
@@ -1528,17 +1525,17 @@ $: 36
 %: 37
 &amp;: 38</screen>
 
-              <para>Notice the empty space being represented by decimal 32.</para>
+            <para>Notice the empty space being represented by decimal 32.</para>
 
-              <tip>
-                <para>A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> value being represented by two bytes may be assigned to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variable.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> value being represented by two bytes may be assigned to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variable.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Since <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values may be assigned to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variables we may code:</para>
+          <answer>
+            <para>Since <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values may be assigned to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> variables we may code:</para>
 
-              <programlisting language="java">{
+            <programlisting language="java">{
   char c = ' '; // space
   int value = c;
   System.out.println(c + ": " + value);
@@ -1555,9 +1552,9 @@ $: 36
 }
 ...</programlisting>
 
-              <para>Using an explicit type conversion from char to int (a so called cast) yields an identical result:</para>
+            <para>Using an explicit type conversion from char to int (a so called cast) yields an identical result:</para>
 
-              <programlisting language="java">System.out.println(' ' + ": " + ((int) ' '));
+            <programlisting language="java">System.out.println(' ' + ": " + ((int) ' '));
 System.out.println('!' + ": " + ((int) '!'));
 System.out.println('"' + ": " + ((int) '"'));
 System.out.println('#' + ": " + ((int) '#'));
@@ -1565,24 +1562,24 @@ System.out.println('$' + ": " + ((int) '$'));
 System.out.println('%' + ": " + ((int) '%'));
 System.out.println('&amp;' + ": " + ((int) '&amp;'));
 ...</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaIntByBinary">
-        <title>Integer value hexadecimal representation</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaIntByBinary">
+      <title>Integer value hexadecimal representation</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>As you may know the <xref linkend="glo_RGB"/> color model uses triplets of numbers to define color value components representing intensities of its three base colors <foreignphrase><emphasis role="bold">R</emphasis>ed</foreignphrase>, <foreignphrase><emphasis role="bold">G</emphasis>reen</foreignphrase> and <foreignphrase><emphasis role="bold">B</emphasis>lue</foreignphrase>. The component values range from 0 to 255, the latter defining maximum intensity.</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>As you may know the <xref linkend="glo_RGB"/> color model uses triplets of numbers to define color value components representing intensities of its three base colors <foreignphrase><emphasis role="bold">R</emphasis>ed</foreignphrase>, <foreignphrase><emphasis role="bold">G</emphasis>reen</foreignphrase> and <foreignphrase><emphasis role="bold">B</emphasis>lue</foreignphrase>. The component values range from 0 to 255, the latter defining maximum intensity.</para>
 
-              <para>The color <quote>red</quote> for example is being represented by (255, 0, 0). So the red component has maximum intensity while blue and green are zero.</para>
+            <para>The color <quote>red</quote> for example is being represented by (255, 0, 0). So the red component has maximum intensity while blue and green are zero.</para>
 
-              <para>It is however common to use <link xlink:href="http://www.december.com/html/spec/color16codes.html">hexadecimal in favour of decimal values</link>. Thus the same color <quote>red</quote> in the subsequent HTML example's heading font is now being represented by <emphasis role="bold">(FF,0,0)</emphasis>:</para>
+            <para>It is however common to use <link xlink:href="http://www.december.com/html/spec/color16codes.html">hexadecimal in favour of decimal values</link>. Thus the same color <quote>red</quote> in the subsequent HTML example's heading font is now being represented by <emphasis role="bold">(FF,0,0)</emphasis>:</para>
 
-              <programlisting language="html">&lt;!DOCTYPE html&gt;
+            <programlisting language="html">&lt;!DOCTYPE html&gt;
 &lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
   &lt;head&gt;
     &lt;title&gt;A simple color example&lt;/title&gt;
@@ -1591,105 +1588,105 @@ System.out.println('&amp;' + ": " + ((int) '&amp;'));
   &lt;body&gt;&lt;h1 style="<emphasis role="bold">color: #FF0000;</emphasis>"&gt;My heading&lt;/h1&gt;&lt;/body&gt;
 &lt;/html&gt;</programlisting>
 
-              <para>Write a program printing the hexadecimal representation <inlineequation>
-                  <m:math display="inline">
-                    <m:msub>
-                      <m:mi>C0</m:mi>
+            <para>Write a program printing the hexadecimal representation <inlineequation>
+                <m:math display="inline">
+                  <m:msub>
+                    <m:mi>C0</m:mi>
 
-                      <m:mi>16</m:mi>
-                    </m:msub>
-                  </m:math>
-                </inlineequation> as a decimal value.</para>
+                    <m:mi>16</m:mi>
+                  </m:msub>
+                </m:math>
+              </inlineequation> as a decimal value.</para>
 
-              <para>Complete the following code by assigning the hexadecimal value <inlineequation>
-                  <m:math display="inline">
-                    <m:msub>
-                      <m:mi>C0</m:mi>
+            <para>Complete the following code by assigning the hexadecimal value <inlineequation>
+                <m:math display="inline">
+                  <m:msub>
+                    <m:mi>C0</m:mi>
 
-                      <m:mi>16</m:mi>
-                    </m:msub>
-                  </m:math>
-                </inlineequation> (The <quote>silver</quote> color's all three component's intensity in <uri xlink:href="http://www.december.com/html/spec/color16codes.html">http://www.december.com/html/spec/color16codes.html</uri>) to get the output in decimal representation.</para>
+                    <m:mi>16</m:mi>
+                  </m:msub>
+                </m:math>
+              </inlineequation> (The <quote>silver</quote> color's all three component's intensity in <uri xlink:href="http://www.december.com/html/spec/color16codes.html">http://www.december.com/html/spec/color16codes.html</uri>) to get the output in decimal representation.</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
    short intensity = ...;
       
    System.out.println(intensity);
 }</programlisting>
 
-              <tip>
-                <para>You may want to consider the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> section of <xref linkend="bib_Kurniawan2015"/> learning about hexadecimal integer value representation.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>You may want to consider the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc6_html_2">Literals</quote> section of <xref linkend="bib_Kurniawan2015"/> learning about hexadecimal integer value representation.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Using hexadecimal literals we have:</para>
+          <answer>
+            <para>Using hexadecimal literals we have:</para>
 
-              <programlisting language="java">short intensity = 0xC0;
+            <programlisting language="java">short intensity = 0xC0;
 
 System.out.println(intensity);</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_literalProblem">
-        <title>Literal problem</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider:</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-              <programlisting language="java">System.out.println(048);</programlisting>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_literalProblem">
+      <title>Literal problem</title>
 
-              <para>This yields a compile time error <quote>Integer number too large</quote>. On contrary the following code will compile and run perfectly well:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider:</para>
 
-              <programlisting language="java">System.out.println(047);</programlisting>
+            <programlisting language="java">System.out.println(048);</programlisting>
 
-              <para>Explain the underlying problem.</para>
-            </question>
+            <para>This yields a compile time error <quote>Integer number too large</quote>. On contrary the following code will compile and run perfectly well:</para>
 
-            <answer>
-              <para>The literal <quote>048</quote> denotes <link xlink:href="https://en.wikipedia.org/wiki/Octal">octal representation</link>. Digits in octal representation range from 0 to 7. So <quote>047</quote> is fine but <quote>048</quote> simply is invalid.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <programlisting language="java">System.out.println(047);</programlisting>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaBinaryIntLiteral">
-        <title>Binary literals</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <orderedlist>
-                <listitem>
-                  <para>Using the decimal system to represent integer values we tend to ignore other important numbering systems. Write an application which prints the decimal value of <inlineequation>
-                      <m:math display="inline">
-                        <m:msub>
-                          <m:mi>1110100100</m:mi>
+            <para>Explain the underlying problem.</para>
+          </question>
 
-                          <m:mi>2</m:mi>
-                        </m:msub>
-                      </m:math>
-                    </inlineequation> by writing the former as a binary int literal. Verify the printed value by an independent calculation.</para>
-                </listitem>
+          <answer>
+            <para>The literal <quote>048</quote> denotes <link xlink:href="https://en.wikipedia.org/wiki/Octal">octal representation</link>. Digits in octal representation range from 0 to 7. So <quote>047</quote> is fine but <quote>048</quote> simply is invalid.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-                <listitem>
-                  <para>Construct a second binary literal representing a negative value of your choice.</para>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaBinaryIntLiteral">
+      <title>Binary literals</title>
 
-                  <tip>
-                    <para>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> is being represented by four bytes in <xref linkend="glo_Java"/>.</para>
-                  </tip>
-                </listitem>
-              </orderedlist>
-            </question>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <orderedlist>
+              <listitem>
+                <para>Using the decimal system to represent integer values we tend to ignore other important numbering systems. Write an application which prints the decimal value of <inlineequation>
+                    <m:math display="inline">
+                      <m:msub>
+                        <m:mi>1110100100</m:mi>
 
-            <answer>
-              <orderedlist>
-                <listitem>
-                  <programlisting language="java">public static void main(String[] args) {
+                        <m:mi>2</m:mi>
+                      </m:msub>
+                    </m:math>
+                  </inlineequation> by writing the former as a binary int literal. Verify the printed value by an independent calculation.</para>
+              </listitem>
+
+              <listitem>
+                <para>Construct a second binary literal representing a negative value of your choice.</para>
+
+                <tip>
+                  <para>An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> is being represented by four bytes in <xref linkend="glo_Java"/>.</para>
+                </tip>
+              </listitem>
+            </orderedlist>
+          </question>
+
+          <answer>
+            <orderedlist>
+              <listitem>
+                <programlisting language="java">public static void main(String[] args) {
 
    System.out.println(" Binary:" +  0B11_10100100);
    System.out.println("Decimal:" + (512
@@ -1699,1356 +1696,1356 @@ System.out.println(intensity);</programlisting>
                                             + 4));
    }</programlisting>
 
-                  <para>This yields:</para>
+                <para>This yields:</para>
 
-                  <screen> Binary:932
+                <screen> Binary:932
 Decimal:932</screen>
-                </listitem>
+              </listitem>
 
-                <listitem>
-                  <para>A negative value in <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation starts with a <quote>1</quote> at its highest bit. Binary literals in <xref linkend="glo_Java"/> represent <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> in <xref linkend="glo_Java"/> uses 4 bytes and thus occupies 4 x 8=32 bits. Therefore choosing a negative value is a simple task: Start with <quote>1</quote> and let it follow by 32 - 1 = 31 random bit values:</para>
+              <listitem>
+                <para>A negative value in <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation starts with a <quote>1</quote> at its highest bit. Binary literals in <xref linkend="glo_Java"/> represent <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. An <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> in <xref linkend="glo_Java"/> uses 4 bytes and thus occupies 4 x 8=32 bits. Therefore choosing a negative value is a simple task: Start with <quote>1</quote> and let it follow by 32 - 1 = 31 random bit values:</para>
 
-                  <programlisting language="java">public static void main(String[] args) {
+                <programlisting language="java">public static void main(String[] args) {
    System.out.println(0B10000000_00111001_01101001_01110100);
 }</programlisting>
-                </listitem>
-              </orderedlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+              </listitem>
+            </orderedlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaIntLimitShort">
-        <title>Testing the limits (Difficult)</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaIntLimitShort">
+      <title>Testing the limits (Difficult)</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>A careful programmer is worried whether a short variable is <emphasis role="bold">always</emphasis> large enough to hold color intensity values ranging from 0 to 255. Give an answer being based on the <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.1">specification</link> and not just by <acronym>try-and-error</acronym>.</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>A careful programmer is worried whether a short variable is <emphasis role="bold">always</emphasis> large enough to hold color intensity values ranging from 0 to 255. Give an answer being based on the <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.2.1">specification</link> and not just by <acronym>try-and-error</acronym>.</para>
 
-              <para>The programmer tries to adopt the <link linkend="sw1QandaMaxMinInt">related int example</link> accordingly:</para>
+            <para>The programmer tries to adopt the <link linkend="sw1QandaMaxMinInt">related int example</link> accordingly:</para>
 
-              <programlisting language="java">short minumum = 0B10000000_00000000,
+            <programlisting language="java">short minumum = 0B10000000_00000000,
       maximum = 0B01111111_11111111;
 
 System.out.println("Minimum short value:" + minumum);
 System.out.println("Maximum short value:" + maximum</programlisting>
 
-              <para>Our programmer is baffled:</para>
+            <para>Our programmer is baffled:</para>
 
-              <itemizedlist>
-                <listitem>
-                  <para>The first assignment <code language="java">minumum = 0B10000000_00000000</code> is being flagged as a compile time error:</para>
+            <itemizedlist>
+              <listitem>
+                <para>The first assignment <code language="java">minumum = 0B10000000_00000000</code> is being flagged as a compile time error:</para>
 
-                  <para><computeroutput>Type mismatch: cannot convert from int to short</computeroutput></para>
-                </listitem>
+                <para><computeroutput>Type mismatch: cannot convert from int to short</computeroutput></para>
+              </listitem>
 
-                <listitem>
-                  <para>On contrary the second assignment <code language="java">maximum = 0B01111111_11111111</code> gets smoothly accepted.</para>
-                </listitem>
-              </itemizedlist>
+              <listitem>
+                <para>On contrary the second assignment <code language="java">maximum = 0B01111111_11111111</code> gets smoothly accepted.</para>
+              </listitem>
+            </itemizedlist>
 
-              <tip>
-                <para>Which integer literal types do exist according to the <xref linkend="glo_Java"/> <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1">standard</link>?</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Which integer literal types do exist according to the <xref linkend="glo_Java"/> <link xlink:href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.1">standard</link>?</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Since variables of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> have a two bytes representation their corresponding range is <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>[</m:mo>
+          <answer>
+            <para>Since variables of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> have a two bytes representation their corresponding range is <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>[</m:mo>
 
+                    <m:mrow>
                       <m:mrow>
-                        <m:mrow>
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>15</m:mi>
-                          </m:msup>
-                        </m:mrow>
+                          <m:mi>15</m:mi>
+                        </m:msup>
+                      </m:mrow>
 
-                        <m:mo>,</m:mo>
+                      <m:mo>,</m:mo>
 
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>15</m:mi>
-                          </m:msup>
+                          <m:mi>15</m:mi>
+                        </m:msup>
 
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
+                        <m:mi>1</m:mi>
                       </m:mrow>
-
-                      <m:mo>]</m:mo>
                     </m:mrow>
-                  </m:math>
-                </inlineequation>. Thus intensity values ranging from 0 to 255 will be easily accommodated.</para>
 
-              <para>The second question is more difficult to explain: The <xref linkend="glo_Java"/> standard only defines <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals. It does however not define <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> (or <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>) literals.</para>
+                    <m:mo>]</m:mo>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>. Thus intensity values ranging from 0 to 255 will be easily accommodated.</para>
+
+            <para>The second question is more difficult to explain: The <xref linkend="glo_Java"/> standard only defines <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literals. It does however not define <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> (or <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>) literals.</para>
+
+            <para>Thus the 0B01111111_11111111 literal will be treated as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value being compatible with a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable and is thus assignable.</para>
 
-              <para>Thus the 0B01111111_11111111 literal will be treated as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value being compatible with a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable and is thus assignable.</para>
+            <para>On the contrary the binary value <code>10000000_00000000</code> evaluates to <inlineequation>
+                <m:math display="inline">
+                  <m:msup>
+                    <m:mn>2</m:mn>
+
+                    <m:mi>15</m:mi>
+                  </m:msup>
+                </m:math>
+              </inlineequation> (equal to 32768) exceeding a two-byte (signed) short variable's upper limit.</para>
+
+            <para>Even worse: A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable containing binary <code>10000000_00000000</code> due to its two byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation has got a value <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>-</m:mo>
 
-              <para>On the contrary the binary value <code>10000000_00000000</code> evaluates to <inlineequation>
-                  <m:math display="inline">
                     <m:msup>
                       <m:mn>2</m:mn>
 
                       <m:mi>15</m:mi>
                     </m:msup>
-                  </m:math>
-                </inlineequation> (equal to 32768) exceeding a two-byte (signed) short variable's upper limit.</para>
-
-              <para>Even worse: A <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable containing binary <code>10000000_00000000</code> due to its two byte <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation has got a value <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>-</m:mo>
-
-                      <m:msup>
-                        <m:mn>2</m:mn>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> (or -32768).</para>
 
-                        <m:mi>15</m:mi>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> (or -32768).</para>
+            <para>In order to avoid this error we need an explicit type conversion (a so called cast):</para>
 
-              <para>In order to avoid this error we need an explicit type conversion (a so called cast):</para>
+            <programlisting language="java">short minumum = (short) 0B10000000_00000000;</programlisting>
 
-              <programlisting language="java">short minumum = (short) 0B10000000_00000000;</programlisting>
+            <para>Since a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable's range is <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>[</m:mo>
 
-              <para>Since a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable's range is <inlineequation>
-                  <m:math display="inline">
                     <m:mrow>
-                      <m:mo>[</m:mo>
-
                       <m:mrow>
-                        <m:mrow>
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>15</m:mi>
-                          </m:msup>
-                        </m:mrow>
+                          <m:mi>15</m:mi>
+                        </m:msup>
+                      </m:mrow>
 
-                        <m:mo>,</m:mo>
+                      <m:mo>,</m:mo>
 
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>15</m:mi>
-                          </m:msup>
+                          <m:mi>15</m:mi>
+                        </m:msup>
 
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
+                        <m:mi>1</m:mi>
                       </m:mrow>
-
-                      <m:mo>]</m:mo>
                     </m:mrow>
-                  </m:math>
-                </inlineequation> we may as well use a unary minus sign instead:</para>
 
-              <programlisting language="java">short minumum = -0B10000000_00000000;</programlisting>
+                    <m:mo>]</m:mo>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> we may as well use a unary minus sign instead:</para>
 
-              <para>Both variants are syntactically correct and will thus compile. However they are likely not being intended by our programmer.</para>
+            <programlisting language="java">short minumum = -0B10000000_00000000;</programlisting>
 
-              <para>The error in the first place is probably assigning a value of <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>+</m:mo>
+            <para>Both variants are syntactically correct and will thus compile. However they are likely not being intended by our programmer.</para>
 
-                      <m:msup>
-                        <m:mi>2</m:mi>
+            <para>The error in the first place is probably assigning a value of <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>+</m:mo>
 
-                        <m:mi>15</m:mi>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable at all.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaBracesInPrintln">
-        <title>Why using braces inside <code>System.out.println(...)</code> ?</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Solution <xref linkend="sd1QandaBinaryIntLiteral"/> contains:</para>
-
-              <programlisting language="java">...
+                    <m:msup>
+                      <m:mi>2</m:mi>
+
+                      <m:mi>15</m:mi>
+                    </m:msup>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable at all.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaBracesInPrintln">
+      <title>Why using braces inside <code>System.out.println(...)</code> ?</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Solution <xref linkend="sd1QandaBinaryIntLiteral"/> contains:</para>
+
+            <programlisting language="java">...
 System.out.println("Decimal:" +  (512 +
                                    256 +
                                      128 +
                                        32 +
                                           4)); ...</programlisting>
 
-              <para>Why are the <quote>inner</quote> braces immediately preceding 512 and following 4 are being required?</para>
+            <para>Why are the <quote>inner</quote> braces immediately preceding 512 and following 4 are being required?</para>
 
-              <tip>
-                <itemizedlist>
-                  <listitem>
-                    <para>Execute the above code omitting the <quote>inner</quote> braces.</para>
-                  </listitem>
+            <tip>
+              <itemizedlist>
+                <listitem>
+                  <para>Execute the above code omitting the <quote>inner</quote> braces.</para>
+                </listitem>
 
-                  <listitem>
-                    <para>Read about the <quote>+</quote> operator's role e.g. in <code>System.out.println("Some" + " string").</code></para>
-                  </listitem>
-                </itemizedlist>
-              </tip>
-            </question>
+                <listitem>
+                  <para>Read about the <quote>+</quote> operator's role e.g. in <code>System.out.println("Some" + " string").</code></para>
+                </listitem>
+              </itemizedlist>
+            </tip>
+          </question>
 
-            <answer>
-              <para>We start omitting the <quote>inner</quote> braces:</para>
+          <answer>
+            <para>We start omitting the <quote>inner</quote> braces:</para>
 
-              <programlisting language="java">...
+            <programlisting language="java">...
 System.out.println("Decimal:" +  512 +
                                    256 +
                                      128 +
                                        32 +
                                           4); ...</programlisting>
 
-              <para>This results in the following output:</para>
+            <para>This results in the following output:</para>
 
-              <screen>...
+            <screen>...
 Decimal:512256128324</screen>
 
-              <para>The numbers are being treated as strings rather than integer values The above code is equivalent to:</para>
+            <para>The numbers are being treated as strings rather than integer values The above code is equivalent to:</para>
 
-              <programlisting language="java">...
+            <programlisting language="java">...
 System.out.println("Decimal:" +  "512" +
                                       "256" +
                                         "128" +
                                           "32" +
                                              "4"); ...</programlisting>
 
-              <para>The <quote>+</quote> operator between two strings defines their concatenation. So all six components get joined into a single result string.</para>
+            <para>The <quote>+</quote> operator between two strings defines their concatenation. So all six components get joined into a single result string.</para>
 
-              <para>Supplying additional inner braces defines an expression (512 + 256 + 128 + 32 + 4) solely involving integer values. In this context each <quote>+</quote> operator effects the usual integer arithmetic:</para>
+            <para>Supplying additional inner braces defines an expression (512 + 256 + 128 + 32 + 4) solely involving integer values. In this context each <quote>+</quote> operator effects the usual integer arithmetic:</para>
 
-              <programlisting language="java">...
+            <programlisting language="java">...
 System.out.println("Decimal:" +<co linkends="sd1ListingPlusOpDuplicate-1" xml:id="sd1ListingPlusOpDuplicate-1-co"/> (512 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-2-co"/>
                                       256 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-3-co"/>
                                          128 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-4-co"/>
                                             32 +<co linkends="sd1ListingPlusOpDuplicate-2" xml:id="sd1ListingPlusOpDuplicate-5-co"/>
                                                4)); ...</programlisting>
 
-              <calloutlist>
-                <callout arearefs="sd1ListingPlusOpDuplicate-1-co" xml:id="sd1ListingPlusOpDuplicate-1">
-                  <para><quote>+</quote> operator concatenating the two strings <code>"Decimal:"</code> and <code>"932"</code>.</para>
-                </callout>
-
-                <callout arearefs="sd1ListingPlusOpDuplicate-2-co sd1ListingPlusOpDuplicate-3-co sd1ListingPlusOpDuplicate-4-co sd1ListingPlusOpDuplicate-5-co" xml:id="sd1ListingPlusOpDuplicate-2">
-                  <para><quote>+</quote> operators computing the integer sum of 512, 256, 128, 32 and 4 yielding a value of 932. This value subsequently gets transformed into the String <code>"932"</code> in order to be compatible with the preceding <code>"Decimal:"</code> string.</para>
-                </callout>
-              </calloutlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaStringVariableMix">
-        <title>Composing strings of literals and variables</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code:</para>
-
-              <programlisting language="java">public static void main(String[] args) {
+            <calloutlist>
+              <callout arearefs="sd1ListingPlusOpDuplicate-1-co" xml:id="sd1ListingPlusOpDuplicate-1">
+                <para><quote>+</quote> operator concatenating the two strings <code>"Decimal:"</code> and <code>"932"</code>.</para>
+              </callout>
+
+              <callout arearefs="sd1ListingPlusOpDuplicate-2-co sd1ListingPlusOpDuplicate-3-co sd1ListingPlusOpDuplicate-4-co sd1ListingPlusOpDuplicate-5-co" xml:id="sd1ListingPlusOpDuplicate-2">
+                <para><quote>+</quote> operators computing the integer sum of 512, 256, 128, 32 and 4 yielding a value of 932. This value subsequently gets transformed into the String <code>"932"</code> in order to be compatible with the preceding <code>"Decimal:"</code> string.</para>
+              </callout>
+            </calloutlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaStringVariableMix">
+      <title>Composing strings of literals and variables</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code:</para>
+
+            <programlisting language="java">public static void main(String[] args) {
    final int games = 3, playersPerGame = 22;
 
    // ToDo ...
 }</programlisting>
 
-              <para>Complete the above snippet by adding code to produce the following output:</para>
+            <para>Complete the above snippet by adding code to produce the following output:</para>
 
-              <screen>3 Games having 22 players each results in 66 players altogether.</screen>
+            <screen>3 Games having 22 players each results in 66 players altogether.</screen>
 
-              <para>Write your code in a way that changing i.e. <code>final int games = 4</code> will result in a corresponding change of output.</para>
-            </question>
+            <para>Write your code in a way that changing i.e. <code>final int games = 4</code> will result in a corresponding change of output.</para>
+          </question>
 
-            <answer>
-              <programlisting language="java">public static void main(String[] args) {
+          <answer>
+            <programlisting language="java">public static void main(String[] args) {
    final int games = 3, playersPerGame = 22;
 
    System.out.println(games + " Games having " + playersPerGame
          + " players each results in " + games * playersPerGame
          + " players altogether.");
 }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaStringEscapeDoubleQuote">
-        <title>Escaping double quotes</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaStringEscapeDoubleQuote">
+      <title>Escaping double quotes</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code:</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
    System.out.println("Some 'special' words.");
 }</programlisting>
 
-              <para>The corresponding output will be <computeroutput>Some 'special' words.</computeroutput>. Change the above code to replace the single quotes by double quotes producing the output <computeroutput>Some "special" words.</computeroutput> instead.</para>
-
-              <tip>
-                <para>Hunt for <quote>java escape double quote</quote> and read about <link xlink:href="https://proquest.safaribooksonline.com/book/programming/java/9780992133047/chapter-2-language-fundamentals/toc6_html_2#readertoolbar2">character literals</link>.</para>
-              </tip>
-            </question>
-
-            <answer>
-              <para>There are at least two solutions on offer:</para>
-
-              <glosslist>
-                <glossentry>
-                  <glossterm>Perfectly obvious</glossterm>
-
-                  <glossdef>
-                    <para>Inside a string literal the string terminating character (") may be escaped using backslashes:</para>
-
-                    <programlisting language="java">System.out.println("Some \"special\" words.");</programlisting>
-                  </glossdef>
-                </glossentry>
-
-                <glossentry>
-                  <glossterm>Even more clumsy</glossterm>
-
-                  <glossdef>
-                    <para>Double quotes may be also represented by their char (not string!) literal:</para>
-
-                    <programlisting language="java">System.out.println("Some " + '"' + "special" + '"' + " words.");</programlisting>
-                  </glossdef>
-                </glossentry>
-              </glosslist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaStringSuppExercise">
-        <title>Supplementary string exercises</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para xml:id="sw1QandaStringCodingBatExtra">Solve the following external exercises:</para>
-
-              <itemizedlist>
-                <listitem>
-                  <para xlink:href="http://codingbat.com/prob/p171896">helloName</para>
-                </listitem>
-
-                <listitem>
-                  <para xlink:href="http://codingbat.com/prob/p161056">makeAbba</para>
-                </listitem>
-
-                <listitem>
-                  <para xlink:href="http://codingbat.com/prob/p147483">makeTags</para>
-                </listitem>
-              </itemizedlist>
-            </question>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_exerciseEmoticons">
-        <title><xref linkend="glo_unicode"/> and emoticons</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Referring to <xref linkend="sd1_fig_unicodeSample"/> we may use a corresponding <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link> representing Arabic:</para>
-
-              <programlisting language="java">final char arabicChar = 'ڜ'; // A <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link>
+            <para>The corresponding output will be <computeroutput>Some 'special' words.</computeroutput>. Change the above code to replace the single quotes by double quotes producing the output <computeroutput>Some "special" words.</computeroutput> instead.</para>
+
+            <tip>
+              <para>Hunt for <quote>java escape double quote</quote> and read about <link xlink:href="https://proquest.safaribooksonline.com/book/programming/java/9780992133047/chapter-2-language-fundamentals/toc6_html_2#readertoolbar2">character literals</link>.</para>
+            </tip>
+          </question>
+
+          <answer>
+            <para>There are at least two solutions on offer:</para>
+
+            <glosslist>
+              <glossentry>
+                <glossterm>Perfectly obvious</glossterm>
+
+                <glossdef>
+                  <para>Inside a string literal the string terminating character (") may be escaped using backslashes:</para>
+
+                  <programlisting language="java">System.out.println("Some \"special\" words.");</programlisting>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm>Even more clumsy</glossterm>
+
+                <glossdef>
+                  <para>Double quotes may be also represented by their char (not string!) literal:</para>
+
+                  <programlisting language="java">System.out.println("Some " + '"' + "special" + '"' + " words.");</programlisting>
+                </glossdef>
+              </glossentry>
+            </glosslist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaStringSuppExercise">
+      <title>Supplementary string exercises</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para xml:id="sw1QandaStringCodingBatExtra">Solve the following external exercises:</para>
+
+            <itemizedlist>
+              <listitem>
+                <para xlink:href="http://codingbat.com/prob/p171896">helloName</para>
+              </listitem>
+
+              <listitem>
+                <para xlink:href="http://codingbat.com/prob/p161056">makeAbba</para>
+              </listitem>
+
+              <listitem>
+                <para xlink:href="http://codingbat.com/prob/p147483">makeTags</para>
+              </listitem>
+            </itemizedlist>
+          </question>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_exerciseEmoticons">
+      <title><xref linkend="glo_unicode"/> and emoticons</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Referring to <xref linkend="sd1_fig_unicodeSample"/> we may use a corresponding <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link> representing Arabic:</para>
+
+            <programlisting language="java">final char arabicChar = 'ڜ'; // A <link xlink:href="https://en.wikibooks.org/wiki/Java_Programming/Literals#Character_Literals">character literal</link>
 System.out.println("Character: " + arabicChar);</programlisting>
 
-              <para>Execution yields the expected output. On contrary the following code snippet using the smiley instead does not even compile:</para>
+            <para>Execution yields the expected output. On contrary the following code snippet using the smiley instead does not even compile:</para>
 
-              <mediaobject>
-                <imageobject>
-                  <imagedata fileref="Ref/LangFundament/emoticonInvalidCharacterConstant.png"/>
-                </imageobject>
-              </mediaobject>
+            <mediaobject>
+              <imageobject>
+                <imagedata fileref="Ref/LangFundament/emoticonInvalidCharacterConstant.png"/>
+              </imageobject>
+            </mediaobject>
 
-              <para>Explain the underlying problem.</para>
+            <para>Explain the underlying problem.</para>
 
-              <tip>
-                <para>Consider the number of bytes being allocated for representing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values in <xref linkend="glo_Java"/>.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Consider the number of bytes being allocated for representing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values in <xref linkend="glo_Java"/>.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Arabic_(Unicode_block)#Block">Arabic block</link> table the code point of <code>'ڜ'</code> is U+069C having a decimal equivalent of 1692.</para>
+          <answer>
+            <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Arabic_(Unicode_block)#Block">Arabic block</link> table the code point of <code>'ڜ'</code> is U+069C having a decimal equivalent of 1692.</para>
 
-              <para><xref linkend="glo_Java"/> uses two bytes equivalent to 16 bits for representing positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values. Thus the largest representable code point value is <inlineequation>
-                  <m:math display="inline">
+            <para><xref linkend="glo_Java"/> uses two bytes equivalent to 16 bits for representing positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> values. Thus the largest representable code point value is <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
                     <m:mrow>
-                      <m:mrow>
-                        <m:msup>
-                          <m:mi>2</m:mi>
+                      <m:msup>
+                        <m:mi>2</m:mi>
 
-                          <m:mi>16</m:mi>
-                        </m:msup>
+                        <m:mi>16</m:mi>
+                      </m:msup>
 
-                        <m:mo>-</m:mo>
+                      <m:mo>-</m:mo>
 
-                        <m:mi>1</m:mi>
-                      </m:mrow>
+                      <m:mi>1</m:mi>
+                    </m:mrow>
 
-                      <m:mo>=</m:mo>
+                    <m:mo>=</m:mo>
 
-                      <m:mi>65535</m:mi>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>. So <code>'ڜ'</code> fits well into this range.</para>
+                    <m:mi>65535</m:mi>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>. So <code>'ڜ'</code> fits well into this range.</para>
 
-              <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Emoticons_(Unicode_block)">Emoticons table</link> the smiley's code point value is U+1F60E being equivalent to 128526 decimal. This exceeds the limit of 65535 and thus prohibits the character literal in question.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>According to the <link xlink:href="https://en.wikipedia.org/wiki/Emoticons_(Unicode_block)">Emoticons table</link> the smiley's code point value is U+1F60E being equivalent to 128526 decimal. This exceeds the limit of 65535 and thus prohibits the character literal in question.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_romanNumerals">
-        <title>Just kidding ...</title>
+    <figure xml:id="sd1_fig_romanNumerals">
+      <title>Just kidding ...</title>
 
-        <programlisting language="java">int year = MMXIV; // <link xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman numerals</link> representation
+      <programlisting language="java">int year = MMXIV; // <link xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman numerals</link> representation
 
 System.out.println("Olympic winter games: " + year);</programlisting>
 
-        <screen>Olympic winter games: 2014</screen>
-      </figure>
-    </section>
+      <screen>Olympic winter games: 2014</screen>
+    </figure>
+  </section>
 
-    <section xml:id="sd1_sect_arithmeticLimitations">
-      <title>Arithmetic limitations</title>
+  <section xml:id="sd1_sect_arithmeticLimitations">
+    <title>Arithmetic limitations</title>
 
-      <para>Expect the unexpected:</para>
+    <para>Expect the unexpected:</para>
 
-      <figure xml:id="sd1_fig_byteLitteralAssign">
-        <title>Strange things</title>
+    <figure xml:id="sd1_fig_byteLitteralAssign">
+      <title>Strange things</title>
 
-        <programlisting language="java">byte count = 91;   // o.K.
+      <programlisting language="java">byte count = 91;   // o.K.
 
 byte points = 130; // Compile error: Incompatible types
                    // Required: byte Found: int</programlisting>
-      </figure>
+    </figure>
 
-      <figure xml:id="sd1_fig_byteOverflow">
-        <title>Overflow</title>
+    <figure xml:id="sd1_fig_byteOverflow">
+      <title>Overflow</title>
 
-        <programlisting language="java">int count  = 2147483647;
+      <programlisting language="java">int count  = 2147483647;
 int points = 2147483647;
 
 int sum = count + points;
 System.out.println("Sum = "   +  sum);</programlisting>
 
-        <para>Result:</para>
+      <para>Result:</para>
 
-        <informaltable border="1">
-          <tr>
-            <td valign="top"><screen>Sum = -2</screen></td>
+      <informaltable border="1">
+        <tr>
+          <td valign="top"><screen>Sum = -2</screen></td>
 
-            <td><screen>  01111111_11111111_11111111_11111111
+          <td><screen>  01111111_11111111_11111111_11111111
 + 01111111_11111111_11111111_11111111
 _____________________________________
 1_11111111_11111111_11111111_11111110</screen></td>
-          </tr>
-        </informaltable>
-      </figure>
+        </tr>
+      </informaltable>
+    </figure>
 
-      <para>This exceeds the four byte limit of int variables. Thus the leading <quote>1</quote> will be discarded leaving us with a result of <code>11111111_11111111_11111111_11111110</code> equalling -2 with respect to four byte integer two complement representation.</para>
+    <para>This exceeds the four byte limit of int variables. Thus the leading <quote>1</quote> will be discarded leaving us with a result of <code>11111111_11111111_11111111_11111110</code> equalling -2 with respect to four byte integer two complement representation.</para>
 
-      <para>Why not using float / double in favour of bounded <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> for arithmetics?</para>
+    <para>Why not using float / double in favour of bounded <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>, <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> for arithmetics?</para>
 
-      <figure xml:id="sd1_fig_floatPrecision">
-        <title>Limited precision</title>
+    <figure xml:id="sd1_fig_floatPrecision">
+      <title>Limited precision</title>
 
-        <programlisting language="java">float float2Power31 = Integer.MAX_VALUE + 1f;
+      <programlisting language="java">float float2Power31 = Integer.MAX_VALUE + 1f;
 
 float floatDoubleMAX_VALUE = 2 * float2Power31* float2Power31 - 1f; // 2^63 - 1
 
 System.out.format( "   Float value: %f\n", floatDoubleMAX_VALUE);
 System.out.println("Expected value: "   +  Long.MAX_VALUE);</programlisting>
 
-        <para>Result:</para>
+      <para>Result:</para>
 
-        <screen>   Float value: 9223372036854776000.000000
+      <screen>   Float value: 9223372036854776000.000000
 Expected value: 9223372036854775807</screen>
-      </figure>
-
-      <figure xml:id="sd1_fig_floatConverter">
-        <title><uri xlink:href="https://www.h-schmidt.net/FloatConverter">FloatConverter</uri></title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/floatConverter.png"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-    </section>
-
-    <section xml:id="sectConversions">
-      <title>Conversions</title>
-
-      <figure xml:id="fig_WideningByte2Short">
-        <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/byte2short.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <figure xml:id="fig_WideningChar2Short">
-        <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/char2short.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <figure xml:id="fig_NarrowingInt2Char">
-        <title>Narrowing from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/int2char.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <qandaset defaultlabel="qanda" xml:id="qandaNarrowingInt2Char">
-        <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> narrowing problems</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Reconsidering <xref linkend="fig_NarrowingInt2Char"/> we observe the following two related snippets yielding compile time errors</para>
-
-              <orderedlist>
-                <listitem>
-                  <programlisting language="java">int i = 65;
+    </figure>
+
+    <figure xml:id="sd1_fig_floatConverter">
+      <title><uri xlink:href="https://www.h-schmidt.net/FloatConverter">FloatConverter</uri></title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/floatConverter.png"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+  </section>
+
+  <section xml:id="sectConversions">
+    <title>Conversions</title>
+
+    <figure xml:id="fig_WideningByte2Short">
+      <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/byte2short.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+
+    <figure xml:id="fig_WideningChar2Short">
+      <title>Widening from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code></title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/char2short.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+
+    <figure xml:id="fig_NarrowingInt2Char">
+      <title>Narrowing from <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code></title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/int2char.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+
+    <qandaset defaultlabel="qanda" xml:id="qandaNarrowingInt2Char">
+      <title><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> narrowing problems</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Reconsidering <xref linkend="fig_NarrowingInt2Char"/> we observe the following two related snippets yielding compile time errors</para>
+
+            <orderedlist>
+              <listitem>
+                <programlisting language="java">int i = 65;
 char c = i;</programlisting>
-                </listitem>
+              </listitem>
 
-                <listitem>
-                  <programlisting language="java">char c = 66200;</programlisting>
+              <listitem>
+                <programlisting language="java">char c = 66200;</programlisting>
 
-                  <para>On contrary the following code compiles well:</para>
+                <para>On contrary the following code compiles well:</para>
 
-                  <programlisting language="java">char c = 64200;</programlisting>
-                </listitem>
-              </orderedlist>
+                <programlisting language="java">char c = 64200;</programlisting>
+              </listitem>
+            </orderedlist>
 
-              <para>Explain these errors and their underlying reasons and provide a solution if possible.</para>
+            <para>Explain these errors and their underlying reasons and provide a solution if possible.</para>
 
-              <tip>
-                <para>Which data types are involved? Think about narrowing conversions and <link xlink:href="http://www.studytonight.com/java/type-casting-in-java">type casting</link>.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Which data types are involved? Think about narrowing conversions and <link xlink:href="http://www.studytonight.com/java/type-casting-in-java">type casting</link>.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <itemizedlist>
-                <listitem>
-                  <para>Assigning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> variable effectively narrows from four to two bytes and is thus prohibited. A fix requires an explicit type cast:</para>
+          <answer>
+            <itemizedlist>
+              <listitem>
+                <para>Assigning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> variable effectively narrows from four to two bytes and is thus prohibited. A fix requires an explicit type cast:</para>
 
-                  <programlisting language="java">int i = 65;
+                <programlisting language="java">int i = 65;
 char c = (char) i;</programlisting>
-                </listitem>
+              </listitem>
 
-                <listitem>
-                  <para>We consider the binary representations of 66200 and 64200:</para>
+              <listitem>
+                <para>We consider the binary representations of 66200 and 64200:</para>
 
-                  <programlisting language="java">System.out.println(Integer.toBinaryString(66200)); // Yields 1_00000010_10011000
+                <programlisting language="java">System.out.println(Integer.toBinaryString(66200)); // Yields 1_00000010_10011000
 System.out.println(Integer.toBinaryString(64200)); // Yields   11111010_11001000</programlisting>
 
-                  <para>Thus 64200 fits into a two byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> whereas 66200 does not.</para>
-                </listitem>
-              </itemizedlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                <para>Thus 64200 fits into a two byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-E">char</code> whereas 66200 does not.</para>
+              </listitem>
+            </itemizedlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="qandaNarrowing137toByte">
-        <title><code>Get a byte from 137</code></title>
+    <qandaset defaultlabel="qanda" xml:id="qandaNarrowing137toByte">
+      <title><code>Get a byte from 137</code></title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider:</para>
 
-              <programlisting language="java">int i = 139;
+            <programlisting language="java">int i = 139;
 byte b = (byte) i;
 System.out.println(b);</programlisting>
 
-              <para>Explain in detail why execution results in a value of <computeroutput>-117</computeroutput>.</para>
-            </question>
+            <para>Explain in detail why execution results in a value of <computeroutput>-117</computeroutput>.</para>
+          </question>
 
-            <answer>
-              <para>A four byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> representation of 139 reads <code>00000000_00000000_00000000_10001011</code>. The cast <code>b = (byte) i</code> will strip the leading three bytes leaving <code>b</code> containing <code>10001011</code>.</para>
+          <answer>
+            <para>A four byte <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> representation of 139 reads <code>00000000_00000000_00000000_10001011</code>. The cast <code>b = (byte) i</code> will strip the leading three bytes leaving <code>b</code> containing <code>10001011</code>.</para>
 
-              <para>Since byte values in <xref linkend="glo_Java"/> are being represented as signed values using two-complement notation this equals decimal -117.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>Since byte values in <xref linkend="glo_Java"/> are being represented as signed values using two-complement notation this equals decimal -117.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_ArianeErrorMimic">
-        <title><code>Ariane, I miss you!</code></title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_ArianeErrorMimic">
+      <title><code>Ariane, I miss you!</code></title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Reconsidering the <link xlink:href="https://www.youtube.com/watch?v=PK_yguLapgA&amp;t=111">Ariane 5 maiden flight crash</link> read the comment buried in the solution of <xref linkend="sw1QandaTinyIntRepresent"/>. Try to mimic a code portion in <xref linkend="glo_Java"/> showing the catastrophic error.</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Reconsidering the <link xlink:href="https://www.youtube.com/watch?v=PK_yguLapgA&amp;t=111">Ariane 5 maiden flight crash</link> read the comment buried in the solution of <xref linkend="sw1QandaTinyIntRepresent"/>. Try to mimic a code portion in <xref linkend="glo_Java"/> showing the catastrophic error.</para>
 
-              <para>Start with a <code>double</code> variable using a value being suitable to be assigned to a <code>short</code> variable using a cast (narrowing).</para>
+            <para>Start with a <code>double</code> variable using a value being suitable to be assigned to a <code>short</code> variable using a cast (narrowing).</para>
 
-              <para>Then in a second step raise this value breaking your short variable's upper limit.</para>
-            </question>
+            <para>Then in a second step raise this value breaking your short variable's upper limit.</para>
+          </question>
 
-            <answer>
-              <para>We start from:</para>
+          <answer>
+            <para>We start from:</para>
 
-              <programlisting language="java">double level = 2331.12; // smaller than 32767 == Short.MAX_VALUE
+            <programlisting language="java">double level = 2331.12; // smaller than 32767 == Short.MAX_VALUE
 
 short value = (short) level;
 
 System.out.println(value);</programlisting>
 
-              <para>Execution yields an expected integer output of <computeroutput>2331</computeroutput>. However increasing our <code>level</code> variable's value from 2331.12 to 42331.12 yields an output of <computeroutput>-23205</computeroutput> due to an overflow.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>Execution yields an expected integer output of <computeroutput>2331</computeroutput>. However increasing our <code>level</code> variable's value from 2331.12 to 42331.12 yields an output of <computeroutput>-23205</computeroutput> due to an overflow.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaLong2Float">
-        <title>Reducing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> (difficult)</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaLong2Float">
+      <title>Reducing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> (difficult)</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>For changing a map's scale from fine to coarse Joe programmer intends to map positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. This requires scaling down <quote>half</quote> the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> data type's range <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>[</m:mo>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>For changing a map's scale from fine to coarse Joe programmer intends to map positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values to <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values. This requires scaling down <quote>half</quote> the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> data type's range <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>[</m:mo>
 
-                      <m:mrow>
-                        <m:mn>0</m:mn>
+                    <m:mrow>
+                      <m:mn>0</m:mn>
 
-                        <m:mo>,</m:mo>
+                      <m:mo>,</m:mo>
 
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>63</m:mi>
-                          </m:msup>
+                          <m:mi>63</m:mi>
+                        </m:msup>
 
-                          <m:mo>-</m:mo>
+                        <m:mo>-</m:mo>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
+                        <m:mi>1</m:mi>
                       </m:mrow>
-
-                      <m:mo>]</m:mo>
                     </m:mrow>
-                  </m:math>
-                </inlineequation> to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s range of <inlineequation>
-                  <m:math display="inline">
+
+                    <m:mo>]</m:mo>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>'s range of <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>[</m:mo>
+
                     <m:mrow>
-                      <m:mo>[</m:mo>
+                      <m:mn>0</m:mn>
+
+                      <m:mo>,</m:mo>
 
                       <m:mrow>
-                        <m:mn>0</m:mn>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                        <m:mo>,</m:mo>
+                          <m:mi>31</m:mi>
+                        </m:msup>
 
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>31</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:mrow>
 
-                          <m:mo>-</m:mo>
+                    <m:mo>]</m:mo>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>:</para>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:mrow>
+            <informaltable border="1">
+              <colgroup width="25%"/>
 
-                      <m:mo>]</m:mo>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>:</para>
+              <colgroup width="30%"/>
 
-              <informaltable border="1">
-                <colgroup width="25%"/>
+              <colgroup width="15%"/>
 
-                <colgroup width="30%"/>
+              <colgroup width="30%"/>
 
-                <colgroup width="15%"/>
+              <tr>
+                <th colspan="2">From</th>
 
-                <colgroup width="30%"/>
+                <th colspan="2">To</th>
+              </tr>
 
-                <tr>
-                  <th colspan="2">From</th>
+              <tr>
+                <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></th>
 
-                  <th colspan="2">To</th>
-                </tr>
+                <th><code>remark</code></th>
 
-                <tr>
-                  <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code></th>
+                <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></th>
 
-                  <th><code>remark</code></th>
+                <th>remark</th>
+              </tr>
 
-                  <th><code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code></th>
+              <tr>
+                <td align="right">0</td>
 
-                  <th>remark</th>
-                </tr>
+                <td align="right"/>
 
-                <tr>
-                  <td align="right">0</td>
+                <td align="right">0</td>
 
-                  <td align="right"/>
+                <td align="right"/>
+              </tr>
 
-                  <td align="right">0</td>
+              <tr>
+                <td align="right">1</td>
 
-                  <td align="right"/>
-                </tr>
+                <td align="right"/>
 
-                <tr>
-                  <td align="right">1</td>
+                <td align="right">0</td>
 
-                  <td align="right"/>
+                <td align="right"/>
+              </tr>
 
-                  <td align="right">0</td>
+              <tr>
+                <td align="center" colspan="2">...</td>
 
-                  <td align="right"/>
-                </tr>
+                <td align="right">0</td>
 
-                <tr>
-                  <td align="center" colspan="2">...</td>
+                <td align="right"/>
+              </tr>
 
-                  <td align="right">0</td>
+              <tr>
+                <td align="right">4294967295</td>
 
-                  <td align="right"/>
-                </tr>
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                <tr>
-                  <td align="right">4294967295</td>
+                          <m:mi>32</m:mi>
+                        </m:msup>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>32</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation></td>
 
-                          <m:mo>-</m:mo>
+                <td align="right">0</td>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation></td>
+                <td align="right"/>
+              </tr>
 
-                  <td align="right">0</td>
+              <tr>
+                <td align="right">4294967296</td>
 
-                  <td align="right"/>
-                </tr>
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:msup>
+                        <m:mi>2</m:mi>
 
-                <tr>
-                  <td align="right">4294967296</td>
+                        <m:mi>32</m:mi>
+                      </m:msup>
+                    </m:math>
+                  </inlineequation></td>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
+                <td align="right">1</td>
+
+                <td align="right"/>
+              </tr>
+
+              <tr>
+                <td align="right">4294967297</td>
+
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
                         <m:msup>
                           <m:mi>2</m:mi>
 
                           <m:mi>32</m:mi>
                         </m:msup>
-                      </m:math>
-                    </inlineequation></td>
 
-                  <td align="right">1</td>
+                        <m:mo>+</m:mo>
 
-                  <td align="right"/>
-                </tr>
-
-                <tr>
-                  <td align="right">4294967297</td>
-
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
-
-                            <m:mi>32</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation></td>
 
-                          <m:mo>+</m:mo>
+                <td align="right">1</td>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation></td>
+                <td align="right"/>
+              </tr>
 
-                  <td align="right">1</td>
+              <tr>
+                <td align="center" colspan="4">...</td>
+              </tr>
 
-                  <td align="right"/>
-                </tr>
+              <tr>
+                <td align="right">9223372036854775806</td>
 
-                <tr>
-                  <td align="center" colspan="4">...</td>
-                </tr>
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                <tr>
-                  <td align="right">9223372036854775806</td>
+                          <m:mi>63</m:mi>
+                        </m:msup>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>63</m:mi>
-                          </m:msup>
+                        <m:mi>2</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> or <code xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></code> - 1</td>
 
-                          <m:mo>-</m:mo>
+                <td align="right">2147483647</td>
 
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
                           <m:mi>2</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> or <code xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE"><varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></code> - 1</td>
 
-                  <td align="right">2147483647</td>
+                          <m:mi>31</m:mi>
+                        </m:msup>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>31</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td>
+              </tr>
 
-                          <m:mo>-</m:mo>
+              <tr>
+                <td align="right">9223372036854775807</td>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td>
-                </tr>
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                <tr>
-                  <td align="right">9223372036854775807</td>
+                          <m:mi>63</m:mi>
+                        </m:msup>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>63</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></td>
 
-                          <m:mo>-</m:mo>
+                <td align="right">2147483647</td>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Long.MAX_VALUE">Long.MAX_VALUE</varname></td>
+                <td align="right"><inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                  <td align="right">2147483647</td>
+                          <m:mi>31</m:mi>
+                        </m:msup>
 
-                  <td align="right"><inlineequation>
-                      <m:math display="inline">
-                        <m:mrow>
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                        <m:mo>-</m:mo>
 
-                            <m:mi>31</m:mi>
-                          </m:msup>
+                        <m:mi>1</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td>
+              </tr>
+            </informaltable>
 
-                          <m:mo>-</m:mo>
+            <para>Joe's idea is dividing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values by <inlineequation>
+                <m:math display="inline">
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:math>
-                    </inlineequation> or <varname xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</varname></td>
-                </tr>
-              </informaltable>
+                    <m:mi>32</m:mi>
+                  </m:msup>
+                </m:math>
+              </inlineequation>. As a result a long value of <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>-</m:mo>
 
-              <para>Joe's idea is dividing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> values by <inlineequation>
-                  <m:math display="inline">
                     <m:msup>
                       <m:mi>2</m:mi>
 
-                      <m:mi>32</m:mi>
+                      <m:mi>63</m:mi>
                     </m:msup>
-                  </m:math>
-                </inlineequation>. As a result a long value of <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>-</m:mo>
-
-                      <m:msup>
-                        <m:mi>2</m:mi>
-
-                        <m:mi>63</m:mi>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> will be reduced to the intended value of <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>-</m:mo>
-
-                      <m:msup>
-                        <m:mi>2</m:mi>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> will be reduced to the intended value of <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mo>-</m:mo>
 
-                        <m:mi>31</m:mi>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>. Since <inlineequation>
-                  <m:math display="inline">
                     <m:msup>
                       <m:mi>2</m:mi>
 
-                      <m:mi>32</m:mi>
+                      <m:mi>31</m:mi>
                     </m:msup>
-                  </m:math>
-                </inlineequation> seems to be equal to <code>2 * (<link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</link> + 1))</code> (why?) Joe's first attempt reads:</para>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>. Since <inlineequation>
+                <m:math display="inline">
+                  <m:msup>
+                    <m:mi>2</m:mi>
+
+                    <m:mi>32</m:mi>
+                  </m:msup>
+                </m:math>
+              </inlineequation> seems to be equal to <code>2 * (<link xlink:href="https://docs.oracle.com/javase/8/docs/api/constant-values.html#java.lang.Integer.MAX_VALUE">Integer.MAX_VALUE</link> + 1))</code> (why?) Joe's first attempt reads:</para>
 
-              <programlisting language="java" linenumbering="numbered" startinglinenumber="26">final long longValue = 2147483648L;
+            <programlisting language="java" linenumbering="numbered" startinglinenumber="26">final long longValue = 2147483648L;
 final int reducedValue = (int) (longValue / (2 * (Integer.MAX_VALUE + 1)));
 System.out.println(reducedValue);</programlisting>
 
-              <para>Unfortunately the results are not promising. This code merely results in a runtime error:</para>
+            <para>Unfortunately the results are not promising. This code merely results in a runtime error:</para>
 
-              <screen>/usr/lib/jvm/java-8-oracle/bin/java ...
+            <screen>/usr/lib/jvm/java-8-oracle/bin/java ...
 Exception in thread "main" java.lang.ArithmeticException: / by zero
 	at qq.App.main(App.java:27)
 
 Process finished with exit code 1</screen>
 
-              <para>Explain the underlying problem and correct Joe's error.</para>
+            <para>Explain the underlying problem and correct Joe's error.</para>
 
-              <tip>
-                <para>It may be helpful thinking of a smaller example before. Consider two hypothetic signed integer types <quote>TinyLong</quote> and <quote>TinyInt</quote> of four and two bits respectively. The corresponding mapping will be:</para>
+            <tip>
+              <para>It may be helpful thinking of a smaller example before. Consider two hypothetic signed integer types <quote>TinyLong</quote> and <quote>TinyInt</quote> of four and two bits respectively. The corresponding mapping will be:</para>
 
-                <informaltable border="1">
-                  <colgroup width="20%"/>
+              <informaltable border="1">
+                <colgroup width="20%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <colgroup width="5%"/>
+                <colgroup width="5%"/>
 
-                  <tr>
-                    <td><quote>TinyLong</quote>, n = 4</td>
+                <tr>
+                  <td><quote>TinyLong</quote>, n = 4</td>
 
-                    <td>-8</td>
+                  <td>-8</td>
 
-                    <td>-7</td>
+                  <td>-7</td>
 
-                    <td>-6</td>
+                  <td>-6</td>
 
-                    <td>-5</td>
+                  <td>-5</td>
 
-                    <td>-4</td>
+                  <td>-4</td>
 
-                    <td>-3</td>
+                  <td>-3</td>
 
-                    <td>-2</td>
+                  <td>-2</td>
 
-                    <td>-1</td>
+                  <td>-1</td>
 
-                    <td>0</td>
+                  <td>0</td>
 
-                    <td>1</td>
+                  <td>1</td>
 
-                    <td>2</td>
+                  <td>2</td>
 
-                    <td>3</td>
+                  <td>3</td>
 
-                    <td>4</td>
+                  <td>4</td>
 
-                    <td>5</td>
+                  <td>5</td>
 
-                    <td>6</td>
+                  <td>6</td>
 
-                    <td>7</td>
-                  </tr>
+                  <td>7</td>
+                </tr>
 
-                  <tr>
-                    <td><quote>TinyInt</quote>, n = 2</td>
+                <tr>
+                  <td><quote>TinyInt</quote>, n = 2</td>
 
-                    <td colspan="4">-2</td>
+                  <td colspan="4">-2</td>
 
-                    <td colspan="4">-1</td>
+                  <td colspan="4">-1</td>
 
-                    <td colspan="4">0</td>
+                  <td colspan="4">0</td>
 
-                    <td colspan="4">1</td>
-                  </tr>
-                </informaltable>
-              </tip>
-            </question>
+                  <td colspan="4">1</td>
+                </tr>
+              </informaltable>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Joe's intention with respect to our toy example types implies dividing <quote>TinyLong</quote> values by <inlineequation>
-                  <m:math display="inline">
-                    <m:msup>
-                      <m:mi>2</m:mi>
+          <answer>
+            <para>Joe's intention with respect to our toy example types implies dividing <quote>TinyLong</quote> values by <inlineequation>
+                <m:math display="inline">
+                  <m:msup>
+                    <m:mi>2</m:mi>
 
-                      <m:mi>2</m:mi>
-                    </m:msup>
-                  </m:math>
-                </inlineequation> (truncating). This indeed yields the desired result for non-negative values. So why does Joe encounter a division by zero runtime exception when executing <code>longValue / (2 * (Integer.MAX_VALUE + 1))</code>?</para>
+                    <m:mi>2</m:mi>
+                  </m:msup>
+                </m:math>
+              </inlineequation> (truncating). This indeed yields the desired result for non-negative values. So why does Joe encounter a division by zero runtime exception when executing <code>longValue / (2 * (Integer.MAX_VALUE + 1))</code>?</para>
 
-              <para>Unfortunately Joe's implementation is seriously flawed for even two reasons:</para>
+            <para>Unfortunately Joe's implementation is seriously flawed for even two reasons:</para>
 
-              <orderedlist>
-                <listitem>
-                  <para>The constant <code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html">Integer</code>.<code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</code> already suggests we will not be able to increase its value while staying as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. The expression <code>Integer.MAX_VALUE + 1</code> will be evaluated using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic returning:</para>
+            <orderedlist>
+              <listitem>
+                <para>The constant <code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html">Integer</code>.<code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</code> already suggests we will not be able to increase its value while staying as an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. The expression <code>Integer.MAX_VALUE + 1</code> will be evaluated using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic returning:</para>
 
-                  <programlisting language="java">  01111111_11111111_11111111_11111111
+                <programlisting language="java">  01111111_11111111_11111111_11111111
 + 00000000_00000000_00000000_00000001
 _____________________________________
   10000000_00000000_00000000_00000000</programlisting>
 
-                  <para>This is the binary representation of the unintended result <code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html">Integer</code>.<code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#MIN_VALUE">MIN_VALUE</code> due to an arithmetic overflow. The expression <code>2 * (Integer.MAX_VALUE + 1)</code> then gives rise to a second overflow error:</para>
+                <para>This is the binary representation of the unintended result <code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html">Integer</code>.<code xlink:href="https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#MIN_VALUE">MIN_VALUE</code> due to an arithmetic overflow. The expression <code>2 * (Integer.MAX_VALUE + 1)</code> then gives rise to a second overflow error:</para>
 
-                  <programlisting language="java">  10000000_00000000_00000000_00000000
+                <programlisting language="java">  10000000_00000000_00000000_00000000
 + 10000000_00000000_00000000_00000000
 _____________________________________
   00000000_00000000_00000000_00000000</programlisting>
-                </listitem>
-              </orderedlist>
+              </listitem>
+            </orderedlist>
 
-              <para>Both errors combined surprisingly result in a value of <code>0</code> explaining the <quote>division by zero</quote> error message. There are two possible solutions:</para>
+            <para>Both errors combined surprisingly result in a value of <code>0</code> explaining the <quote>division by zero</quote> error message. There are two possible solutions:</para>
 
-              <glosslist>
-                <glossentry>
-                  <glossterm><code>(int) (longValue / (2L * (Integer.MAX_VALUE + 1L)))</code></glossterm>
+            <glosslist>
+              <glossentry>
+                <glossterm><code>(int) (longValue / (2L * (Integer.MAX_VALUE + 1L)))</code></glossterm>
 
-                  <glossdef>
-                    <para>Introducing <code>2L</code> or <code>1L</code> (one is sufficient) in favour of simply using 2 and 1 turns both addition and multiplication into operations involving at least one <code>long</code> argument. Thus for both operations the <xref linkend="glo_Java"/> runtime will use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic returning the desired <quote>reducing</quote> factor of <inlineequation>
-                        <m:math display="inline">
-                          <m:msup>
-                            <m:mi>2</m:mi>
+                <glossdef>
+                  <para>Introducing <code>2L</code> or <code>1L</code> (one is sufficient) in favour of simply using 2 and 1 turns both addition and multiplication into operations involving at least one <code>long</code> argument. Thus for both operations the <xref linkend="glo_Java"/> runtime will use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic returning the desired <quote>reducing</quote> factor of <inlineequation>
+                      <m:math display="inline">
+                        <m:msup>
+                          <m:mi>2</m:mi>
 
-                            <m:mi>32</m:mi>
-                          </m:msup>
-                        </m:math>
-                      </inlineequation> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>.</para>
-                  </glossdef>
-                </glossentry>
-
-                <glossentry>
-                  <glossterm><code>(int) (longValue / 2 / (Integer.MAX_VALUE + 1L))</code></glossterm>
-
-                  <glossdef>
-                    <para>Same result as before.</para>
-
-                    <note>
-                      <para>This time the expression starts with <code>longValue / 2 ...</code> Since the variable <code>longValue</code> is of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> the expression <code>longValue / 2</code> will be evaluated by the <xref linkend="glo_Java"/> runtime using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetics. The result will subsequently be divided by <code>Integer.MAX_VALUE + 1L</code> again using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic.</para>
-                    </note>
-                  </glossdef>
-                </glossentry>
-              </glosslist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
-
-    <section xml:id="sd1SectOperator">
-      <title>Operators and expressions</title>
-
-      <figure xml:id="sd1_fig_binaryPlusOperator">
-        <title>The binary plus operator</title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/operatorSum.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <figure xml:id="sd1_fig_operatorResultType">
-        <title>Binary operator output type</title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/operatorOutputType.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_expressionTypes">
-        <title>Expressions and type</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code segment:</para>
-
-              <programlisting language="java">short a = 4; <co linkends="sd1_co_expressionTypeIntToShort-1" xml:id="sd1_co_expressionTypeIntToShort-1-co"/>
+                          <m:mi>32</m:mi>
+                        </m:msup>
+                      </m:math>
+                    </inlineequation> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>.</para>
+                </glossdef>
+              </glossentry>
+
+              <glossentry>
+                <glossterm><code>(int) (longValue / 2 / (Integer.MAX_VALUE + 1L))</code></glossterm>
+
+                <glossdef>
+                  <para>Same result as before.</para>
+
+                  <note>
+                    <para>This time the expression starts with <code>longValue / 2 ...</code> Since the variable <code>longValue</code> is of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> the expression <code>longValue / 2</code> will be evaluated by the <xref linkend="glo_Java"/> runtime using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetics. The result will subsequently be divided by <code>Integer.MAX_VALUE + 1L</code> again using <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> arithmetic.</para>
+                  </note>
+                </glossdef>
+              </glossentry>
+            </glosslist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1SectOperator">
+    <title>Operators and expressions</title>
+
+    <figure xml:id="sd1_fig_binaryPlusOperator">
+      <title>The binary plus operator</title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/operatorSum.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+
+    <figure xml:id="sd1_fig_operatorResultType">
+      <title>Binary operator output type</title>
+
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/operatorOutputType.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
+
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_expressionTypes">
+      <title>Expressions and type</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code segment:</para>
+
+            <programlisting language="java">short a = 4; <co linkends="sd1_co_expressionTypeIntToShort-1" xml:id="sd1_co_expressionTypeIntToShort-1-co"/>
 short sum = a + 7; <co linkends="sd1_co_expressionTypeIntToShort-2" xml:id="sd1_co_expressionTypeIntToShort-2-co"/></programlisting>
 
-              <calloutlist>
-                <callout arearefs="sd1_co_expressionTypeIntToShort-1-co" xml:id="sd1_co_expressionTypeIntToShort-1">
-                  <para>Declaring a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>a</code> assigning 4.</para>
-                </callout>
+            <calloutlist>
+              <callout arearefs="sd1_co_expressionTypeIntToShort-1-co" xml:id="sd1_co_expressionTypeIntToShort-1">
+                <para>Declaring a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>a</code> assigning 4.</para>
+              </callout>
 
-                <callout arearefs="sd1_co_expressionTypeIntToShort-2-co" xml:id="sd1_co_expressionTypeIntToShort-2">
-                  <para>Declaring a short variable <code>sum</code> assigning 4 + 7.This yields a compile time error:</para>
+              <callout arearefs="sd1_co_expressionTypeIntToShort-2-co" xml:id="sd1_co_expressionTypeIntToShort-2">
+                <para>Declaring a short variable <code>sum</code> assigning 4 + 7.This yields a compile time error:</para>
 
-                  <screen>Type mismatch: cannot convert from int to short</screen>
-                </callout>
-              </calloutlist>
+                <screen>Type mismatch: cannot convert from int to short</screen>
+              </callout>
+            </calloutlist>
 
-              <para>On contrary the following line will compile flawlessly:</para>
+            <para>On contrary the following line will compile flawlessly:</para>
 
-              <programlisting language="java">short sum = 4 + 7; </programlisting>
+            <programlisting language="java">short sum = 4 + 7; </programlisting>
 
-              <para>Explain this strange behaviour.</para>
-            </question>
+            <para>Explain this strange behaviour.</para>
+          </question>
 
-            <answer>
-              <para>The expression <code>a + 7</code> contains an operand of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> to the left of the plus operator and an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal <code>7</code> to its right. Thus the plus operator yields an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result (the <quote>biggest</quote> type of both operands) which cannot be assigned to the variable <code>sum</code> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>.</para>
+          <answer>
+            <para>The expression <code>a + 7</code> contains an operand of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> to the left of the plus operator and an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal <code>7</code> to its right. Thus the plus operator yields an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result (the <quote>biggest</quote> type of both operands) which cannot be assigned to the variable <code>sum</code> of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code>.</para>
 
-              <para>The very same argument seems to apply for the expression <code>4 + 7</code> even better: This time the plus operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> operands. However the <xref linkend="glo_Java"/> compiler is <quote>clever</quote> enough casting the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result 11 to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>sum</code> without any loss of information.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>The very same argument seems to apply for the expression <code>4 + 7</code> even better: This time the plus operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> operands. However the <xref linkend="glo_Java"/> compiler is <quote>clever</quote> enough casting the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> result 11 to the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-B">short</code> variable <code>sum</code> without any loss of information.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerDivision">
-        <title>Dividing values</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerDivision">
+      <title>Dividing values</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following statement:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following statement:</para>
 
-              <programlisting language="java">System.out.println(8 / 9);</programlisting>
+            <programlisting language="java">System.out.println(8 / 9);</programlisting>
 
-              <para>The output is <computeroutput>0</computeroutput> rather than <code>0.888888...</code> . Explain this result.</para>
-            </question>
+            <para>The output is <computeroutput>0</computeroutput> rather than <code>0.888888...</code> . Explain this result.</para>
+          </question>
 
-            <answer>
-              <para>The divide operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal values 8 an 9. Thus irrespective of the underlying floating point result the resulting type is int .</para>
+          <answer>
+            <para>The divide operator acts on two <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> literal values 8 an 9. Thus irrespective of the underlying floating point result the resulting type is int .</para>
 
-              <para>According to <uri xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2">https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2</uri> the floating point value 0.88888... will be <quote>rounded toward zero</quote> yielding an int value of <code>0</code> rather than <code>1</code>.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>According to <uri xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2">https://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-300-A-2</uri> the floating point value 0.88888... will be <quote>rounded toward zero</quote> yielding an int value of <code>0</code> rather than <code>1</code>.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaByteOverflow">
-        <title>Strange things happen</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaByteOverflow">
+      <title>Strange things happen</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <orderedlist>
-                <listitem>
-                  <para>Consider the following code snippet:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <orderedlist>
+              <listitem>
+                <para>Consider the following code snippet:</para>
 
-                  <programlisting language="java">byte a = 127;
+                <programlisting language="java">byte a = 127;
 System.out.println("Current value=" + a + ", now adding 1 to it");
 a++;
 System.out.println("New value=" + a);</programlisting>
 
-                  <para>This will produce the following output:</para>
+                <para>This will produce the following output:</para>
 
-                  <screen>Current value=127, now adding 1 to it
+                <screen>Current value=127, now adding 1 to it
 New value=-128</screen>
 
-                  <para>Explain this strange behaviour.</para>
-                </listitem>
+                <para>Explain this strange behaviour.</para>
+              </listitem>
 
-                <listitem>
-                  <para>Moreover the following yields a compile time error:</para>
+              <listitem>
+                <para>Moreover the following yields a compile time error:</para>
 
-                  <programlisting language="java">byte a = 127;
+                <programlisting language="java">byte a = 127;
 System.out.println("value=" + a);
 a = a + 1; // Error: Type mismatch: cannot convert from int to byte
 System.out.println("New value=" + a);</programlisting>
 
-                  <para>What do you learn about the two operators <quote><code>+</code></quote> an <quote><code>a++</code></quote>? Explain this error's cause.</para>
-                </listitem>
-              </orderedlist>
+                <para>What do you learn about the two operators <quote><code>+</code></quote> an <quote><code>a++</code></quote>? Explain this error's cause.</para>
+              </listitem>
+            </orderedlist>
 
-              <tip>
-                <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <orderedlist>
-                <listitem>
-                  <para>A byte variable ranges from -128 to +127. Thus incrementing 127 by 1 yields -128 and thus an overflow error.</para>
+          <answer>
+            <orderedlist>
+              <listitem>
+                <para>A byte variable ranges from -128 to +127. Thus incrementing 127 by 1 yields -128 and thus an overflow error.</para>
 
-                  <para>Since <xref linkend="glo_Java"/> uses <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation we have:</para>
+                <para>Since <xref linkend="glo_Java"/> uses <link xlink:href="https://en.wikipedia.org/wiki/Two's_complement#firstHeading">Two's complement</link> representation we have:</para>
 
-                  <informaltable border="1">
-                    <tr>
-                      <td><code> 01111111</code></td>
+                <informaltable border="1">
+                  <tr>
+                    <td><code> 01111111</code></td>
 
-                      <td><code> 127</code></td>
-                    </tr>
+                    <td><code> 127</code></td>
+                  </tr>
 
-                    <tr>
-                      <td><code>+00000001</code></td>
+                  <tr>
+                    <td><code>+00000001</code></td>
 
-                      <td><code> +1</code></td>
-                    </tr>
+                    <td><code> +1</code></td>
+                  </tr>
 
-                    <tr>
-                      <td><code>=10000000</code></td>
+                  <tr>
+                    <td><code>=10000000</code></td>
 
-                      <td><code>=-128</code></td>
-                    </tr>
-                  </informaltable>
+                    <td><code>=-128</code></td>
+                  </tr>
+                </informaltable>
 
-                  <para>On machine level the above calculation is just an ordinary addition.</para>
+                <para>On machine level the above calculation is just an ordinary addition.</para>
 
-                  <para>Conclusion: Watch out when doing (integer) arithmetic!</para>
-                </listitem>
+                <para>Conclusion: Watch out when doing (integer) arithmetic!</para>
+              </listitem>
 
-                <listitem>
-                  <para>The compile time error is due to the definition of the <quote>+</quote> operator in Java always returning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than a byte. Consider:</para>
+              <listitem>
+                <para>The compile time error is due to the definition of the <quote>+</quote> operator in Java always returning an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> rather than a byte. Consider:</para>
 
-                  <programlisting language="java">byte a = 120, b = 10;
+                <programlisting language="java">byte a = 120, b = 10;
 System.out.println(a + b);</programlisting>
 
-                  <para>This yields the expected output of 130 and corresponds to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value.</para>
+                <para>This yields the expected output of 130 and corresponds to an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value.</para>
 
-                  <para>If the expression <code>a + b</code> was of data type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> in <xref linkend="glo_Java"/> an arithmetic overflow as in the subsequent code example would occur:</para>
+                <para>If the expression <code>a + b</code> was of data type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-A">byte</code> in <xref linkend="glo_Java"/> an arithmetic overflow as in the subsequent code example would occur:</para>
 
-                  <programlisting language="java">byte a = 120, b = 10;
+                <programlisting language="java">byte a = 120, b = 10;
     
 byte sum = (byte) (a + b);
     
 System.out.println(sum);</programlisting>
 
-                  <para>The explicit type conversion (a so called <quote>type cast</quote> or cast for short) forces the 4-byte <code>int</code> into a one-byte variable <code>sum</code> thereby loosing its original value and returning -126 instead.</para>
+                <para>The explicit type conversion (a so called <quote>type cast</quote> or cast for short) forces the 4-byte <code>int</code> into a one-byte variable <code>sum</code> thereby loosing its original value and returning -126 instead.</para>
 
-                  <para>Conclusion: <code>a = a + 1</code> and <code>a++</code> differ in behaviour when being applied to non-<code>int</code> variables.</para>
-                </listitem>
-              </orderedlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                <para>Conclusion: <code>a = a + 1</code> and <code>a++</code> differ in behaviour when being applied to non-<code>int</code> variables.</para>
+              </listitem>
+            </orderedlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerSumOverflow">
-        <title>Adding values</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_integerSumOverflow">
+      <title>Adding values</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code:</para>
 
-              <programlisting language="java">System.out.println(2147483647 + 1);
+            <programlisting language="java">System.out.println(2147483647 + 1);
 System.out.println(2147483647 + 1L);</programlisting>
 
-              <para>This yields:</para>
+            <para>This yields:</para>
 
-              <screen>-2147483648
+            <screen>-2147483648
 2147483648</screen>
 
-              <para>Explain this result. Please refrain from answering <quote>Thats what bankers do!</quote></para>
-            </question>
+            <para>Explain this result. Please refrain from answering <quote>Thats what bankers do!</quote></para>
+          </question>
 
-            <answer>
-              <para>The value 2147483647 is actually the largest possible <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname>.<property xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</property>. The plus operator in the first expression <code>2147483647 + 1</code> acts on two operands of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. Thus the resulting sum will be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> as well irrespective of its value.</para>
+          <answer>
+            <para>The value 2147483647 is actually the largest possible <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</classname>.<property xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#MAX_VALUE">MAX_VALUE</property>. The plus operator in the first expression <code>2147483647 + 1</code> acts on two operands of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code>. Thus the resulting sum will be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> as well irrespective of its value.</para>
 
-              <para>On binary level adding an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of <code>1</code> results in:</para>
+            <para>On binary level adding an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of <code>1</code> results in:</para>
 
-              <screen>  01111111_11111111_11111111_11111111    2147483647
+            <screen>  01111111_11111111_11111111_11111111    2147483647
 + 00000000_00000000_00000000_00000001   +         1
 -------------------------------------  ------------
   10000000_00000000_00000000_00000000   -2147483648</screen>
 
-              <para>With respect to two-complement representation of signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values this is actually an overflow error: There simply is no positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of 2147483648 in <xref linkend="glo_Java"/>. See <uri xlink:href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220">http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220</uri> for details.</para>
+            <para>With respect to two-complement representation of signed <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> values this is actually an overflow error: There simply is no positive <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> value of 2147483648 in <xref linkend="glo_Java"/>. See <uri xlink:href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220">http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.3-220</uri> for details.</para>
 
-              <para>On contrary the plus operator in the expression <code>2147483647 + 1L</code> acts on an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to its left and a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to its right. The result will thus be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>:</para>
+            <para>On contrary the plus operator in the expression <code>2147483647 + 1L</code> acts on an <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-C">int</code> to its left and a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code> to its right. The result will thus be of type <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>:</para>
 
-              <screen>                                      01111111_11111111_11111111_11111111    2147483647
+            <screen>                                      01111111_11111111_11111111_11111111    2147483647
 + 00000000_00000000_00000000_00000000_00000000_00000000_00000000_00000001   +         1
 -------------------------------------------------------------------------  ------------
   00000000_00000000_00000000_00000000_10000000_00000000_00000000_00000000    2147483648</screen>
 
-              <para>Due to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>'s larger allocation of eight rather than four bytes execution reveals no overflow problem thus yielding the expected result.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>Due to a <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1-100-D">long</code>'s larger allocation of eight rather than four bytes execution reveals no overflow problem thus yielding the expected result.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaFloatPrecisionProblem">
-        <title>Representational float and double miracles</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaFloatPrecisionProblem">
+      <title>Representational float and double miracles</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider and execute the following code snippet:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider and execute the following code snippet:</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
   final double a = 0.7;
   final double b = 0.9;
   final double x = a + 0.1; // 0.9
@@ -3056,185 +3053,185 @@ System.out.println(2147483647 + 1L);</programlisting>
   System.out.println(x == y);
 }</programlisting>
 
-              <para>Which outcome do you expect? Explain the execution's result and propose a solution.</para>
+            <para>Which outcome do you expect? Explain the execution's result and propose a solution.</para>
 
-              <tip>
-                <para>You will have to replace the <quote>==</quote> operator by something more appropriate addressing limited arithmetic precision.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>You will have to replace the <quote>==</quote> operator by something more appropriate addressing limited arithmetic precision.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>The expression <code>x == y</code> evaluates to <code>false</code>. This surprising result is due to limited precision regarding both <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> IEEE representations: A given value will be approximated as close as possible.</para>
+          <answer>
+            <para>The expression <code>x == y</code> evaluates to <code>false</code>. This surprising result is due to limited precision regarding both <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> IEEE representations: A given value will be approximated as close as possible.</para>
 
-              <para>Adding <code>System.out.println(x - y)</code> yields a value of -1.1102230246251565E-16 denoting the representational deviation of <code>x</code> and <code>y</code>.</para>
+            <para>Adding <code>System.out.println(x - y)</code> yields a value of -1.1102230246251565E-16 denoting the representational deviation of <code>x</code> and <code>y</code>.</para>
 
-              <para>Comparing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> values thus requires providing a representational distance limit below which two values will be regarded as equal:</para>
+            <para>Comparing <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">float</code> and <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3-100">double</code> values thus requires providing a representational distance limit below which two values will be regarded as equal:</para>
 
-              <programlisting language="java">final double a = 0.7;
+            <programlisting language="java">final double a = 0.7;
 final double b = 0.9;
 final double x = a + 0.1;
 final double y = b - 0.1;
 System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html#abs-double-">Math.abs</link>(x - y) &lt; 1.E-14);</programlisting>
 
-              <para>The last line represents the boolean expression <inlineequation>
-                  <m:math display="inline">
+            <para>The last line represents the boolean expression <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
                     <m:mrow>
-                      <m:mrow>
-                        <m:mo>|</m:mo>
+                      <m:mo>|</m:mo>
 
-                        <m:mrow>
-                          <m:mi>x</m:mi>
-
-                          <m:mo>-</m:mo>
+                      <m:mrow>
+                        <m:mi>x</m:mi>
 
-                          <m:mi>y</m:mi>
-                        </m:mrow>
+                        <m:mo>-</m:mo>
 
-                        <m:mo>|</m:mo>
+                        <m:mi>y</m:mi>
                       </m:mrow>
 
-                      <m:mo>&lt;</m:mo>
+                      <m:mo>|</m:mo>
+                    </m:mrow>
 
-                      <m:msup>
-                        <m:mi>10</m:mi>
+                    <m:mo>&lt;</m:mo>
 
-                        <m:mrow>
-                          <m:mo>-</m:mo>
+                    <m:msup>
+                      <m:mi>10</m:mi>
 
-                          <m:mi>14</m:mi>
-                        </m:mrow>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>. So two values will be regarded as equal if their mutual distance is less than 0.00000000000001.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                      <m:mrow>
+                        <m:mo>-</m:mo>
+
+                        <m:mi>14</m:mi>
+                      </m:mrow>
+                    </m:msup>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>. So two values will be regarded as equal if their mutual distance is less than 0.00000000000001.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <figure xml:id="sd1_fig_genericBinaryOpType">
-        <title>Generic type behaviour</title>
+    <figure xml:id="sd1_fig_genericBinaryOpType">
+      <title>Generic type behaviour</title>
 
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="Ref/LangFundament/genericBinaryOperator.svg"/>
-          </imageobject>
-        </mediaobject>
-      </figure>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="Ref/LangFundament/genericBinaryOperator.svg"/>
+        </imageobject>
+      </mediaobject>
+    </figure>
 
-      <figure xml:id="sd1_fig_genericBinaryTypeExamples">
-        <title>Binary operator type examples</title>
+    <figure xml:id="sd1_fig_genericBinaryTypeExamples">
+      <title>Binary operator type examples</title>
 
-        <informaltable border="1">
-          <colgroup width="23%"/>
+      <informaltable border="1">
+        <colgroup width="23%"/>
 
-          <colgroup width="23%"/>
+        <colgroup width="23%"/>
 
-          <colgroup width="17%"/>
+        <colgroup width="17%"/>
 
-          <colgroup width="37%"/>
+        <colgroup width="37%"/>
 
-          <tr>
-            <th>Left</th>
+        <tr>
+          <th>Left</th>
 
-            <th>Right</th>
+          <th>Right</th>
 
-            <th>Out</th>
+          <th>Out</th>
 
-            <th>Examples</th>
-          </tr>
+          <th>Examples</th>
+        </tr>
 
-          <tr>
-            <td><code>boolean</code></td>
+        <tr>
+          <td><code>boolean</code></td>
 
-            <td><code>boolean</code></td>
+          <td><code>boolean</code></td>
 
-            <td><code>boolean</code></td>
+          <td><code>boolean</code></td>
 
-            <td><code>|, &amp;, &amp;&amp;, ||, ^</code></td>
-          </tr>
+          <td><code>|, &amp;, &amp;&amp;, ||, ^</code></td>
+        </tr>
 
-          <tr>
-            <td><code>int</code></td>
+        <tr>
+          <td><code>int</code></td>
 
-            <td><code>int</code></td>
+          <td><code>int</code></td>
 
-            <td><code>int</code></td>
+          <td><code>int</code></td>
 
-            <td rowspan="5"><code>+, -, *, /, %</code></td>
-          </tr>
+          <td rowspan="5"><code>+, -, *, /, %</code></td>
+        </tr>
 
-          <tr>
-            <td><code>byte</code></td>
+        <tr>
+          <td><code>byte</code></td>
 
-            <td><code>short</code></td>
+          <td><code>short</code></td>
 
-            <td><code>short</code></td>
-          </tr>
+          <td><code>short</code></td>
+        </tr>
 
-          <tr>
-            <td><code>double</code></td>
+        <tr>
+          <td><code>double</code></td>
 
-            <td><code>float</code></td>
+          <td><code>float</code></td>
 
-            <td><code>double</code></td>
-          </tr>
+          <td><code>double</code></td>
+        </tr>
 
-          <tr>
-            <td><code>int</code></td>
+        <tr>
+          <td><code>int</code></td>
 
-            <td><code>float</code></td>
+          <td><code>float</code></td>
 
-            <td><code>float</code></td>
-          </tr>
+          <td><code>float</code></td>
+        </tr>
 
-          <tr>
-            <td><code>char</code></td>
+        <tr>
+          <td><code>char</code></td>
 
-            <td><code>byte</code></td>
+          <td><code>byte</code></td>
 
-            <td><code>char</code></td>
-          </tr>
-        </informaltable>
-      </figure>
+          <td><code>char</code></td>
+        </tr>
+      </informaltable>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleArea">
-        <title>Calculating a circle's area</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleArea">
+      <title>Calculating a circle's area</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>The area <inlineequation>
-                  <m:math display="inline">
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>The area <inlineequation>
+                <m:math display="inline">
+                  <m:mi>a</m:mi>
+                </m:math>
+              </inlineequation> of a given circle having radius <inlineequation>
+                <m:math display="inline">
+                  <m:mi>r</m:mi>
+                </m:math>
+              </inlineequation> is being obtained by <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
                     <m:mi>a</m:mi>
-                  </m:math>
-                </inlineequation> of a given circle having radius <inlineequation>
-                  <m:math display="inline">
-                    <m:mi>r</m:mi>
-                  </m:math>
-                </inlineequation> is being obtained by <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mi>a</m:mi>
 
-                      <m:mo>=</m:mo>
+                    <m:mo>=</m:mo>
 
-                      <m:mrow>
-                        <m:mi>Ï€</m:mi>
+                    <m:mrow>
+                      <m:mi>Ï€</m:mi>
 
-                        <m:mo>×</m:mo>
+                      <m:mo>×</m:mo>
 
-                        <m:msup>
-                          <m:mi>r</m:mi>
+                      <m:msup>
+                        <m:mi>r</m:mi>
 
-                          <m:mi>2</m:mi>
-                        </m:msup>
-                      </m:mrow>
+                        <m:mi>2</m:mi>
+                      </m:msup>
                     </m:mrow>
-                  </m:math>
-                </inlineequation>. Complete the following code to calculate the result and write it to standard output using <code>System.out.println(...)</code>:</para>
+                  </m:mrow>
+                </m:math>
+              </inlineequation>. Complete the following code to calculate the result and write it to standard output using <code>System.out.println(...)</code>:</para>
 
-              <programlisting language="java">public static void main(String[] args) {
+            <programlisting language="java">public static void main(String[] args) {
       
    double radius = 2.31;   // A circle having a radius (given e.g. in mm).
    double pi = 3.1415926;  // Constant relating a circle's radius, 
@@ -3243,18 +3240,18 @@ System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/j
    // TODO: Write the circle's area to standard output     
 }</programlisting>
 
-              <tip>
-                <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>You may want to read the <link xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc1_html_4">overview section</link> on statements.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <glosslist>
-                <glossentry>
-                  <glossterm>Using a mere expression</glossterm>
+          <answer>
+            <glosslist>
+              <glossentry>
+                <glossterm>Using a mere expression</glossterm>
 
-                  <glossdef>
-                    <programlisting language="java">public static void main(String[] args) {
+                <glossdef>
+                  <programlisting language="java">public static void main(String[] args) {
       
    double radius = 2.31;   // A circle having a radius (given e.g. in mm).
    double pi = 3.1415926;  // Constant relating a circle's radius,
@@ -3262,16 +3259,16 @@ System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/j
       
    System.out.println(pi * radius * radius);
 }</programlisting>
-                  </glossdef>
-                </glossentry>
+                </glossdef>
+              </glossentry>
 
-                <glossentry>
-                  <glossterm>Using a variable</glossterm>
+              <glossentry>
+                <glossterm>Using a variable</glossterm>
 
-                  <glossdef>
-                    <para>Instead of immediately using the expression as an argument to <code>System.out.println(...)</code> we may assign its value to a variable prior to output creation:</para>
+                <glossdef>
+                  <para>Instead of immediately using the expression as an argument to <code>System.out.println(...)</code> we may assign its value to a variable prior to output creation:</para>
 
-                    <programlisting language="java">public static void main(String[] args) {
+                  <programlisting language="java">public static void main(String[] args) {
       
    double radius = 2.31;   // A circle having a radius (given e.g. in mm).
    double pi = 3.1415926;  // Constant relating a circle's radius, 
@@ -3280,23 +3277,23 @@ System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/j
    double area = pi * radius * radius;
    System.out.println(area);
 }</programlisting>
-                  </glossdef>
-                </glossentry>
-              </glosslist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleAreaFinal">
-        <title>Calculating the area of a circle avoiding accidental redefinition</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>In Exercise <xref linkend="sw1QandaCircleArea"/> you calculated a given circle's area:</para>
-
-              <programlisting language="java">   public static void main(String[] args) {
+                </glossdef>
+              </glossentry>
+            </glosslist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleAreaFinal">
+      <title>Calculating the area of a circle avoiding accidental redefinition</title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>In Exercise <xref linkend="sw1QandaCircleArea"/> you calculated a given circle's area:</para>
+
+            <programlisting language="java">   public static void main(String[] args) {
       
       double radius = 2.31;   // A circle having a radius (given e.g. in mm).
       double pi = 3.1415926;  // Constant relating a circle's radius, perimeter
@@ -3306,9 +3303,9 @@ System.out.println(<link xlink:href="https://docs.oracle.com/javase/8/docs/api/j
       System.out.println(area);
    }</programlisting>
 
-              <para>Though there is nothing wrong with this approach it is error prone: In a similar program a careless programmer accidentally redefine the value of <code>pi</code>:</para>
+            <para>Though there is nothing wrong with this approach it is error prone: In a similar program a careless programmer accidentally redefine the value of <code>pi</code>:</para>
 
-              <programlisting language="java">double pi = 3.141592653589793;
+            <programlisting language="java">double pi = 3.141592653589793;
 
 double radius = 2.3; // Computing a circle's area
 System.out.println("A circle of radius " + radius + " will cover an area of " +
@@ -3321,25 +3318,25 @@ radius = 1.8;
 System.out.println("A circle of radius " + radius + " will cover an area of " +
    pi * radius * radius);</programlisting>
 
-              <para>Modify the above code to avoid this type of error.</para>
+            <para>Modify the above code to avoid this type of error.</para>
 
-              <tip>
-                <itemizedlist>
-                  <listitem>
-                    <para>Consider <xref linkend="sd1_fig_final"/>.</para>
-                  </listitem>
+            <tip>
+              <itemizedlist>
+                <listitem>
+                  <para>Consider <xref linkend="sd1_fig_final"/>.</para>
+                </listitem>
 
-                  <listitem>
-                    <para>Read the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> section of <xref linkend="bib_Kurniawan2015"/>. As an aside also read the nearby section concerning naming conventions for constant variable as well.</para>
-                  </listitem>
-                </itemizedlist>
-              </tip>
-            </question>
+                <listitem>
+                  <para>Read the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> section of <xref linkend="bib_Kurniawan2015"/>. As an aside also read the nearby section concerning naming conventions for constant variable as well.</para>
+                </listitem>
+              </itemizedlist>
+            </tip>
+          </question>
 
-            <answer>
-              <para>The solution is straightforward. We add the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modifier to the definition of our variable <code>pi</code>. In addition we use capital letters <code>PI</code> reflecting the naming convention for constants:</para>
+          <answer>
+            <para>The solution is straightforward. We add the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modifier to the definition of our variable <code>pi</code>. In addition we use capital letters <code>PI</code> reflecting the naming convention for constants:</para>
 
-              <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
+            <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
 double radius = 2.3; // Computing a circle's area
 System.out.println("A circle of radius " + radius + " will cover an area of " +
   PI * radius * radius);
@@ -3351,32 +3348,32 @@ radius = 1.8;
 System.out.println("A circle of radius " + radius + " will cover an area of " +
    PI * radius * radius);</programlisting>
 
-              <para>Now our flawed assignment at line 6 will be flagged as a compile time error:</para>
+            <para>Now our flawed assignment at line 6 will be flagged as a compile time error:</para>
 
-              <para><computeroutput>Cannot assign a value to final variable 'PI'</computeroutput></para>
+            <para><computeroutput>Cannot assign a value to final variable 'PI'</computeroutput></para>
 
-              <para>As a rule of thumb: Whenever you intend a variable not to change after an initial assignment use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> declaring it to remain constant.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>As a rule of thumb: Whenever you intend a variable not to change after an initial assignment use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> declaring it to remain constant.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleMathDotPI">
-        <title>Using predefined constants</title>
+    <qandaset defaultlabel="qanda" xml:id="sw1QandaCircleMathDotPI">
+      <title>Using predefined constants</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>In the previous exercise we coded:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>In the previous exercise we coded:</para>
 
-              <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
+            <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
 double radius = 2.3; // Computing a circle's area
 System.out.println("A circle of radius " + radius + " will cover an area of " +
   PI * radius * radius);</programlisting>
 
-              <para>Do we actually have to provide the value of pi (3.141592653589793) ourself?</para>
+            <para>Do we actually have to provide the value of pi (3.141592653589793) ourself?</para>
 
-              <programlisting language="java">double pi = 3.141592653589793;
+            <programlisting language="java">double pi = 3.141592653589793;
 
 double radius = 2.3; // Computing a circle's area
 System.out.println("A circle of radius " + radius + " will cover an area of " +
@@ -3389,25 +3386,25 @@ radius = 1.8;
 System.out.println("A circle of radius " + radius + " will cover an area of " +
    pi * radius * radius);</programlisting>
 
-              <para>Modify the above code to avoid this type of error.</para>
+            <para>Modify the above code to avoid this type of error.</para>
 
-              <tip>
-                <itemizedlist>
-                  <listitem>
-                    <para>Consider <xref linkend="sd1_fig_final"/>.</para>
-                  </listitem>
+            <tip>
+              <itemizedlist>
+                <listitem>
+                  <para>Consider <xref linkend="sd1_fig_final"/>.</para>
+                </listitem>
 
-                  <listitem>
-                    <para>Read the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> section of <xref linkend="bib_Kurniawan2015"/>. As an aside also read the nearby section concerning naming conventions for constant variable as well.</para>
-                  </listitem>
-                </itemizedlist>
-              </tip>
-            </question>
+                <listitem>
+                  <para>Read the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc5_html_2">Constants</quote> section of <xref linkend="bib_Kurniawan2015"/>. As an aside also read the nearby section concerning naming conventions for constant variable as well.</para>
+                </listitem>
+              </itemizedlist>
+            </tip>
+          </question>
 
-            <answer>
-              <para>The solution is straightforward. We add the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modifier to the definition of our variable <code>pi</code>. In addition we use capital letters <code>PI</code> reflecting the naming convention for constants:</para>
+          <answer>
+            <para>The solution is straightforward. We add the <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> modifier to the definition of our variable <code>pi</code>. In addition we use capital letters <code>PI</code> reflecting the naming convention for constants:</para>
 
-              <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
+            <programlisting language="java" linenumbering="numbered">final double PI = 3.141592653589793;
 double radius = 2.3; // Computing a circle's area
 System.out.println("A circle of radius " + radius + " will cover an area of " +
   PI * radius * radius);
@@ -3419,25 +3416,25 @@ radius = 1.8;
 System.out.println("A circle of radius " + radius + " will cover an area of " +
    PI * radius * radius);</programlisting>
 
-              <para>Now our flawed assignment at line 6 will be flagged as a compile time error:</para>
+            <para>Now our flawed assignment at line 6 will be flagged as a compile time error:</para>
 
-              <para><computeroutput>Cannot assign a value to final variable 'PI'</computeroutput></para>
+            <para><computeroutput>Cannot assign a value to final variable 'PI'</computeroutput></para>
 
-              <para>As a rule of thumb: Whenever you intend a variable not to change after an initial assignment use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> declaring it to remain constant.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>As a rule of thumb: Whenever you intend a variable not to change after an initial assignment use <code xlink:href="https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.12.4">final</code> declaring it to remain constant.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaTemperatureConvert">
-        <title>Converting temperature values</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaTemperatureConvert">
+      <title>Converting temperature values</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Write an application converting temperature values being represented as degree centigrade to kelvin and Fahrenheit:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Write an application converting temperature values being represented as degree centigrade to kelvin and Fahrenheit:</para>
 
-              <programlisting language="java">  public static void main(String[] args) {
+            <programlisting language="java">  public static void main(String[] args) {
 
     double temperatureCelsius = 23.2;
     
@@ -3447,10 +3444,10 @@ System.out.println("A circle of radius " + radius + " will cover an area of " +
     System.out.println("Kelvin: " + temperatureKelvin);
     System.out.println("Fahrenheit: " + temperatureFahrenheit);
   }</programlisting>
-            </question>
+          </question>
 
-            <answer>
-              <programlisting language="java">  public static void main(String[] args) {
+          <answer>
+            <programlisting language="java">  public static void main(String[] args) {
 
     double temperatureCelsius = 23.2;
     
@@ -3462,24 +3459,24 @@ System.out.println("A circle of radius " + radius + " will cover an area of " +
     System.out.println("Kelvin: " + temperatureKelvin);
     System.out.println("Fahrenheit: " + temperatureFahrenheit);
   }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaTimeUnits">
-        <title>Time unit conversion</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaTimeUnits">
+      <title>Time unit conversion</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>This exercise consists of two parts:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>This exercise consists of two parts:</para>
 
-              <orderedlist>
-                <listitem>
-                  <para>Write an application converting a (seconds, minutes ,hours) time specification to seconds:</para>
+            <orderedlist>
+              <listitem>
+                <para>Write an application converting a (seconds, minutes ,hours) time specification to seconds:</para>
 
-                  <programlisting language="java">  public static void main(String[] args) {
+                <programlisting language="java">  public static void main(String[] args) {
 
     final int
       seconds = 31,
@@ -3491,15 +3488,15 @@ System.out.println("A circle of radius " + radius + " will cover an area of " +
     System.out.println("Time in seconds:" + timeInSeconds);
   }</programlisting>
 
-                  <para>The expected output reads:</para>
+                <para>The expected output reads:</para>
 
-                  <screen>Time in seconds:15391</screen>
-                </listitem>
+                <screen>Time in seconds:15391</screen>
+              </listitem>
 
-                <listitem>
-                  <para>Reverse the previous part of this exercise: Convert a time specification in seconds to (seconds, minutes ,hours) as in:</para>
+              <listitem>
+                <para>Reverse the previous part of this exercise: Convert a time specification in seconds to (seconds, minutes ,hours) as in:</para>
 
-                  <programlisting language="java">  public static void main(String[] args) {
+                <programlisting language="java">  public static void main(String[] args) {
 
     final int timeInSeconds = 15391;
     
@@ -3510,25 +3507,25 @@ System.out.println("A circle of radius " + radius + " will cover an area of " +
     System.out.println("Seconds:" +  seconds);
   }</programlisting>
 
-                  <para>The expected output reads:</para>
+                <para>The expected output reads:</para>
 
-                  <screen>Hours:4
+                <screen>Hours:4
 Minutes:16
 Seconds:31</screen>
 
-                  <tip>
-                    <para>Consider the <link xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html">remainder operator <quote>%</quote></link> (modulo operator).</para>
-                  </tip>
-                </listitem>
-              </orderedlist>
-            </question>
+                <tip>
+                  <para>Consider the <link xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html">remainder operator <quote>%</quote></link> (modulo operator).</para>
+                </tip>
+              </listitem>
+            </orderedlist>
+          </question>
 
-            <answer>
-              <orderedlist>
-                <listitem>
-                  <para>A straightforward solution reads:</para>
+          <answer>
+            <orderedlist>
+              <listitem>
+                <para>A straightforward solution reads:</para>
 
-                  <para><programlisting language="java">  public static void main(String[] args) {
+                <para><programlisting language="java">  public static void main(String[] args) {
 
     final int
       seconds = 31,
@@ -3539,10 +3536,10 @@ Seconds:31</screen>
     
     System.out.println("Time in seconds:" + timeInSeconds);
   }</programlisting></para>
-                </listitem>
+              </listitem>
 
-                <listitem>
-                  <programlisting language="java">  public static void main(String[] args) {
+              <listitem>
+                <programlisting language="java">  public static void main(String[] args) {
 
     final int timeInSeconds = 15391;
     
@@ -3556,22 +3553,22 @@ Seconds:31</screen>
     System.out.println("Minutes:" +  minutes);
     System.out.println("Seconds:" +  seconds);
   }</programlisting>
-                </listitem>
-              </orderedlist>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+              </listitem>
+            </orderedlist>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaInterestSimple">
-        <title>Interest calculation</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1QandaInterestSimple">
+      <title>Interest calculation</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>We want to calculate the compounded interest starting from an initial capital, a given annual interest rate and a duration of three years. Consider the following code fragment:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>We want to calculate the compounded interest starting from an initial capital, a given annual interest rate and a duration of three years. Consider the following code fragment:</para>
 
-              <programlisting language="java">  public static void main(String[] args) {
+            <programlisting language="java">  public static void main(String[] args) {
 
     final double initialCapital = 223.12;
     final double interestRate = 1.5;
@@ -3584,39 +3581,39 @@ Seconds:31</screen>
     System.out.println("Capital after three years:" + ...);
   }</programlisting>
 
-              <para>The expected output is:</para>
+            <para>The expected output is:</para>
 
-              <screen>Initial capital:223.12
+            <screen>Initial capital:223.12
 Annual interest rate:1.5
 Capital after three years:233.31175902999993</screen>
 
-              <tip>
-                <para>In case you are unsure read about calculating the compounded interest.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>In case you are unsure read about calculating the compounded interest.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>We obtain the compounded interest by multiplying the initial capital by <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mn>1</m:mn>
+          <answer>
+            <para>We obtain the compounded interest by multiplying the initial capital by <inlineequation>
+                <m:math display="inline">
+                  <m:mrow>
+                    <m:mn>1</m:mn>
 
-                      <m:mo>+</m:mo>
+                    <m:mo>+</m:mo>
 
-                      <m:mrow>
-                        <m:mi>r</m:mi>
+                    <m:mrow>
+                      <m:mi>r</m:mi>
 
-                        <m:mo>/</m:mo>
+                      <m:mo>/</m:mo>
 
-                        <m:mn>100</m:mn>
-                      </m:mrow>
+                      <m:mn>100</m:mn>
                     </m:mrow>
-                  </m:math>
-                </inlineequation> for each year where r represents the given interest rate.</para>
+                  </m:mrow>
+                </m:math>
+              </inlineequation> for each year where r represents the given interest rate.</para>
 
-              <para>Since we have not yet introduced loops this multiplication has to be repeated three times:</para>
+            <para>Since we have not yet introduced loops this multiplication has to be repeated three times:</para>
 
-              <programlisting language="java">  public static void main(String[] args) {
+            <programlisting language="java">  public static void main(String[] args) {
 
     final double initialCapital = 223.12;
     final double interestRate = 1.5;
@@ -3634,9 +3631,9 @@ Capital after three years:233.31175902999993</screen>
     System.out.println("Capital after three years:" + capitalAtThreeYears);
   }</programlisting>
 
-              <para>We might as well use a single arithmetic expression to achieve the same result:</para>
+            <para>We might as well use a single arithmetic expression to achieve the same result:</para>
 
-              <programlisting language="java">  public static void main(String[] args) {
+            <programlisting language="java">  public static void main(String[] args) {
 
     final double initialCapital = 223.12;
     final double interestRate = 1.5;
@@ -3651,128 +3648,128 @@ Capital after three years:233.31175902999993</screen>
     System.out.println("Capital after three years:" + capitalAtThreeYears);
   }</programlisting>
 
-              <para>In <xref linkend="sd1InterestCalculator"/> we will present a more elaborate solution based on loops and class methods.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+            <para>In <xref linkend="sd1InterestCalculator"/> we will present a more elaborate solution based on loops and class methods.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_opShortChar">
-        <title>Summing short and char</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_opShortChar">
+      <title>Summing short and char</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following snippet:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following snippet:</para>
 
-              <programlisting language="java">short s = 1;
+            <programlisting language="java">short s = 1;
 char c = 'A'; // ASCII 65
 System.out.println(s + c);</programlisting>
 
-              <para>Execution results in <computeroutput>66</computeroutput>. What is the <code>s+c</code> expression's type?</para>
+            <para>Execution results in <computeroutput>66</computeroutput>. What is the <code>s+c</code> expression's type?</para>
 
-              <tip>
-                <para>Try to assign the expression to another variable and experiment using type candidates. Try to make an educated guess explaining the result.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Try to assign the expression to another variable and experiment using type candidates. Try to make an educated guess explaining the result.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>Both <code>short</code> and <code>char</code> require two bytes in <xref linkend="glo_Java"/>. It is thus surprising that a mixed expression has got neither of both input types:</para>
+          <answer>
+            <para>Both <code>short</code> and <code>char</code> require two bytes in <xref linkend="glo_Java"/>. It is thus surprising that a mixed expression has got neither of both input types:</para>
 
-              <programlisting language="java">short s = 1;
+            <programlisting language="java">short s = 1;
 char c = 'A';
 short resultShort = s + c; // Incompatible types Required: short found: int
 char resultChar= s + c;    // Incompatible types Required: char found: int</programlisting>
 
-              <para>According to the compiler's error message the expression <code>s + c</code> is of type <code>int</code>. Why choosing a result type being twice the size of both input types?</para>
+            <para>According to the compiler's error message the expression <code>s + c</code> is of type <code>int</code>. Why choosing a result type being twice the size of both input types?</para>
 
-              <para>The two input types have different ranges:</para>
+            <para>The two input types have different ranges:</para>
 
-              <glosslist>
-                <glossentry>
-                  <glossterm><code>short</code></glossterm>
+            <glosslist>
+              <glossentry>
+                <glossterm><code>short</code></glossterm>
 
-                  <glossdef>
-                    <para>Signed integer value ranging from <inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
-                            <m:mo>-</m:mo>
+                <glossdef>
+                  <para>Signed integer value ranging from <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:mo>-</m:mo>
 
-                            <m:msup>
-                              <m:mi>2</m:mi>
+                          <m:msup>
+                            <m:mi>2</m:mi>
 
-                              <m:mi>15</m:mi>
-                            </m:msup>
-                          </m:mrow>
-                        </m:math>
-                      </inlineequation> to <inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
-                            <m:msup>
-                              <m:mi>2</m:mi>
+                            <m:mi>15</m:mi>
+                          </m:msup>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> to <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:msup>
+                            <m:mi>2</m:mi>
 
-                              <m:mi>15</m:mi>
-                            </m:msup>
+                            <m:mi>15</m:mi>
+                          </m:msup>
 
-                            <m:mo>-</m:mo>
+                          <m:mo>-</m:mo>
 
-                            <m:mi>1</m:mi>
-                          </m:mrow>
-                        </m:math>
-                      </inlineequation>.</para>
-                  </glossdef>
-                </glossentry>
+                          <m:mi>1</m:mi>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation>.</para>
+                </glossdef>
+              </glossentry>
 
-                <glossentry>
-                  <glossterm><code>char</code></glossterm>
+              <glossentry>
+                <glossterm><code>char</code></glossterm>
 
-                  <glossdef>
-                    <para>Unsigned integer value ranging from 0 to <inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
-                            <m:msup>
-                              <m:mi>2</m:mi>
+                <glossdef>
+                  <para>Unsigned integer value ranging from 0 to <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:msup>
+                            <m:mi>2</m:mi>
 
-                              <m:mi>16</m:mi>
-                            </m:msup>
+                            <m:mi>16</m:mi>
+                          </m:msup>
 
-                            <m:mo>-</m:mo>
+                          <m:mo>-</m:mo>
 
-                            <m:mi>1</m:mi>
-                          </m:mrow>
-                        </m:math>
-                      </inlineequation>.</para>
-                  </glossdef>
-                </glossentry>
-              </glosslist>
-
-              <para>A promotion to <code>int</code> guarantees correct results in all circumstances.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <figure xml:id="sd1_fig_OperatorExamples">
-        <title>Operator examples</title>
-
-        <programlisting language="java">i++;             i = i + 1;
+                          <m:mi>1</m:mi>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation>.</para>
+                </glossdef>
+              </glossentry>
+            </glosslist>
+
+            <para>A promotion to <code>int</code> guarantees correct results in all circumstances.</para>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <figure xml:id="sd1_fig_OperatorExamples">
+      <title>Operator examples</title>
+
+      <programlisting language="java">i++;             i = i + 1;
 i--;             i = i - 1;
 i += b;          i = i + b;
 i %= 3;          i = i % 3;
 
 // boolean
 b != b;          b = !b; // true &lt;--&gt; false</programlisting>
-      </figure>
+    </figure>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaGuessingResults">
-        <title>Guessing results</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_GuessingResults">
+      <title>Guessing results</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Consider the following code segment:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Consider the following code segment:</para>
 
-              <programlisting language="java" linenumbering="numbered">int a = 3;
+            <programlisting language="java" linenumbering="numbered">int a = 3;
 a++;          // Incrementing a by 1 --&gt; a==4
 
 int b = a;    // TODO
@@ -3792,41 +3789,41 @@ System.out.println("b=" + b);
 System.out.println("c=" + c);
 System.out.println("e=" + e);</programlisting>
 
-              <para>We want to guess the expected result. Copy/paste the above code into a main() method body within your IDE of choice (probably Eclipse).</para>
+            <para>We want to guess the expected result. Copy/paste the above code into a main() method body within your IDE of choice (probably Eclipse).</para>
 
-              <para><emphasis role="bold">Do not execute this code yet</emphasis> but replace the <quote>TODO</quote> strings by guessing the respective variable's value beforehand as in line 2:</para>
+            <para><emphasis role="bold">Do not execute this code yet</emphasis> but replace the <quote>TODO</quote> strings by guessing the respective variable's value beforehand as in line 2:</para>
 
-              <para><computeroutput>a=...</computeroutput></para>
+            <para><computeroutput>a=...</computeroutput></para>
 
-              <para><computeroutput>b=...</computeroutput></para>
+            <para><computeroutput>b=...</computeroutput></para>
 
-              <para><computeroutput>c=...</computeroutput></para>
+            <para><computeroutput>c=...</computeroutput></para>
 
-              <para><computeroutput>e=...</computeroutput></para>
+            <para><computeroutput>e=...</computeroutput></para>
 
-              <para>After finishing your guesses execute your code and (possibly) start wailing about your success rate.</para>
+            <para>After finishing your guesses execute your code and (possibly) start wailing about your success rate.</para>
 
-              <tip>
-                <para>Both <code>x++</code> (postfix notation) and <code>++x</code> (infix notation) are expressions themselves which might even be rewritten as <code>(x++)</code> and <code>(++x)</code> for the sake of clarity. The difference is not about operator precedence rules but simply about the values of these expressions when being assigned to other variables.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Both <code>x++</code> (postfix notation) and <code>++x</code> (infix notation) are expressions themselves which might even be rewritten as <code>(x++)</code> and <code>(++x)</code> for the sake of clarity. The difference is not about operator precedence rules but simply about the values of these expressions when being assigned to other variables.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>As inferred by the hint the biggest problem is about understanding postfix and infix notation of the operators <code>++</code> and <code>--</code>. A corresponding expression evaluates to:</para>
+          <answer>
+            <para>As inferred by the hint the biggest problem is about understanding postfix and infix notation of the operators <code>++</code> and <code>--</code>. A corresponding expression evaluates to:</para>
 
-              <itemizedlist>
-                <listitem>
-                  <para><code>a = x++</code> yields a ==x: The value of x <emphasis role="bold">before</emphasis> incrementing it.</para>
-                </listitem>
+            <itemizedlist>
+              <listitem>
+                <para><code>a = x++</code> yields a ==x: The value of x <emphasis role="bold">before</emphasis> incrementing it.</para>
+              </listitem>
 
-                <listitem>
-                  <para><code>a = ++x</code> yields a ==(x + 1): The value of x <emphasis role="bold">after</emphasis> incrementing it.</para>
-                </listitem>
-              </itemizedlist>
+              <listitem>
+                <para><code>a = ++x</code> yields a ==(x + 1): The value of x <emphasis role="bold">after</emphasis> incrementing it.</para>
+              </listitem>
+            </itemizedlist>
 
-              <para>The rest is just obeying the <quote>due diligence</quote> rule set:</para>
+            <para>The rest is just obeying the <quote>due diligence</quote> rule set:</para>
 
-              <programlisting language="java">      int a = 3;
+            <programlisting language="java">      int a = 3;
       a++;          //Incrementing a by 1 --&gt; a==4
 
       int b = a;    // Assigning value of a --&gt; b==4
@@ -3845,66 +3842,66 @@ System.out.println("e=" + e);</programlisting>
       System.out.println("b=" + b);
       System.out.println("c=" + c);
       System.out.println("e=" + e);</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1_qanda_CleanOperatorMess">
-        <title>Cleaning up the mess</title>
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_CleanOperatorMess">
+      <title>Cleaning up the mess</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Some developers follow the rule <quote>It was hard to write, it should be hard to understand as well</quote>. One such proponent codes:</para>
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>Some developers follow the rule <quote>It was hard to write, it should be hard to understand as well</quote>. One such proponent codes:</para>
 
-              <programlisting language="java">int a = 3, b = 6, c = 2;
+            <programlisting language="java">int a = 3, b = 6, c = 2;
 
 a += (a = 2) + ++a - ++b % c--;
 
 System.out.println("a = " + a + ", b = " + b + ", c = " + c);</programlisting>
 
-              <para>Execution results in:</para>
+            <para>Execution results in:</para>
 
-              <screen>a = 7, b = 7, c = 1</screen>
+            <screen>a = 7, b = 7, c = 1</screen>
 
-              <para>Decompose this cryptic assignment into a series of multiple elementary ones like e.g. <code>a++</code> by possibly introducing one or more helper variables. Thus your code shall become longer but better to understand.</para>
+            <para>Decompose this cryptic assignment into a series of multiple elementary ones like e.g. <code>a++</code> by possibly introducing one or more helper variables. Thus your code shall become longer but better to understand.</para>
 
-              <tip>
-                <para>Read about evaluation of expressions and <link xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html#nutsandbolts-precedence">operator precedence</link>.</para>
-              </tip>
-            </question>
+            <tip>
+              <para>Read about evaluation of expressions and <link xlink:href="https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html#nutsandbolts-precedence">operator precedence</link>.</para>
+            </tip>
+          </question>
 
-            <answer>
-              <para>We start by modifying the line in question:</para>
+          <answer>
+            <para>We start by modifying the line in question:</para>
 
-              <programlisting language="java">a = a + (a = 2) + ++a - ++b % c--;</programlisting>
+            <programlisting language="java">a = a + (a = 2) + ++a - ++b % c--;</programlisting>
 
-              <para>The expression on the right hand side will be decomposed by the <xref linkend="glo_Java"/> compiler into a sum of four subexpressions to be evaluated from left to right:</para>
+            <para>The expression on the right hand side will be decomposed by the <xref linkend="glo_Java"/> compiler into a sum of four subexpressions to be evaluated from left to right:</para>
 
-              <orderedlist>
-                <listitem>
-                  <para><code>a</code></para>
-                </listitem>
+            <orderedlist>
+              <listitem>
+                <para><code>a</code></para>
+              </listitem>
 
-                <listitem>
-                  <para><code>a=2</code></para>
-                </listitem>
+              <listitem>
+                <para><code>a=2</code></para>
+              </listitem>
 
-                <listitem>
-                  <para><code>++a</code></para>
-                </listitem>
+              <listitem>
+                <para><code>++a</code></para>
+              </listitem>
 
-                <listitem>
-                  <para><code>++b % c--</code></para>
+              <listitem>
+                <para><code>++b % c--</code></para>
 
-                  <para>This one deserves further attention: The <code>%</code> operator will act on <code>b</code>'s value <emphasis role="bold">after</emphasis> incrementing (infix notation) and <code>c</code>'s value <emphasis role="bold">before</emphasis> decrementing (postfix notation).</para>
-                </listitem>
-              </orderedlist>
+                <para>This one deserves further attention: The <code>%</code> operator will act on <code>b</code>'s value <emphasis role="bold">after</emphasis> incrementing (infix notation) and <code>c</code>'s value <emphasis role="bold">before</emphasis> decrementing (postfix notation).</para>
+              </listitem>
+            </orderedlist>
 
-              <para>We introduce a helper variable <code>sum</code> for decomposing our code into the above described four subexpressions:</para>
+            <para>We introduce a helper variable <code>sum</code> for decomposing our code into the above described four subexpressions:</para>
 
-              <programlisting language="java">int a = 3, b = 6, c = 2;
+            <programlisting language="java">int a = 3, b = 6, c = 2;
 
 int sum = a;  // First subexpression
 a = 2;
@@ -3918,10 +3915,45 @@ c--;
 a = sum;      // Assigning the result
 
 System.out.println("a = " + a + ", b = " + b + ", c = " + c);</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+  </section>
+
+  <section xml:id="sd1_sect_comments">
+    <title>Comments</title>
+
+    <figure xml:id="sd1_fig_commentsTwoFlavors">
+      <title>Two comment flavors</title>
+
+      <glosslist>
+        <glossentry>
+          <glossterm>Multiline comment</glossterm>
+
+          <glossdef>
+            <programlisting language="java">int a;
+/*  We define a variable. Then
+    subsequently a value is being assigned */    
+a = 33;</programlisting>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>End of line comment</glossterm>
+
+          <glossdef>
+            <programlisting language="java">int a;  // We define a variable.
+a = 33; // Then subsequently a value is being assigned       </programlisting>
+          </glossdef>
+        </glossentry>
+      </glosslist>
+    </figure>
+
+    <figure xml:id="sd1_fig_inlineComment">
+      <title><quote>Inline</quote> comments</title>
+
+      <programlisting language="java">int strength = a /* fixed value */ + b /* age */ + c /* courage */;       </programlisting>
+    </figure>
   </section>
 </chapter>
diff --git a/Doc/Sd1/statements.xml b/Doc/Sd1/statements.xml
index 3ac14ae84..d1f07fc16 100644
--- a/Doc/Sd1/statements.xml
+++ b/Doc/Sd1/statements.xml
@@ -1,103 +1,336 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<chapter version="5.1" xml:id="sw1ChapterStatements"
-         xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink"
-         xmlns:xi="http://www.w3.org/2001/XInclude"
-         xmlns:svg="http://www.w3.org/2000/svg"
-         xmlns:ns="http://docbook.org/ns/transclusion"
-         xmlns:m="http://www.w3.org/1998/Math/MathML"
-         xmlns:html="http://www.w3.org/1999/xhtml"
-         xmlns:db="http://docbook.org/ns/docbook">
+<chapter annotations="slide" version="5.1" xml:id="sd1_chap_Statements" 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" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:db="http://docbook.org/ns/docbook">
   <title>Statements</title>
 
-  <section xml:id="sd1SectExternalLogicExercises">
-    <title>Logic related external exercises</title>
+  <figure xml:id="sd1_fig_StatementTypes">
+    <title>Purposes of statements</title>
 
-    <para>Solve:</para>
+    <itemizedlist>
+      <listitem>
+        <para>Declaring variables and assigning values.</para>
+      </listitem>
+
+      <listitem>
+        <para>Creating output.</para>
+      </listitem>
+
+      <listitem>
+        <para>Control <emphasis role="bold">whether</emphasis> code will be executed.</para>
+      </listitem>
+
+      <listitem>
+        <para>Control <emphasis role="bold">how often</emphasis> code will be executed.</para>
+      </listitem>
+    </itemizedlist>
+  </figure>
+
+  <figure xml:id="sd1_fig_StatementEndSemicolon">
+    <title>General Syntax</title>
+
+    <para>Statement body terminated by <quote>;</quote>:</para>
+
+    <programlisting language="none">{statement} ;</programlisting>
+  </figure>
+
+  <figure xml:id="sd1_fig_StatementDeclareVariable">
+    <title>Example: Declaring and assigning variables</title>
+
+    <glosslist>
+      <glossentry>
+        <glossterm>Variable declaration</glossterm>
+
+        <glossdef>
+          <programlisting language="java">int a;</programlisting>
+        </glossdef>
+      </glossentry>
+
+      <glossentry>
+        <glossterm>Value assignment</glossterm>
+
+        <glossdef>
+          <programlisting language="java">a = 33;</programlisting>
+        </glossdef>
+      </glossentry>
+
+      <glossentry>
+        <glossterm>Combined declaration and assignment</glossterm>
+
+        <glossdef>
+          <programlisting language="java">int a = 33;</programlisting>
+        </glossdef>
+      </glossentry>
+    </glosslist>
+  </figure>
+
+  <figure xml:id="sd1_fig_StatementVsExpression">
+    <title>Expression <abbrev>vs.</abbrev> statement</title>
+
+    <glosslist>
+      <glossentry>
+        <glossterm>Expression</glossterm>
+
+        <glossdef>
+          <programlisting language="java">++a - 4</programlisting>
+        </glossdef>
+      </glossentry>
+
+      <glossentry>
+        <glossterm>Statement</glossterm>
+
+        <glossdef>
+          <programlisting language="java">b = ++a - 4;</programlisting>
+
+          <para>Notice the trailing <quote><code>;</code></quote>.</para>
+        </glossdef>
+      </glossentry>
+    </glosslist>
+  </figure>
+
+  <figure xml:id="sd1_fig_MultiStmtPerLine">
+    <title>Multiple statements per line</title>
+
+    <programlisting language="java">a *= 3; b = ++a - 4;        </programlisting>
+
+    <para>Discouraged by good coding practices:</para>
 
     <itemizedlist>
       <listitem>
-        <para><link
-        xlink:href="http://codingbat.com/java/Warmup-1">Warmup-1</link>
-        excluding <link
-        xlink:href="http://codingbat.com/prob/p191914">Warmup-1 &gt;
-        notString</link>.</para>
+        <para>Poor readability</para>
       </listitem>
 
       <listitem>
-        <para><link
-        xlink:href="http://codingbat.com/java/Logic-1">Logic-1</link>.</para>
+        <para>Hampers debugging</para>
       </listitem>
     </itemizedlist>
+  </figure>
+
+  <figure xml:id="sd1_fig_DebugMultiStmtPerLine">
+    <title>Debugging multiple statements per line</title>
+
+    <mediaobject>
+      <imageobject>
+        <imagedata fileref="Ref/Statements/multipleStatementPerLine.png"/>
+      </imageobject>
+    </mediaobject>
+  </figure>
+
+  <figure xml:id="sd1_fig_Blocks">
+    <title>Blocks</title>
+
+    <programlisting language="java">double initialAmount = 34;
+{ // first block
+  final double interestRate = 1.2; // 1.2%
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} // End of first block
+{ // second block
+  final double interestRate = 0.8; // 0.8%
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} // End of second block</programlisting>
+
+    <informaltable border="1">
+      <tr>
+        <td><itemizedlist>
+            <listitem>
+              <para>Defining scopes</para>
+            </listitem>
+
+            <listitem>
+              <para>Unit of work</para>
+            </listitem>
+          </itemizedlist></td>
+
+        <td><itemizedlist>
+            <listitem>
+              <para><code>if</code>: Conditional block execution.</para>
+            </listitem>
+
+            <listitem>
+              <para><code>for</code> / <code>while</code>: Repeated block execution.</para>
+            </listitem>
+          </itemizedlist></td>
+      </tr>
+    </informaltable>
+  </figure>
+
+  <section xml:id="sd1_sect_statements_if">
+    <title>The if statement</title>
+
+    <figure xml:id="sd1_fig_if">
+      <title><code>if</code> ... <code>else</code> for block selection</title>
+
+      <programlisting language="java">double initialAmount = 320000;
+
+if (100000 &lt;= initialAmount) { // Rich customer, higher interest rate
+  final double interestRate = 1.2;
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} else { // Joe customer, standard interest rate
+  final double interestRate = 0.8; // 0.8%
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+}</programlisting>
+
+      <informaltable border="1">
+        <tr>
+          <td><itemizedlist>
+              <listitem>
+                <para>Decision on boolean expression</para>
+              </listitem>
+
+              <listitem>
+                <para>Acting on blocks or single statements</para>
+              </listitem>
+            </itemizedlist></td>
+
+          <td><itemizedlist>
+              <listitem>
+                <para>Must have one branch.</para>
+              </listitem>
+
+              <listitem>
+                <para>May have a second branch.</para>
+              </listitem>
+            </itemizedlist></td>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <figure xml:id="sd1_fig_IfElseIf">
+      <title><code>if</code> ... <code>else if</code> ... <code>else</code> for block selection</title>
+
+      <programlisting language="java">double initialAmount = 3200;
+
+if (100000 &lt;= initialAmount) { // Rich customer, higher interest rate
+  final double interestRate = 1.2;
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} else if (1000 &lt;= initialAmount){ // Joe customer, standard interest rate
+  final double interestRate = 0.8; // 0.8%
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} else { // Capitalism: Sorry, but ...
+    System.out.println("Interest:" + 0);
+}</programlisting>
+
+      <informaltable border="1">
+        <tr>
+          <td><itemizedlist>
+              <listitem>
+                <para>One added branch per <code>else if</code></para>
+              </listitem>
+            </itemizedlist></td>
+
+          <td><itemizedlist>
+              <listitem>
+                <para>May (still) have a final branch.</para>
+              </listitem>
+            </itemizedlist></td>
+        </tr>
+      </informaltable>
+    </figure>
+
+    <qandaset defaultlabel="qanda" xml:id="sd1_qanda_GuessingResults">
+      <title>Replacing <code>if else (...)</code> by introducing a nested <code>if ... else</code></title>
+
+      <qandadiv>
+        <qandaentry>
+          <question>
+            <para>A computer newbie did not yet read about the <code>else if(...)</code> branch construct but nevertheless tries to implement the logic being shown in <xref linkend="sd1_fig_IfElseIf"/>. Please help by just using <code>if(...) ... else</code> statements!</para>
+
+            <tip>
+              <para>As the title suggests you may want to use two nested <code>if</code> constructs.</para>
+            </tip>
+          </question>
+
+          <answer>
+            <para>The solution requires replacing the <code>else if(...)</code> branch by a nested <code>if(...){ ...} else</code> statement and moving the final <code>else</code> block into the nested one.</para>
+
+            <programlisting language="java">double initialAmount = 3200;
+
+if (100000 &lt;= initialAmount) { // Rich customer, higher interest rate
+  final double interestRate = 1.2;
+  System.out.println("Interest:" + initialAmount * interestRate / 100);
+} else {
+    if (1000 &lt;= initialAmount){ // Joe customer, standard interest rate
+        final double interestRate = 0.8; // 0.8%
+        System.out.println("Interest:" + initialAmount * interestRate / 100);
+    } else { // Capitalism: Sorry, but ...
+        System.out.println("Interest:" + 0);
+    }
+}</programlisting>
+          </answer>
+        </qandaentry>
+      </qandadiv>
+    </qandaset>
+
+    <figure xml:id="sd1_fig_useScannerClass">
+      <title>User input by <link xlink:href="https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html">Scanner</link></title>
+
+      <programlisting language="java">final Scanner scan = new Scanner(System.in);
+System.out.print("Enter a value:");
+final int value = scan.nextInt();
+System.out.println("You entered " + value);</programlisting>
+
+      <para>See <methodname xlink:href="https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextBoolean()">nextBoolean()</methodname>, <methodname><link xlink:href="https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextByte()">nextByte()</link></methodname> and friends.</para>
+    </figure>
   </section>
 
-  <section xml:id="sw1Conditionals">
-    <title>Conditional clauses</title>
+  <section xml:id="ex">
+    <title>Exercises</title>
+
+    <section xml:id="sw1Conditionals">
+      <title>Conditional clauses</title>
 
-    <section xml:id="sd1SectAtTheBar">
-      <title>At the bar</title>
+      <section xml:id="sd1SectAtTheBar">
+        <title>At the bar</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaAtTheBar">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>This example uses existing program code to be explained
-              later. You'll implement an interactive application which reacts
-              to user input being entered in a terminal like window as being
-              shown in the following video:</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaAtTheBar">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>This example uses existing program code to be explained later. You'll implement an interactive application which implements a dialogue with a user asking for input to be entered in a terminal like window as being shown in the following video:</para>
 
-              <figure xml:id="sd1VideoUsingScannerClass">
-                <title>Using a <classname
-                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html">Scanner</classname>
-                class collecting user input.</title>
+                <figure xml:id="sd1VideoUsingScannerClass">
+                  <title>Using a <classname xlink:href="https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html">Scanner</classname> class collecting user input.</title>
 
-                <mediaobject>
-                  <videoobject>
-                    <videodata fileref="Ref/Video/scannerUsage.webm"/>
-                  </videoobject>
-                </mediaobject>
-              </figure>
+                  <mediaobject>
+                    <videoobject>
+                      <videodata fileref="Ref/Video/scannerUsage.webm"/>
+                    </videoobject>
+                  </mediaobject>
+                </figure>
 
-              <para>A bar uses a software system for picking up orders. The
-              bar will serve just orange juice and beer. For legal reasons the
-              latter will only be served to persons of at least 16 years of
-              age. We show three possible user dialogues:</para>
+                <para>A bar uses a software system for picking up orders. The bar will serve just orange juice and beer. For legal reasons the latter will only be served to persons of at least 16 years of age. We show three possible user dialogues:</para>
 
-              <orderedlist>
-                <listitem>
-                  <screen>On offer:
+                <orderedlist>
+                  <listitem>
+                    <screen>On offer:
   1=Beer
   2=Orange juice
 
 Your choice:&gt;1
 Tell me your age please:&gt;15
 Sorry, we are not allowed to serve beer to underage customers</screen>
-                </listitem>
+                  </listitem>
 
-                <listitem>
-                  <screen>On offer:
+                  <listitem>
+                    <screen>On offer:
   1=Beer
   2=Orange juice
 
 Your choice:&gt;2
 o.K.</screen>
-                </listitem>
+                  </listitem>
 
-                <listitem>
-                  <screen>On offer:
+                  <listitem>
+                    <screen>On offer:
   1=Beer
   2=Orange juice
 
 Your choice:&gt;4
 Sorry, invalid choice</screen>
-                </listitem>
-              </orderedlist>
+                  </listitem>
+                </orderedlist>
 
-              <para>Since you may not yet know how to enable <xref
-              linkend="glo_Java"/> applications asking for user input simply
-              use the following recipe to get started:</para>
+                <para>Since you may not yet know how to enable <xref linkend="glo_Java"/> applications asking for user input simply use the following recipe to get started:</para>
 
-              <programlisting language="java">package start;
+                <programlisting language="java">package start;
 
 import java.util.Scanner;
 
@@ -114,10 +347,10 @@ public class BarOrder {
       scan.close();
    }
 }</programlisting>
-            </question>
+              </question>
 
-            <answer>
-              <programlisting language="java">package start;
+              <answer>
+                <programlisting language="java">package start;
 
 import java.util.Scanner;
 
@@ -152,43 +385,38 @@ public class BarOrder {
         scan.close();
     }
 }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sd1SectLeapYear">
-      <title>Leap years</title>
+      <section xml:id="sd1SectLeapYear">
+        <title>Leap years</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaLeapYear">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>We want to write an application telling whether a given
-              year is a leap year or not. The following dialogue may serve as
-              an example:</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaLeapYear">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>We want to write an application telling whether a given year is a leap year or not. The following dialogue may serve as an example:</para>
 
-              <screen>Enter a year:&gt;1980
+                <screen>Enter a year:&gt;1980
 Year 1980 is a leap year</screen>
 
-              <screen>Enter a year:&gt;1900
+                <screen>Enter a year:&gt;1900
 Year 1900 is no leap year</screen>
 
-              <para>You may reuse the user input handling code from the
-              previous example <xref linkend="sd1SectAtTheBar"/>.</para>
+                <para>You may reuse the user input handling code from the previous example <xref linkend="sd1SectAtTheBar"/>.</para>
 
-              <tip>
-                <para>Read about the Gregorian Calendar which defines rules
-                governing leap years.</para>
-              </tip>
-            </question>
+                <tip>
+                  <para>Read about the Gregorian Calendar which defines rules governing leap years.</para>
+                </tip>
+              </question>
 
-            <answer>
-              <para>A first straightforward rule translation based solution
-              reads:</para>
+              <answer>
+                <para>A first straightforward rule translation based solution reads:</para>
 
-              <programlisting language="java">package start;
+                <programlisting language="java">package start;
 
 import java.util.Scanner;
 
@@ -213,11 +441,9 @@ public class LeapYear {
    }
 }</programlisting>
 
-              <para>This solution contains two identical print statements.
-              Developers don't favour redundancies. Combining the first two
-              <code>if</code> branches into one resolves the issue:</para>
+                <para>This solution contains two identical print statements. Developers don't favour redundancies. Combining the first two <code>if</code> branches into one resolves the issue:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
     
       final Scanner scan = new Scanner(System.in); // Read user input
       System.out.print("Enter a year:&gt;");
@@ -232,36 +458,32 @@ public class LeapYear {
           System.out.println("Year " + year + " is no leap year");
        }
    }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sd1SectRomanNumerals">
-      <title>Roman numerals</title>
+      <section xml:id="sd1SectRomanNumerals">
+        <title>Roman numerals</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaRomanNumerals">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Write an application which turns a positive integer values
-              up to and including 10 into <link
-              xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman
-              numeral</link> representation:</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaRomanNumerals">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Write an application which turns a positive integer values up to and including 10 into <link xlink:href="https://en.wikipedia.org/wiki/Roman_numerals">Roman numeral</link> representation:</para>
 
-              <screen>Enter a number:&gt;9
+                <screen>Enter a number:&gt;9
 IX</screen>
 
-              <para>If the user enters a value greater than ten the following
-              output is to be expected:</para>
+                <para>If the user enters a value greater than ten the following output is to be expected:</para>
 
-              <screen>Enter a number:&gt;14
+                <screen>Enter a number:&gt;14
 Decimal value 14 not yet implemented</screen>
-            </question>
+              </question>
 
-            <answer>
-              <para><programlisting language="java">   public static void main(String[] args) {
+              <answer>
+                <para><programlisting language="java">   public static void main(String[] args) {
     
       final Scanner scan = new Scanner(System.in); // Read user input
       System.out.print("Enter a number:&gt;");
@@ -283,28 +505,26 @@ Decimal value 14 not yet implemented</screen>
               break;
       }   
    }</programlisting></para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
     </section>
-  </section>
 
-  <section xml:id="sd1StatementsLoops">
-    <title>Loops</title>
+    <section xml:id="sd1StatementsLoops">
+      <title>Loops</title>
 
-    <section xml:id="sd1SectOnlyEven">
-      <title>Printing even numbers</title>
+      <section xml:id="sd1SectOnlyEven">
+        <title>Printing even numbers</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaOnlyEven">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>The following slightly modified snippet has been taken
-              from the <quote>Statements</quote> section of <xref
-              linkend="bib_Kurniawan2015"/>:</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaOnlyEven">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>The following slightly modified snippet has been taken from the <quote>Statements</quote> section of <xref linkend="bib_Kurniawan2015"/>:</para>
 
-              <programlisting language="java">      final int limit = 14;
+                <programlisting language="java">      final int limit = 14;
       
       for (int i = 0; i &lt; limit; i++) {
          if (i % 2 == 0) {
@@ -312,10 +532,9 @@ Decimal value 14 not yet implemented</screen>
          }
       }</programlisting>
 
-              <para>This code effectively filters odd numbers and prints only
-              even ones:</para>
+                <para>This code effectively filters odd numbers and prints only even ones:</para>
 
-              <screen>0
+                <screen>0
 2
 4
 6
@@ -323,42 +542,35 @@ Decimal value 14 not yet implemented</screen>
 10
 12</screen>
 
-              <para>Modify this code to work without requiring the inner
-              <quote>if</quote> statement.</para>
+                <para>Modify this code to work without requiring the inner <quote>if</quote> statement.</para>
 
-              <tip>
-                <para>Rather then filtering unwanted values try to avoid them
-                in the first place by modifying the enclosing loop.</para>
-              </tip>
-            </question>
+                <tip>
+                  <para>Rather then filtering unwanted values try to avoid them in the first place by modifying the enclosing loop.</para>
+                </tip>
+              </question>
 
-            <answer>
-              <programlisting language="java">      final int limit = 14;
+              <answer>
+                <programlisting language="java">      final int limit = 14;
       
       for (int i = 0; i &lt; limit; i += 2) {
          System.out.println(i);
       }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
+
+      <section xml:id="sw1SectXmas">
+        <title>Merry Xmas</title>
 
-    <section xml:id="sw1SectXmas">
-      <title>Merry Xmas</title>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaXmasTree">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Write an application to print an ASCII art Xmas tree.
-              Provide a configurable parameter <code>numberOfRows</code> which
-              allows for controlling the tree's size. The following example
-              shows a tree spanning 6 rows excluding the top (X) and the two
-              bottom (###) lines (possibly bad page break in the printed
-              version of this document):</para>
-
-              <screen>      X
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaXmasTree">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Write an application to print an ASCII art Xmas tree. Provide a configurable parameter <code>numberOfRows</code> which allows for controlling the tree's size. The following example shows a tree spanning 6 rows excluding the top (X) and the two bottom (###) lines (possibly bad page break in the printed version of this document):</para>
+
+                <screen>      X
       *
      ***
     *****
@@ -368,19 +580,18 @@ Decimal value 14 not yet implemented</screen>
      ###
      ###</screen>
 
-              <tip>
-                <para>The following example printing a triangle may serve as a
-                starting point:</para>
+                <tip>
+                  <para>The following example printing a triangle may serve as a starting point:</para>
 
-                <informaltable border="1">
-                  <colgroup width="47%"/>
+                  <informaltable border="1">
+                    <colgroup width="47%"/>
 
-                  <colgroup width="5%"/>
+                    <colgroup width="5%"/>
 
-                  <colgroup width="48%"/>
+                    <colgroup width="48%"/>
 
-                  <tr>
-                    <td valign="top"><programlisting language="java">   public static void main(String[] args) {
+                    <tr>
+                      <td valign="top"><programlisting language="java">   public static void main(String[] args) {
 
       int numberOfRows = 7;
       
@@ -392,22 +603,22 @@ Decimal value 14 not yet implemented</screen>
       }
    }</programlisting></td>
 
-                    <td align="center">⟹</td>
+                      <td align="center">⟹</td>
 
-                    <td valign="top"><screen>*
+                      <td valign="top"><screen>*
 **
 ***
 ****
 *****
 ******
 *******</screen></td>
-                  </tr>
-                </informaltable>
-              </tip>
-            </question>
+                    </tr>
+                  </informaltable>
+                </tip>
+              </question>
 
-            <answer>
-              <programlisting language="java">   public static void main(String[] args) {      
+              <answer>
+                <programlisting language="java">   public static void main(String[] args) {      
       
       // Example: 6 rows, tree's body loop index ranging from 0 to 5
       //
@@ -441,8 +652,7 @@ Decimal value 14 not yet implemented</screen>
          
          for (int x = 0; x &lt; 2 * row + 1; x ++) {        // .. then printing (2*row+1)
                                                          // body ('*') characters ...
-         System.out.print('*');                  // May try <xref
-                  linkend="glo_unicode"/> 'â–²' instead
+         System.out.print('*');                  // May try <xref linkend="glo_unicode"/> 'â–²' instead
          }
          System.out.print("\n");               // ... and finally terminating the 
       }                                        // current body row.
@@ -460,23 +670,22 @@ Decimal value 14 not yet implemented</screen>
       }                                                  //part ...
       System.out.println("###");                         // ... finished.
    }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sw1SectXmasMoreFun">
-      <title>More fun with Xmas trees</title>
+      <section xml:id="sw1SectXmasMoreFun">
+        <title>More fun with Xmas trees</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaXmasMoreFun">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Producing the following ASCII art for configurable Xmas
-              tree sizes is a bit more challenging :</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaXmasMoreFun">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Producing the following ASCII art for configurable Xmas tree sizes is a bit more challenging :</para>
 
-              <screen>            \ /
+                <screen>            \ /
           --&gt;*&lt;--
             /_\
            /_\_\
@@ -491,18 +700,15 @@ Decimal value 14 not yet implemented</screen>
       /_/_/_/_/_/_/_\
            [___]</screen>
 
-              <tip>
-                <para>Inside a string literal a backslash <quote>\</quote> has
-                to be escaped by using a double backslash
-                <quote>\\</quote>.</para>
-              </tip>
-            </question>
+                <tip>
+                  <para>Inside a string literal a backslash <quote>\</quote> has to be escaped by using a double backslash <quote>\\</quote>.</para>
+                </tip>
+              </question>
 
-            <answer>
-              <para>We start from a version being fully covered by our current
-              knowledge:</para>
+              <answer>
+                <para>We start from a version being fully covered by our current knowledge:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {      
+                <programlisting language="java">   public static void main(String[] args) {      
       
       // Example: 5 row groups, tree's body loop index ranging from 0 to 4
       
@@ -581,20 +787,13 @@ Decimal value 14 not yet implemented</screen>
       System.out.println("[___]");                      // printing the trunk.
    }</programlisting>
 
-              <para>This solution is a bit cumbersome: It involves a repeating
-              task namely indenting lines by a given amount of spaces.</para>
+                <para>This solution is a bit cumbersome: It involves a repeating task namely indenting lines by a given amount of spaces.</para>
 
-              <para>So far we have not yet introduced methods. In anticipation
-              of upcoming lessons we provide an alternate solution by
-              introducing a method <methodname>printIndented(...)</methodname>
-              which prints a string being indented by a given number of
-              whitespace characters. The System.out.format(...) method will be
-              explained in <xref
-              linkend="sw1SectSquareNumbersFormatted"/>.</para>
+                <para>So far we have not yet introduced methods. In anticipation of upcoming lessons we provide an alternate solution by introducing a method <methodname>printIndented(...)</methodname> which prints a string being indented by a given number of whitespace characters. The System.out.format(...) method will be explained in <xref linkend="sw1SectSquareNumbersFormatted"/>.</para>
 
-              <para>This effectively makes our code more readable:</para>
+                <para>This effectively makes our code more readable:</para>
 
-              <programlisting language="java">public class XmasTree {
+                <programlisting language="java">public class XmasTree {
 
    private static void printIndent(int indentation, String s) {
       if (0 &lt; indentation) {
@@ -658,31 +857,30 @@ Decimal value 14 not yet implemented</screen>
    }
 }
 </programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sd1SectSquareNumberTable">
-      <title>A table of square numbers</title>
+      <section xml:id="sd1SectSquareNumberTable">
+        <title>A table of square numbers</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareNumberTable">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Write an application which creates the following table of
-              integer square numbers (<inlineequation>
-                  <m:math display="inline">
-                    <m:msup>
-                      <m:mi>n</m:mi>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareNumberTable">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Write an application which creates the following table of integer square numbers (<inlineequation>
+                    <m:math display="inline">
+                      <m:msup>
+                        <m:mi>n</m:mi>
 
-                      <m:mn>2</m:mn>
-                    </m:msup>
-                  </m:math>
-                </inlineequation>):</para>
+                        <m:mn>2</m:mn>
+                      </m:msup>
+                    </m:math>
+                  </inlineequation>):</para>
 
-              <screen>n | n * n
+                <screen>n | n * n
 --+------
 0 | 0
 1 | 1
@@ -694,16 +892,12 @@ Decimal value 14 not yet implemented</screen>
 7 | 49
 8 | 64
 9 | 81</screen>
-            </question>
+              </question>
 
-            <answer>
-              <para>The implementation requires <methodname><link
-              xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link
-              xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println--">println</link>(...)</methodname>
-              statements to print the table's head and a loop for printing the
-              body:</para>
+              <answer>
+                <para>The implementation requires <methodname><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println--">println</link>(...)</methodname> statements to print the table's head and a loop for printing the body:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
       
       System.out.println("n | n * n");          // Printing the table's head
       System.out.println("--+------");
@@ -712,23 +906,21 @@ Decimal value 14 not yet implemented</screen>
          System.out.println(i + " | " + i * i);
       }
    }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
 
-      <section xml:id="sw1SectSquareNumbersFormatted">
-        <title>Tidy up the mess!</title>
+        <section xml:id="sw1SectSquareNumbersFormatted">
+          <title>Tidy up the mess!</title>
 
-        <qandaset defaultlabel="qanda"
-                  xml:id="sd1QandaSquareNumberTableFormatted">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>Running the previous code for values beyond 9 suffers
-                from ugly formatting:</para>
+          <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareNumberTableFormatted">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>Running the previous code for values beyond 9 suffers from ugly formatting:</para>
 
-                <screen>n | n * n
+                  <screen>n | n * n
 --+------
 0 | 0
 1 | 1
@@ -742,22 +934,19 @@ Decimal value 14 not yet implemented</screen>
 19 | 361
 20 | 400</screen>
 
-                <para>Modify your code by:</para>
+                  <para>Modify your code by:</para>
 
-                <orderedlist>
-                  <listitem>
-                    <para>introducing a single integer constant to define the
-                    number of values to be printed (i.e. 20 in the above
-                    example).</para>
-                  </listitem>
+                  <orderedlist>
+                    <listitem>
+                      <para>introducing a single integer constant to define the number of values to be printed (i.e. 20 in the above example).</para>
+                    </listitem>
 
-                  <listitem>
-                    <para>Right indent all integer values being
-                    printed.</para>
-                  </listitem>
-                </orderedlist>
+                    <listitem>
+                      <para>Right indent all integer values being printed.</para>
+                    </listitem>
+                  </orderedlist>
 
-                <para>Your application's output shall look like:<screen> n | n * n
+                  <para>Your application's output shall look like:<screen> n | n * n
 ---+------
   0|     0
   1|     1
@@ -769,22 +958,14 @@ Decimal value 14 not yet implemented</screen>
 ...
  19|   361
  20|   400</screen><tip>
-                    <para>Read the track <link
-                    xlink:href="https://docs.oracle.com/javase/tutorial/java/data/numberformat.html">Formatting
-                    Numeric Print Output</link> and learn how to style numeric
-                    output.</para>
-                  </tip></para>
-              </question>
+                      <para>Read the track <link xlink:href="https://docs.oracle.com/javase/tutorial/java/data/numberformat.html">Formatting Numeric Print Output</link> and learn how to style numeric output.</para>
+                    </tip></para>
+                </question>
 
-              <answer>
-                <para>The key difference is replacing <methodname><link
-                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link
-                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println--">println</link>(...)</methodname>
-                statements by <methodname><link
-                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link
-                xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#format-java.lang.String-java.lang.Object...-">format</link>(...)</methodname>:</para>
+                <answer>
+                  <para>The key difference is replacing <methodname><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#println--">println</link>(...)</methodname> statements by <methodname><link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/lang/System.html#out">System.out</link>.<link xlink:href="https://docs.oracle.com/javase/8/docs/api/java/io/PrintStream.html#format-java.lang.String-java.lang.Object...-">format</link>(...)</methodname>:</para>
 
-                <programlisting language="java">   public static void main(String[] args) {
+                  <programlisting language="java">   public static void main(String[] args) {
       
       final int limit = 20;               // The number of records to be printed
       
@@ -797,24 +978,22 @@ Decimal value 14 not yet implemented</screen>
                             i , i * i);   // Values being inserted in above format
       }                                   // string.
    }</programlisting>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
-      </section>
-
-      <section xml:id="sw1SectSquareNumbersHtmlFormatted">
-        <title>HTML-ify me</title>
-
-        <qandaset defaultlabel="qanda"
-                  xml:id="sw1QandaSquareNumbersHtmlFormatted">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>Modify the previous code to generate HTML output instead
-                of pure text and watch the result in a WEB browser:</para>
-
-                <programlisting language="xml">&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
+
+        <section xml:id="sw1SectSquareNumbersHtmlFormatted">
+          <title>HTML-ify me</title>
+
+          <qandaset defaultlabel="qanda" xml:id="sw1QandaSquareNumbersHtmlFormatted">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>Modify the previous code to generate HTML output instead of pure text and watch the result in a WEB browser:</para>
+
+                  <programlisting language="xml">&lt;html xmlns='http://www.w3.org/1999/xhtml'&gt;
   &lt;head&gt;
       &lt;title&gt;A square table&lt;/title&gt;
   &lt;/head&gt;
@@ -836,10 +1015,10 @@ Decimal value 14 not yet implemented</screen>
     &lt;/table&gt;
   &lt;/body&gt;
 &lt;/html&gt;</programlisting>
-              </question>
+                </question>
 
-              <answer>
-                <programlisting language="java">  public static void main(String[] args) {
+                <answer>
+                  <programlisting language="java">  public static void main(String[] args) {
       
       final int limit = 20;               // The number of records to be printed
       
@@ -869,25 +1048,22 @@ Decimal value 14 not yet implemented</screen>
                   + "  &lt;/body&gt;\n"
                   + "&lt;/html&gt;\n");
   }</programlisting>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
-      </section>
-
-      <section xml:id="sd1SectIntermediateMultiplication">
-        <title>Auxiliary Example, part 1: A multiplication table</title>
-
-        <qandaset defaultlabel="qanda"
-                  xml:id="sd1QandaIntermediateMultiplyTable1">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>In order to prepare a more sophisticated square number
-                table we supply a slightly different exercise producing a
-                multiplication table:</para>
-
-                <screen> * |    1    2    3    4    5    6    7    8    9   10  
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
+
+        <section xml:id="sd1SectIntermediateMultiplication">
+          <title>Auxiliary Example, part 1: A multiplication table</title>
+
+          <qandaset defaultlabel="qanda" xml:id="sd1QandaIntermediateMultiplyTable1">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>In order to prepare a more sophisticated square number table we supply a slightly different exercise producing a multiplication table:</para>
+
+                  <screen> * |    1    2    3    4    5    6    7    8    9   10  
 ---+--------------------------------------------------
   1|    1    2    3    4    5    6    7    8    9   10  
   2|    2    4    6    8   10   12   14   16   18   20  
@@ -900,26 +1076,22 @@ Decimal value 14 not yet implemented</screen>
   9|    9   18   27   36   45   54   63   72   81   90  
  10|   10   20   30   40   50   60   70   80   90  100  </screen>
 
-                <para>The number of rows and columns are equal. Provide an
-                appropriate parameter <code>final int limit = ...</code> so
-                that your implementation works for different values just by
-                changing its value.</para>
+                  <para>The number of rows and columns are equal. Provide an appropriate parameter <code>final int limit = ...</code> so that your implementation works for different values just by changing its value.</para>
 
-                <tip>
-                  <para>You'll need an inner loop nested within an outer one
-                  like:</para>
+                  <tip>
+                    <para>You'll need an inner loop nested within an outer one like:</para>
 
-                  <programlisting language="java">for (int y = 0; ...){
+                    <programlisting language="java">for (int y = 0; ...){
 
    for (int x = 0; ... ) {
       ...
    }
 }</programlisting>
-                </tip>
-              </question>
+                  </tip>
+                </question>
 
-              <answer>
-                <programlisting language="java">   public static void main(String[] args) {
+                <answer>
+                  <programlisting language="java">   public static void main(String[] args) {
 
       final int limit = 10;                     // Parameter is subject to change.
 
@@ -944,24 +1116,22 @@ Decimal value 14 not yet implemented</screen>
          System.out.println();
       }
    }</programlisting>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
-      </section>
-
-      <section xml:id="sd1SectIntermediateMultiplication2">
-        <title>Auxiliary Example, part 2: Avoiding redundant entries</title>
-
-        <qandaset defaultlabel="qanda"
-                  xml:id="sd1QandaIntermediateMultiplyTable2">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>It does not make sense to supply both results like e.g.
-                3 * 4 and 4 * 3. Modify your application to generate:</para>
-
-                <screen>  1|    1  
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
+
+        <section xml:id="sd1SectIntermediateMultiplication2">
+          <title>Auxiliary Example, part 2: Avoiding redundant entries</title>
+
+          <qandaset defaultlabel="qanda" xml:id="sd1QandaIntermediateMultiplyTable2">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>It does not make sense to supply both results like e.g. 3 * 4 and 4 * 3. Modify your application to generate:</para>
+
+                  <screen>  1|    1  
   2|    2    4  
   3|    3    6    9  
   4|    4    8   12   16  
@@ -973,15 +1143,12 @@ Decimal value 14 not yet implemented</screen>
  10|   10   20   30   40   50   60   70   80   90  100  
 ---+--------------------------------------------------
  * |    1    2    3    4    5    6    7    8    9   10  </screen>
-              </question>
+                </question>
 
-              <answer>
-                <para>We have to move the header to the table's bottom. Apart
-                from that the required change with respect to your previous
-                exercise is tiny: The <quote>inner</quote> loop must end when
-                reaching the current row's index:</para>
+                <answer>
+                  <para>We have to move the header to the table's bottom. Apart from that the required change with respect to your previous exercise is tiny: The <quote>inner</quote> loop must end when reaching the current row's index:</para>
 
-                <programlisting language="java">      final int limit = 10;                        // Parameter is subject to change.
+                  <programlisting language="java">      final int limit = 10;                        // Parameter is subject to change.
 
       for (int row = 1; row &lt;= limit; row++) {     // Printing rows.
          System.out.format("%3d|  ", row);
@@ -1003,25 +1170,22 @@ Decimal value 14 not yet implemented</screen>
       }
       System.out.println();
 </programlisting>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
-      </section>
-
-      <section xml:id="sd1SectSquareTableBlocks">
-        <title>Creating a <quote>real</quote> square table</title>
-
-        <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareTableBlocks">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>The last square number table solution is only
-                appropriate for smaller amounts of data. Growing number of
-                elements require rearranging values in blocks in order to
-                limit wasting space:</para>
-
-                <screen>  n |  n*n       n |  n*n       n |  n*n       n |  n*n       n |  n*n     
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
+
+        <section xml:id="sd1SectSquareTableBlocks">
+          <title>Creating a <quote>real</quote> square table</title>
+
+          <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareTableBlocks">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>The last square number table solution is only appropriate for smaller amounts of data. Growing number of elements require rearranging values in blocks in order to limit wasting space:</para>
+
+                  <screen>  n |  n*n       n |  n*n       n |  n*n       n |  n*n       n |  n*n     
 ----+--------------+--------------+--------------+--------------+----------
   0 |    0      20 |  400      40 | 1600      60 | 3600      80 | 6400     
   1 |    1      21 |  441      41 | 1681      61 | 3721      81 | 6561     
@@ -1045,32 +1209,27 @@ Decimal value 14 not yet implemented</screen>
  18 |  324      38 | 1444      58 | 3364      78 | 6084      98 | 9604     
  19 |  361      39 | 1521      59 | 3481      79 | 6241      99 | 9801</screen>
 
-                <para>Building a table this way requires some
-                parameters:</para>
+                  <para>Building a table this way requires some parameters:</para>
 
-                <itemizedlist>
-                  <listitem>
-                    <para>The number of blocks in x-direction (5 in the above
-                    example)</para>
-                  </listitem>
+                  <itemizedlist>
+                    <listitem>
+                      <para>The number of blocks in x-direction (5 in the above example)</para>
+                    </listitem>
 
-                  <listitem>
-                    <para>The number of blocks in y-direction (2 in the above
-                    example)</para>
-                  </listitem>
+                    <listitem>
+                      <para>The number of blocks in y-direction (2 in the above example)</para>
+                    </listitem>
 
-                  <listitem>
-                    <para>The number of entries per block (10 in the above
-                    example)</para>
-                  </listitem>
-                </itemizedlist>
+                    <listitem>
+                      <para>The number of entries per block (10 in the above example)</para>
+                    </listitem>
+                  </itemizedlist>
 
-                <para>You may have to nest three loops within each
-                other.</para>
-              </question>
+                  <para>You may have to nest three loops within each other.</para>
+                </question>
 
-              <answer>
-                <programlisting language="java">   public static void main(String[] args) {
+                <answer>
+                  <programlisting language="java">   public static void main(String[] args) {
 
       final int
             numBlocksHorizontal = 5,
@@ -1106,68 +1265,50 @@ Decimal value 14 not yet implemented</screen>
          }
       }
    }</programlisting>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
-      </section>
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
 
-      <section xml:id="sd1SectSquareTableBlocksHtml">
-        <title>Creating a sophisticated HTML version of your square
-        table</title>
+        <section xml:id="sd1SectSquareTableBlocksHtml">
+          <title>Creating a sophisticated HTML version of your square table</title>
 
-        <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareTableBlocksHtml">
-          <qandadiv>
-            <qandaentry>
-              <question>
-                <para>A HTML of version of the previous square number table
-                may look like <link
-                xlink:href="/Sd1/Ref/Src/squareTable.html">squareTable.html</link>.
-                Inspect this generated HTML 5 code and modify your console
-                output from the previous exercise in order to produce
-                identical or similar HTML code.</para>
-
-                <para>Depending on your advance in HTML and <xref
-                linkend="glo_CSS"/> you may want to postpone this exercise
-                until <xref linkend="glo_HTML"/> and <xref linkend="glo_CSS"/>
-                have been thoroughly covered in <link
-                xlink:href="https://www.hdm-stuttgart.de/studenten/stundenplan/vorlesungsverzeichnis/vorlesung_detail?vorlid=5213267">related
-                lectures</link>.</para>
+          <qandaset defaultlabel="qanda" xml:id="sd1QandaSquareTableBlocksHtml">
+            <qandadiv>
+              <qandaentry>
+                <question>
+                  <para>A HTML of version of the previous square number table may look like <link xlink:href="/Sd1/Ref/Src/squareTable.html">squareTable.html</link>. Inspect this generated HTML 5 code and modify your console output from the previous exercise in order to produce identical or similar HTML code.</para>
 
-                <tip>
-                  <para>The <xref linkend="glo_HTML"/> standard allows for
-                  quoting of attribute values either by double or by single
-                  quotes:</para>
+                  <para>Depending on your advance in HTML and <xref linkend="glo_CSS"/> you may want to postpone this exercise until <xref linkend="glo_HTML"/> and <xref linkend="glo_CSS"/> have been thoroughly covered in <link xlink:href="https://www.hdm-stuttgart.de/studenten/stundenplan/vorlesungsverzeichnis/vorlesung_detail?vorlid=5213267">related lectures</link>.</para>
 
-                  <itemizedlist>
-                    <listitem>
-                      <para><code>&lt;col span="2"/&gt;</code></para>
-                    </listitem>
+                  <tip>
+                    <para>The <xref linkend="glo_HTML"/> standard allows for quoting of attribute values either by double or by single quotes:</para>
 
-                    <listitem>
-                      <para><code>&lt;col span='2'/&gt;</code></para>
-                    </listitem>
-                  </itemizedlist>
+                    <itemizedlist>
+                      <listitem>
+                        <para><code>&lt;col span="2"/&gt;</code></para>
+                      </listitem>
 
-                  <para>The latter is more convenient when being embedded in
-                  <xref linkend="glo_Java"/> code since it does not interfere
-                  with string literal delimiters:</para>
+                      <listitem>
+                        <para><code>&lt;col span='2'/&gt;</code></para>
+                      </listitem>
+                    </itemizedlist>
 
-                  <programlisting language="java">System.out.print("&lt;col span='2'/&gt;\n");</programlisting>
+                    <para>The latter is more convenient when being embedded in <xref linkend="glo_Java"/> code since it does not interfere with string literal delimiters:</para>
 
-                  <para>rather than the more clumsy:</para>
+                    <programlisting language="java">System.out.print("&lt;col span='2'/&gt;\n");</programlisting>
 
-                  <programlisting language="java">System.out.print("&lt;col span=\"2\"/&gt;\n");</programlisting>
-                </tip>
-              </question>
+                    <para>rather than the more clumsy:</para>
 
-              <answer>
-                <para>The following solution uses <xref linkend="glo_CSS"/>
-                style definitions in the generated HTML's header section which
-                are subsequently being referenced from the document's
-                body.</para>
+                    <programlisting language="java">System.out.print("&lt;col span=\"2\"/&gt;\n");</programlisting>
+                  </tip>
+                </question>
 
-                <programlisting language="java">   public static void main(String[] args) {
+                <answer>
+                  <para>The following solution uses <xref linkend="glo_CSS"/> style definitions in the generated HTML's header section which are subsequently being referenced from the document's body.</para>
+
+                  <programlisting language="java">   public static void main(String[] args) {
 
       final int numBlocksHorizontal = 5, numBlocksVertical = 2, entriesPerBlock = 10;
 
@@ -1227,344 +1368,296 @@ Decimal value 14 not yet implemented</screen>
       System.out.print("" + "    &lt;/table&gt;\n" + "  &lt;/body&gt;\n" + "&lt;/html&gt;\n");
    }</programlisting>
 
-                <para>Viewing the generated <xref linkend="glo_HTML"/> results
-                in:</para>
-
-                <screenshot>
-                  <info>
-                    <title>A <xref linkend="glo_HTML"/> square table till
-                    20*20.</title>
-                  </info>
-
-                  <mediaobject>
-                    <imageobject>
-                      <imagedata fileref="Ref/Fig/squareTable.png"/>
-                    </imageobject>
-                  </mediaobject>
-                </screenshot>
-              </answer>
-            </qandaentry>
-          </qandadiv>
-        </qandaset>
+                  <para>Viewing the generated <xref linkend="glo_HTML"/> results in:</para>
+
+                  <screenshot>
+                    <info>
+                      <title>A <xref linkend="glo_HTML"/> square table till 20*20.</title>
+                    </info>
+
+                    <mediaobject>
+                      <imageobject>
+                        <imagedata fileref="Ref/Fig/squareTable.png"/>
+                      </imageobject>
+                    </mediaobject>
+                  </screenshot>
+                </answer>
+              </qandaentry>
+            </qandadiv>
+          </qandaset>
+        </section>
       </section>
-    </section>
 
-    <section xml:id="sd1SectPlayingLottery">
-      <title>Playing lottery</title>
-
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaPlayingLottery">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Many lotteries randomly dram numbers from a given set
-              like:</para>
-
-              <glosslist>
-                <glossentry>
-                  <glossterm>Germany / <quote
-                  xml:lang="de">Glücksspirale</quote></glossterm>
-
-                  <glossdef>
-                    <informaltable border="1">
-                      <colgroup width="14%"/>
-
-                      <colgroup width="86%"/>
-
-                      <tr>
-                        <td valign="top">6 out of 49</td>
-
-                        <td><mediaobject>
-                            <imageobject>
-                              <imagedata fileref="Ref/Fig/lotto-spiel77.jpg"/>
-                            </imageobject>
-                          </mediaobject></td>
-                      </tr>
-                    </informaltable>
-                  </glossdef>
-                </glossentry>
-
-                <glossentry>
-                  <glossterm>Italy / <quote>SuperEnalotto</quote></glossterm>
-
-                  <glossdef>
-                    <informaltable border="1">
-                      <colgroup width="14%"/>
-
-                      <colgroup width="86%"/>
-
-                      <tr>
-                        <td valign="top">6 out of 90</td>
-
-                        <td><mediaobject>
-                            <imageobject>
-                              <imagedata fileref="Ref/Fig/superenalotto.gif"/>
-                            </imageobject>
-                          </mediaobject></td>
-                      </tr>
-                    </informaltable>
-                  </glossdef>
-                </glossentry>
-              </glosslist>
-
-              <para>This category of lottery does not care about ordering
-              (apart from so called jolly numbers). The number of
-              possibilities drawing n out of m numbers ignoring their order is
-              being given by the <link
-              xlink:href="https://en.wikipedia.org/wiki/Binomial_coefficient">binomial
-              coefficient <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mrow>
-                        <m:mo>(</m:mo>
+      <section xml:id="sd1SectPlayingLottery">
+        <title>Playing lottery</title>
 
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaPlayingLottery">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Many lotteries randomly dram numbers from a given set like:</para>
+
+                <glosslist>
+                  <glossentry>
+                    <glossterm>Germany / <quote xml:lang="de">Glücksspirale</quote></glossterm>
+
+                    <glossdef>
+                      <informaltable border="1">
+                        <colgroup width="14%"/>
+
+                        <colgroup width="86%"/>
+
+                        <tr>
+                          <td valign="top">6 out of 49</td>
+
+                          <td><mediaobject>
+                              <imageobject>
+                                <imagedata fileref="Ref/Fig/lotto-spiel77.jpg"/>
+                              </imageobject>
+                            </mediaobject></td>
+                        </tr>
+                      </informaltable>
+                    </glossdef>
+                  </glossentry>
+
+                  <glossentry>
+                    <glossterm>Italy / <quote>SuperEnalotto</quote></glossterm>
+
+                    <glossdef>
+                      <informaltable border="1">
+                        <colgroup width="14%"/>
+
+                        <colgroup width="86%"/>
+
+                        <tr>
+                          <td valign="top">6 out of 90</td>
+
+                          <td><mediaobject>
+                              <imageobject>
+                                <imagedata fileref="Ref/Fig/superenalotto.gif"/>
+                              </imageobject>
+                            </mediaobject></td>
+                        </tr>
+                      </informaltable>
+                    </glossdef>
+                  </glossentry>
+                </glosslist>
+
+                <para>This category of lottery does not care about ordering (apart from so called jolly numbers). The number of possibilities drawing n out of m numbers ignoring their order is being given by the <link xlink:href="https://en.wikipedia.org/wiki/Binomial_coefficient">binomial coefficient <inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
                         <m:mrow>
-                          <m:mtable>
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>n</m:mi>
-                              </m:mtd>
-                            </m:mtr>
+                          <m:mo>(</m:mo>
 
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>k</m:mi>
-                              </m:mtd>
-                            </m:mtr>
-                          </m:mtable>
-                        </m:mrow>
+                          <m:mrow>
+                            <m:mtable>
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>n</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>k</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+                            </m:mtable>
+                          </m:mrow>
 
-                        <m:mo>)</m:mo>
+                          <m:mo>)</m:mo>
+                        </m:mrow>
                       </m:mrow>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation></link>:</para>
+                    </m:math>
+                  </inlineequation></link>:</para>
 
-              <informalequation>
-                <m:math display="block">
-                  <m:mrow>
+                <informalequation>
+                  <m:math display="block">
                     <m:mrow>
                       <m:mrow>
-                        <m:mo>(</m:mo>
-
                         <m:mrow>
-                          <m:mtable>
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>n</m:mi>
-                              </m:mtd>
-                            </m:mtr>
+                          <m:mo>(</m:mo>
 
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>k</m:mi>
-                              </m:mtd>
-                            </m:mtr>
-                          </m:mtable>
-                        </m:mrow>
+                          <m:mrow>
+                            <m:mtable>
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>n</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>k</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+                            </m:mtable>
+                          </m:mrow>
 
-                        <m:mo>)</m:mo>
+                          <m:mo>)</m:mo>
+                        </m:mrow>
                       </m:mrow>
-                    </m:mrow>
-
-                    <m:mo>=</m:mo>
 
-                    <m:mfrac>
-                      <m:mrow>
-                        <m:mi>n</m:mi>
-
-                        <m:mo>!</m:mo>
-                      </m:mrow>
+                      <m:mo>=</m:mo>
 
-                      <m:mrow>
+                      <m:mfrac>
                         <m:mrow>
-                          <m:mi>k</m:mi>
+                          <m:mi>n</m:mi>
 
                           <m:mo>!</m:mo>
                         </m:mrow>
 
-                        <m:mo>⁢</m:mo>
-
                         <m:mrow>
                           <m:mrow>
-                            <m:mo>(</m:mo>
+                            <m:mi>k</m:mi>
+
+                            <m:mo>!</m:mo>
+                          </m:mrow>
 
+                          <m:mo>⁢</m:mo>
+
+                          <m:mrow>
                             <m:mrow>
-                              <m:mi>n</m:mi>
+                              <m:mo>(</m:mo>
 
-                              <m:mo>-</m:mo>
+                              <m:mrow>
+                                <m:mi>n</m:mi>
 
-                              <m:mi>k</m:mi>
+                                <m:mo>-</m:mo>
+
+                                <m:mi>k</m:mi>
+                              </m:mrow>
+
+                              <m:mo>)</m:mo>
                             </m:mrow>
 
-                            <m:mo>)</m:mo>
+                            <m:mo>!</m:mo>
                           </m:mrow>
-
-                          <m:mo>!</m:mo>
                         </m:mrow>
-                      </m:mrow>
-                    </m:mfrac>
-                  </m:mrow>
-                </m:math>
-              </informalequation>
-
-              <para>Write an application which allows for calculation of
-              probabilistic success rates. For the German <quote
-              xml:lang="de">Glücksspirale</quote> a possible output
-              reads:</para>
-
-              <screen>Your chance to win when drawing 6 out of 49 is 1 : 13983816</screen>
+                      </m:mfrac>
+                    </m:mrow>
+                  </m:math>
+                </informalequation>
 
-              <tip>
-                <orderedlist>
-                  <listitem>
-                    <para>Store parameters like 6 or 49 in variables to keep
-                    your software flexible.</para>
-                  </listitem>
+                <para>Write an application which allows for calculation of probabilistic success rates. For the German <quote xml:lang="de">Glücksspirale</quote> a possible output reads:</para>
 
-                  <listitem>
-                    <para>Use <code>long</code> variables when appropriate to
-                    avoid overflow errors.</para>
-                  </listitem>
+                <screen>Your chance to win when drawing 6 out of 49 is 1 : 13983816</screen>
 
-                  <listitem>
-                    <para>Even if using variables of type <code>long</code>
-                    you will not be able to represent e.g. <quote>90!</quote>
-                    due to an arithmetic overflow. This problem can be avoided
-                    by simplifying <inlineequation>
-                        <m:math display="inline">
-                          <m:mfrac>
-                            <m:mrow>
-                              <m:mi>n</m:mi>
+                <tip>
+                  <orderedlist>
+                    <listitem>
+                      <para>Store parameters like 6 or 49 in variables to keep your software flexible.</para>
+                    </listitem>
 
-                              <m:mo>!</m:mo>
-                            </m:mrow>
+                    <listitem>
+                      <para>Use <code>long</code> variables when appropriate to avoid overflow errors.</para>
+                    </listitem>
 
-                            <m:mrow>
+                    <listitem>
+                      <para>Even if using variables of type <code>long</code> you will not be able to represent e.g. <quote>90!</quote> due to an arithmetic overflow. This problem can be avoided by simplifying <inlineequation>
+                          <m:math display="inline">
+                            <m:mfrac>
                               <m:mrow>
-                                <m:mi>k</m:mi>
+                                <m:mi>n</m:mi>
 
                                 <m:mo>!</m:mo>
                               </m:mrow>
 
-                              <m:mo>⁢</m:mo>
-
                               <m:mrow>
                                 <m:mrow>
-                                  <m:mo>(</m:mo>
+                                  <m:mi>k</m:mi>
 
+                                  <m:mo>!</m:mo>
+                                </m:mrow>
+
+                                <m:mo>⁢</m:mo>
+
+                                <m:mrow>
                                   <m:mrow>
-                                    <m:mi>n</m:mi>
+                                    <m:mo>(</m:mo>
+
+                                    <m:mrow>
+                                      <m:mi>n</m:mi>
 
-                                    <m:mo>-</m:mo>
+                                      <m:mo>-</m:mo>
 
-                                    <m:mi>k</m:mi>
+                                      <m:mi>k</m:mi>
+                                    </m:mrow>
+
+                                    <m:mo>)</m:mo>
                                   </m:mrow>
 
-                                  <m:mo>)</m:mo>
+                                  <m:mo>!</m:mo>
                                 </m:mrow>
-
-                                <m:mo>!</m:mo>
                               </m:mrow>
-                            </m:mrow>
-                          </m:mfrac>
-                        </m:math>
-                      </inlineequation> beforehand.</para>
-                  </listitem>
+                            </m:mfrac>
+                          </m:math>
+                        </inlineequation> beforehand.</para>
+                    </listitem>
 
-                  <listitem>
-                    <para>The following loop allows for computing a given
-                    number's factorial:</para>
+                    <listitem>
+                      <para>The following loop allows for computing a given number's factorial:</para>
 
-                    <programlisting language="java">long factorial = 1;
+                      <programlisting language="java">long factorial = 1;
 for (int i = 2; i &lt;= number; i++) {
   factorial *= i;
 }</programlisting>
 
-                    <para>Use similar loops for calculation.</para>
-                  </listitem>
-                </orderedlist>
-              </tip>
-            </question>
-
-            <answer>
-              <para>By simple fraction cancellation we get:</para>
-
-              <equation xml:id="sd1EqnBinomialCalculate">
-                <title>Calculating binomials in a slightly more efficient
-                manner rather than just computing three factorials.</title>
+                      <para>Use similar loops for calculation.</para>
+                    </listitem>
+                  </orderedlist>
+                </tip>
+              </question>
 
-                <m:math display="block">
-                  <m:mrow>
-                    <m:mfrac>
-                      <m:mrow>
-                        <m:mi>n</m:mi>
+              <answer>
+                <para>By simple fraction cancellation we get:</para>
 
-                        <m:mo>!</m:mo>
-                      </m:mrow>
+                <equation xml:id="sd1EqnBinomialCalculate">
+                  <title>Calculating binomials in a slightly more efficient manner rather than just computing three factorials.</title>
 
-                      <m:mrow>
+                  <m:math display="block">
+                    <m:mrow>
+                      <m:mfrac>
                         <m:mrow>
-                          <m:mi>k</m:mi>
+                          <m:mi>n</m:mi>
 
                           <m:mo>!</m:mo>
                         </m:mrow>
 
-                        <m:mo>⁢</m:mo>
-
                         <m:mrow>
                           <m:mrow>
-                            <m:mo>(</m:mo>
-
-                            <m:mrow>
-                              <m:mi>n</m:mi>
-
-                              <m:mo>-</m:mo>
-
-                              <m:mi>k</m:mi>
-                            </m:mrow>
+                            <m:mi>k</m:mi>
 
-                            <m:mo>)</m:mo>
+                            <m:mo>!</m:mo>
                           </m:mrow>
 
-                          <m:mo>!</m:mo>
-                        </m:mrow>
-                      </m:mrow>
-                    </m:mfrac>
-
-                    <m:mo>=</m:mo>
+                          <m:mo>⁢</m:mo>
 
-                    <m:mfrac>
-                      <m:mrow>
-                        <m:mi>n</m:mi>
+                          <m:mrow>
+                            <m:mrow>
+                              <m:mo>(</m:mo>
 
-                        <m:mo>⁢</m:mo>
+                              <m:mrow>
+                                <m:mi>n</m:mi>
 
-                        <m:mrow>
-                          <m:mo>(</m:mo>
+                                <m:mo>-</m:mo>
 
-                          <m:mrow>
-                            <m:mi>n</m:mi>
+                                <m:mi>k</m:mi>
+                              </m:mrow>
 
-                            <m:mo>-</m:mo>
+                              <m:mo>)</m:mo>
+                            </m:mrow>
 
-                            <m:mi>1</m:mi>
+                            <m:mo>!</m:mo>
                           </m:mrow>
-
-                          <m:mo>)</m:mo>
                         </m:mrow>
+                      </m:mfrac>
 
-                        <m:mo>⁢</m:mo>
-
-                        <m:mi>...</m:mi>
-
-                        <m:mo>⁢</m:mo>
-
-                        <m:mi>1</m:mi>
-                      </m:mrow>
+                      <m:mo>=</m:mo>
 
-                      <m:mrow>
+                      <m:mfrac>
                         <m:mrow>
-                          <m:mi>k</m:mi>
+                          <m:mi>n</m:mi>
 
                           <m:mo>⁢</m:mo>
 
@@ -1572,7 +1665,7 @@ for (int i = 2; i &lt;= number; i++) {
                             <m:mo>(</m:mo>
 
                             <m:mrow>
-                              <m:mi>k</m:mi>
+                              <m:mi>n</m:mi>
 
                               <m:mo>-</m:mo>
 
@@ -1591,104 +1684,88 @@ for (int i = 2; i &lt;= number; i++) {
                           <m:mi>1</m:mi>
                         </m:mrow>
 
-                        <m:mo>⁢</m:mo>
-
                         <m:mrow>
                           <m:mrow>
-                            <m:mo>(</m:mo>
-
-                            <m:mrow>
-                              <m:mi>n</m:mi>
-
-                              <m:mo>-</m:mo>
-
-                              <m:mi>k</m:mi>
-                            </m:mrow>
-
-                            <m:mo>)</m:mo>
-                          </m:mrow>
-
-                          <m:mo>⁢</m:mo>
+                            <m:mi>k</m:mi>
 
-                          <m:mrow>
-                            <m:mo>(</m:mo>
+                            <m:mo>⁢</m:mo>
 
                             <m:mrow>
-                              <m:mi>n</m:mi>
+                              <m:mo>(</m:mo>
 
-                              <m:mo>-</m:mo>
+                              <m:mrow>
+                                <m:mi>k</m:mi>
 
-                              <m:mi>k</m:mi>
+                                <m:mo>-</m:mo>
 
-                              <m:mo>-</m:mo>
+                                <m:mi>1</m:mi>
+                              </m:mrow>
 
-                              <m:mi>1</m:mi>
+                              <m:mo>)</m:mo>
                             </m:mrow>
 
-                            <m:mo>)</m:mo>
-                          </m:mrow>
+                            <m:mo>⁢</m:mo>
 
-                          <m:mo>⁢</m:mo>
+                            <m:mi>...</m:mi>
 
-                          <m:mi>...</m:mi>
+                            <m:mo>⁢</m:mo>
 
-                          <m:mo>⁢</m:mo>
+                            <m:mi>1</m:mi>
+                          </m:mrow>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:mrow>
-                    </m:mfrac>
+                          <m:mo>⁢</m:mo>
 
-                    <m:mo>=</m:mo>
+                          <m:mrow>
+                            <m:mrow>
+                              <m:mo>(</m:mo>
 
-                    <m:mfrac>
-                      <m:mrow>
-                        <m:mi>n</m:mi>
+                              <m:mrow>
+                                <m:mi>n</m:mi>
 
-                        <m:mo>⁢</m:mo>
+                                <m:mo>-</m:mo>
 
-                        <m:mrow>
-                          <m:mo>(</m:mo>
+                                <m:mi>k</m:mi>
+                              </m:mrow>
 
-                          <m:mrow>
-                            <m:mi>n</m:mi>
+                              <m:mo>)</m:mo>
+                            </m:mrow>
 
-                            <m:mo>-</m:mo>
+                            <m:mo>⁢</m:mo>
 
-                            <m:mi>1</m:mi>
-                          </m:mrow>
+                            <m:mrow>
+                              <m:mo>(</m:mo>
 
-                          <m:mo>)</m:mo>
-                        </m:mrow>
+                              <m:mrow>
+                                <m:mi>n</m:mi>
 
-                        <m:mo>⁢</m:mo>
+                                <m:mo>-</m:mo>
 
-                        <m:mi>...</m:mi>
+                                <m:mi>k</m:mi>
 
-                        <m:mo>⁢</m:mo>
+                                <m:mo>-</m:mo>
 
-                        <m:mrow>
-                          <m:mo>(</m:mo>
+                                <m:mi>1</m:mi>
+                              </m:mrow>
 
-                          <m:mrow>
-                            <m:mi>n</m:mi>
+                              <m:mo>)</m:mo>
+                            </m:mrow>
 
-                            <m:mo>-</m:mo>
+                            <m:mo>⁢</m:mo>
 
-                            <m:mi>k</m:mi>
+                            <m:mi>...</m:mi>
 
-                            <m:mo>+</m:mo>
+                            <m:mo>⁢</m:mo>
 
                             <m:mi>1</m:mi>
                           </m:mrow>
-
-                          <m:mo>)</m:mo>
                         </m:mrow>
-                      </m:mrow>
+                      </m:mfrac>
 
-                      <m:mrow>
+                      <m:mo>=</m:mo>
+
+                      <m:mfrac>
                         <m:mrow>
-                          <m:mi>k</m:mi>
+                          <m:mi>n</m:mi>
 
                           <m:mo>⁢</m:mo>
 
@@ -1696,7 +1773,7 @@ for (int i = 2; i &lt;= number; i++) {
                             <m:mo>(</m:mo>
 
                             <m:mrow>
-                              <m:mi>k</m:mi>
+                              <m:mi>n</m:mi>
 
                               <m:mo>-</m:mo>
 
@@ -1712,110 +1789,154 @@ for (int i = 2; i &lt;= number; i++) {
 
                           <m:mo>⁢</m:mo>
 
-                          <m:mi>1</m:mi>
-                        </m:mrow>
-                      </m:mrow>
-                    </m:mfrac>
-                  </m:mrow>
-                </m:math>
-              </equation>
+                          <m:mrow>
+                            <m:mo>(</m:mo>
 
-              <para>As an example we have:</para>
+                            <m:mrow>
+                              <m:mi>n</m:mi>
 
-              <informalequation>
-                <m:math display="block">
-                  <m:mrow>
-                    <m:mrow>
-                      <m:mrow>
-                        <m:mo>(</m:mo>
+                              <m:mo>-</m:mo>
 
-                        <m:mrow>
-                          <m:mtable>
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>49</m:mi>
-                              </m:mtd>
-                            </m:mtr>
-
-                            <m:mtr>
-                              <m:mtd>
-                                <m:mi>6</m:mi>
-                              </m:mtd>
-                            </m:mtr>
-                          </m:mtable>
+                              <m:mi>k</m:mi>
+
+                              <m:mo>+</m:mo>
+
+                              <m:mi>1</m:mi>
+                            </m:mrow>
+
+                            <m:mo>)</m:mo>
+                          </m:mrow>
                         </m:mrow>
 
-                        <m:mo>)</m:mo>
-                      </m:mrow>
+                        <m:mrow>
+                          <m:mrow>
+                            <m:mi>k</m:mi>
+
+                            <m:mo>⁢</m:mo>
+
+                            <m:mrow>
+                              <m:mo>(</m:mo>
+
+                              <m:mrow>
+                                <m:mi>k</m:mi>
+
+                                <m:mo>-</m:mo>
+
+                                <m:mi>1</m:mi>
+                              </m:mrow>
+
+                              <m:mo>)</m:mo>
+                            </m:mrow>
+
+                            <m:mo>⁢</m:mo>
+
+                            <m:mi>...</m:mi>
+
+                            <m:mo>⁢</m:mo>
+
+                            <m:mi>1</m:mi>
+                          </m:mrow>
+                        </m:mrow>
+                      </m:mfrac>
                     </m:mrow>
+                  </m:math>
+                </equation>
 
-                    <m:mo>=</m:mo>
+                <para>As an example we have:</para>
 
-                    <m:mfrac>
+                <informalequation>
+                  <m:math display="block">
+                    <m:mrow>
                       <m:mrow>
                         <m:mrow>
-                          <m:mi>49</m:mi>
+                          <m:mo>(</m:mo>
+
+                          <m:mrow>
+                            <m:mtable>
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>49</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+
+                              <m:mtr>
+                                <m:mtd>
+                                  <m:mi>6</m:mi>
+                                </m:mtd>
+                              </m:mtr>
+                            </m:mtable>
+                          </m:mrow>
+
+                          <m:mo>)</m:mo>
+                        </m:mrow>
+                      </m:mrow>
+
+                      <m:mo>=</m:mo>
+
+                      <m:mfrac>
+                        <m:mrow>
+                          <m:mrow>
+                            <m:mi>49</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>48</m:mi>
+                            <m:mi>48</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>47</m:mi>
+                            <m:mi>47</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>46</m:mi>
+                            <m:mi>46</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>45</m:mi>
+                            <m:mi>45</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>44</m:mi>
+                            <m:mi>44</m:mi>
+                          </m:mrow>
                         </m:mrow>
-                      </m:mrow>
 
-                      <m:mrow>
                         <m:mrow>
-                          <m:mi>6</m:mi>
+                          <m:mrow>
+                            <m:mi>6</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>5</m:mi>
+                            <m:mi>5</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>4</m:mi>
+                            <m:mi>4</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>3</m:mi>
+                            <m:mi>3</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>2</m:mi>
+                            <m:mi>2</m:mi>
 
-                          <m:mo>×</m:mo>
+                            <m:mo>×</m:mo>
 
-                          <m:mi>1</m:mi>
+                            <m:mi>1</m:mi>
+                          </m:mrow>
                         </m:mrow>
-                      </m:mrow>
-                    </m:mfrac>
+                      </m:mfrac>
 
-                    <m:mo>=</m:mo>
+                      <m:mo>=</m:mo>
 
-                    <m:mi>13983816</m:mi>
-                  </m:mrow>
-                </m:math>
-              </informalequation>
+                      <m:mi>13983816</m:mi>
+                    </m:mrow>
+                  </m:math>
+                </informalequation>
 
-              <para>Calculating numerator and denominator in two separate
-              loops a possible implementation reads:</para>
+                <para>Calculating numerator and denominator in two separate loops a possible implementation reads:</para>
 
-              <programlisting language="java">public class Lottery {
+                <programlisting language="java">public class Lottery {
 
   public static void main(String[] args) {
 
@@ -1844,49 +1965,44 @@ for (int i = 2; i &lt;= number; i++) {
         " out of " + totalNumberCount + " is 1 : " + (numerator / factorial));
   }
 }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sd1SectNumberguess">
-      <title>Guessing numbers</title>
+      <section xml:id="sd1SectNumberguess">
+        <title>Guessing numbers</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sd1QandaNumberguess">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Write a program which randomly chooses an integer number
-              between zero and a fixed upper limit e.g. 10.</para>
+        <qandaset defaultlabel="qanda" xml:id="sd1QandaNumberguess">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Write a program which randomly chooses an integer number between zero and a fixed upper limit e.g. 10.</para>
 
-              <para>On execution the user is asked to guess this secret value.
-              Each time entering a new guess the program shall respond with
-              either of:</para>
+                <para>On execution the user is asked to guess this secret value. Each time entering a new guess the program shall respond with either of:</para>
 
-              <itemizedlist>
-                <listitem>
-                  <para>You won!</para>
-                </listitem>
+                <itemizedlist>
+                  <listitem>
+                    <para>You won!</para>
+                  </listitem>
 
-                <listitem>
-                  <para>Game over, try another run?</para>
-                </listitem>
+                  <listitem>
+                    <para>Game over, try another run?</para>
+                  </listitem>
 
-                <listitem>
-                  <para>Number is too low</para>
-                </listitem>
+                  <listitem>
+                    <para>Number is too low</para>
+                  </listitem>
 
-                <listitem>
-                  <para>Number is too high</para>
-                </listitem>
-              </itemizedlist>
+                  <listitem>
+                    <para>Number is too high</para>
+                  </listitem>
+                </itemizedlist>
 
-              <para>The system offers a maximum number of tries, say 5 for
-              example. In the following example the system randomly generates
-              the secret number 5. A possible dialogue looks like:</para>
+                <para>The system offers a maximum number of tries, say 5 for example. In the following example the system randomly generates the secret number 5. A possible dialogue looks like:</para>
 
-              <screen>Try to guess my number in the range between 0 and 10:
+                <screen>Try to guess my number in the range between 0 and 10:
 You have 5 attempts
 Input your guess:4
 Value is too low
@@ -1895,10 +2011,9 @@ Value is too high
 Input your guess:5
 Congratulations! you won!</screen>
 
-              <para>Regarding user input reading and random number generating
-              methods please use the following recipe to get started:</para>
+                <para>Regarding user input reading and random number generating methods please use the following recipe to get started:</para>
 
-              <programlisting language="java">package ...
+                <programlisting language="java">package ...
 
 import java.util.Random;
 ...
@@ -1914,10 +2029,10 @@ import java.util.Random;
       
       // ToDo: complete the implementation
    }</programlisting>
-            </question>
+              </question>
 
-            <answer>
-              <programlisting language="java">   public static void main(String[] args) {
+              <answer>
+                <programlisting language="java">   public static void main(String[] args) {
 
       final int maxValueInclusive = 10, numOfUserAttempts = 5,
              randomValue = new Random()
@@ -1952,39 +2067,30 @@ import java.util.Random;
          System.out.println("Game over, try another run?");
       }
    }</programlisting>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sw1SectionPostExamMarking">
-      <title>Post modifying an exam's marking</title>
+      <section xml:id="sw1SectionPostExamMarking">
+        <title>Post modifying an exam's marking</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaPostExamBonuspoints">
-        <title>Exam bonus points</title>
+        <qandaset defaultlabel="qanda" xml:id="sw1QandaPostExamBonuspoints">
+          <title>Exam bonus points</title>
 
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>After completely marking an examination a lecturer decides
-              to globally add a number extra bonus points to a specific task .
-              The task does have an upper limit of points to be awarded at
-              maximum. We provide an example:</para>
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>After completely marking an examination a lecturer decides to globally add a number extra bonus points to a specific task . The task does have an upper limit of points to be awarded at maximum. We provide an example:</para>
 
-              <para>On completely fulfilling a task 12 points will be awarded.
-              So after marking the exam participants' points range from 0 to
-              12 points being represented by the variable
-              <code>pointsReached</code>.</para>
+                <para>On completely fulfilling a task 12 points will be awarded. So after marking the exam participants' points range from 0 to 12 points being represented by the variable <code>pointsReached</code>.</para>
 
-              <para>After completing his marking our lecturer wants to add
-              three more points to all participants without breaching the 12
-              point limit.</para>
+                <para>After completing his marking our lecturer wants to add three more points to all participants without breaching the 12 point limit.</para>
 
-              <para>Complete the following code by assigning this modified
-              number of points to the variable <code>newResult</code>.</para>
+                <para>Complete the following code by assigning this modified number of points to the variable <code>newResult</code>.</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
       
       int pointsReached = 1;
       int maximumPoints = 12;
@@ -1996,14 +2102,12 @@ import java.util.Random;
       
       System.out.println("New Result:" + newResult);
    }</programlisting>
-            </question>
+              </question>
 
-            <answer>
-              <para>The basic task is to add up the values of
-              <code>pointsReached</code> and <code>pointsToAdd</code>. When
-              exceeding the limit we just assign the limit itself:</para>
+              <answer>
+                <para>The basic task is to add up the values of <code>pointsReached</code> and <code>pointsToAdd</code>. When exceeding the limit we just assign the limit itself:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
       
       int pointsReached = 1;
       int maximumPoints = 12;
@@ -2020,12 +2124,9 @@ import java.util.Random;
       System.out.println("New Result:" + newResult);
    }</programlisting>
 
-              <para>This basically means calculating the minimum of the two
-              expressions <code>pointsReached + pointsToAdd</code> and
-              <code>maximumPoints</code>. This may as well be be implemented
-              by:</para>
+                <para>This basically means calculating the minimum of the two expressions <code>pointsReached + pointsToAdd</code> and <code>maximumPoints</code>. This may as well be be implemented by:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
       
       int pointsReached = 1;
       int maximumPoints = 12;
@@ -2037,45 +2138,35 @@ import java.util.Random;
 
    }</programlisting>
 
-              <para>You will fully understand the above expression
-              <function>Math.min(...)</function> after finishing the <quote
-              xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc12_html">Static
-              Final Variables</quote> section.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+                <para>You will fully understand the above expression <function>Math.min(...)</function> after finishing the <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc12_html">Static Final Variables</quote> section.</para>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-    <section xml:id="sd1SectionMinimalDivideFirst20">
-      <title>Smallest multiple</title>
+      <section xml:id="sd1SectionMinimalDivideFirst20">
+        <title>Smallest multiple</title>
 
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaFintMinimumDivideFirst20">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>2520 is the smallest number that can be divided by each of
-              the numbers from 1 to 10 without any remainder.</para>
+        <qandaset defaultlabel="qanda" xml:id="sw1QandaFintMinimumDivideFirst20">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.</para>
 
-              <para>What is the smallest positive number that is evenly
-              divisible by all of the numbers from 1 to 20?</para>
+                <para>What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?</para>
 
-              <tip>
-                <para>The operator <quote
-                xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc8_html">%</quote>
-                allows for testing whether a given integer value
-                <code>n</code> can be divided by an another integer value
-                <code>k</code> without remainder.</para>
+                <tip>
+                  <para>The operator <quote xlink:href="https://proquest.safaribooksonline.com/9780992133047/toc8_html">%</quote> allows for testing whether a given integer value <code>n</code> can be divided by an another integer value <code>k</code> without remainder.</para>
 
-                <para>Increment an integer candidate in a loop till the
-                desired condition is being fulfilled.</para>
-              </tip>
-            </question>
+                  <para>Increment an integer candidate in a loop till the desired condition is being fulfilled.</para>
+                </tip>
+              </question>
 
-            <answer>
-              <para>We propose the following solution:</para>
+              <answer>
+                <para>We propose the following solution:</para>
 
-              <programlisting language="java">   public static void main(String[] args) {
+                <programlisting language="java">   public static void main(String[] args) {
       
       final int highestDivisor = 20;             // May be adjusted to other limits.
       
@@ -2099,672 +2190,609 @@ import java.util.Random;
       System.out.println(candidate);
    }</programlisting>
 
-              <para>Executing this code results in a value of 232792560 for
-              the smallest desired value.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-
-      <qandaset defaultlabel="qanda"
-                xml:id="sw1QandaFintMinimumDivideFirst20ByHand">
-        <title>Smallest multiple, purely algebraic solution</title>
-
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para>Solving the previous exercise by a program is quite a
-              no-brainer (from a software developer's point of view). Provide
-              a different solution purely based on algebraic considerations.
-              In other words: Your solution should work by using paper and
-              pencil exclusively.</para>
-
-              <tip>
-                <para>Consider the underlying prime factors of all values from
-                [2, 3, ...20].</para>
-              </tip>
-            </question>
-
-            <answer>
-              <para>We decompose each value within [2, 3, ...20] into prime
-              factors:</para>
-
-              <informaltable border="1">
-                <tr>
-                  <th rowspan="2" valign="top">Value</th>
-
-                  <th colspan="12">Contributing prime factors</th>
-                </tr>
-
-                <tr>
-                  <td colspan="4">2</td>
-
-                  <td colspan="2">3</td>
-
-                  <td>5</td>
-
-                  <td>7</td>
+                <para>Executing this code results in a value of 232792560 for the smallest desired value.</para>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
 
-                  <td>11</td>
+        <qandaset defaultlabel="qanda" xml:id="sw1QandaFintMinimumDivideFirst20ByHand">
+          <title>Smallest multiple, purely algebraic solution</title>
 
-                  <td>13</td>
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para>Solving the previous exercise by a program is quite a no-brainer (from a software developer's point of view). Provide a different solution purely based on algebraic considerations. In other words: Your solution should work by using paper and pencil exclusively.</para>
 
-                  <td>17</td>
+                <tip>
+                  <para>Consider the underlying prime factors of all values from [2, 3, ...20].</para>
+                </tip>
+              </question>
 
-                  <td>19</td>
-                </tr>
+              <answer>
+                <para>We decompose each value within [2, 3, ...20] into prime factors:</para>
 
-                <tr>
-                  <td align="right">2</td>
+                <informaltable border="1">
+                  <tr>
+                    <th rowspan="2" valign="top">Value</th>
 
-                  <td>2</td>
+                    <th colspan="12">Contributing prime factors</th>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td colspan="4">2</td>
 
-                  <td/>
+                    <td colspan="2">3</td>
 
-                  <td/>
+                    <td>5</td>
 
-                  <td/>
+                    <td>7</td>
 
-                  <td/>
+                    <td>11</td>
 
-                  <td/>
+                    <td>13</td>
 
-                  <td/>
+                    <td>17</td>
 
-                  <td/>
+                    <td>19</td>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">2</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">3</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">4</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td>3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">4</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td>2</td>
 
-                <tr>
-                  <td align="right">5</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>5</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">5</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">6</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>5</td>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">6</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">7</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>7</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">7</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">8</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>7</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">8</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td>2</td>
 
-                <tr>
-                  <td align="right">9</td>
+                    <td>2</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">9</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">10</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>5</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">10</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">11</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>5</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>11</td>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">11</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">12</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td/>
+                    <td>11</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">12</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td>2</td>
 
-                <tr>
-                  <td align="right">13</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td>13</td>
+                  <tr>
+                    <td align="right">13</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">14</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>13</td>
 
-                  <td>7</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">14</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">15</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>3</td>
+                    <td>7</td>
 
-                  <td/>
+                    <td/>
 
-                  <td>5</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">15</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">16</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td>3</td>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td>5</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">16</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td>2</td>
 
-                <tr>
-                  <td align="right">17</td>
+                    <td>2</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">17</td>
 
-                  <td>17</td>
+                    <td/>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">18</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td>3</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>17</td>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">18</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">19</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td>3</td>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">19</td>
 
-                  <td/>
+                    <td/>
 
-                  <td>19</td>
-                </tr>
+                    <td/>
 
-                <tr>
-                  <td align="right">20</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td>2</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td>5</td>
+                    <td/>
 
-                  <td/>
+                    <td/>
 
-                  <td/>
+                    <td>19</td>
+                  </tr>
 
-                  <td/>
+                  <tr>
+                    <td align="right">20</td>
 
-                  <td/>
+                    <td>2</td>
 
-                  <td/>
-                </tr>
-              </informaltable>
+                    <td>2</td>
 
-              <para>As expected we find an identical value for the desired
-              smallest integer value of 2*2*2*2*3*3*5*7*11*13*17*19 =
-              232792560 which is the <link
-              xlink:href="https://en.wikipedia.org/wiki/Least_common_multiple">least
-              common multiple</link> of [2, 3, ...20].</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
-    </section>
+                    <td/>
 
-    <section xml:id="sw1SectionPythagoreanTriples">
-      <title>Pythagorean triples</title>
-
-      <qandaset defaultlabel="qanda" xml:id="sw1QandaPythagoreanTriples">
-        <qandadiv>
-          <qandaentry>
-            <question>
-              <para><link
-              xlink:href="https://en.wikipedia.org/wiki/Pythagorean_triple">Pythagorean
-              triples</link> are integer combinations of three values being
-              related by the <link
-              xlink:href="https://en.wikipedia.org/wiki/Pythagorean_theorem">Pythagorean
-              theorem</link>:</para>
-
-              <mediaobject>
-                <imageobject>
-                  <imagedata fileref="Ref/Statements/phythagorean.svg"/>
-                </imageobject>
-              </mediaobject>
-
-              <para>Find all <link
-              xlink:href="https://en.wikipedia.org/wiki/Pythagorean_triple">Pythagorean
-              triples</link> <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mo>(</m:mo>
+                    <td/>
 
-                      <m:mrow>
-                        <m:mi>a</m:mi>
+                    <td/>
 
-                        <m:mo>,</m:mo>
+                    <td/>
 
-                        <m:mi>b</m:mi>
+                    <td>5</td>
 
-                        <m:mo>,</m:mo>
+                    <td/>
 
-                        <m:mi>c</m:mi>
-                      </m:mrow>
+                    <td/>
 
-                      <m:mo>)</m:mo>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> of non-zero integer values which
-              simultaneously obey the additional constraint <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mrow>
-                        <m:mi>a</m:mi>
+                    <td/>
 
-                        <m:mo>+</m:mo>
+                    <td/>
 
-                        <m:mi>b</m:mi>
+                    <td/>
+                  </tr>
+                </informaltable>
 
-                        <m:mo>+</m:mo>
+                <para>As expected we find an identical value for the desired smallest integer value of 2*2*2*2*3*3*5*7*11*13*17*19 = 232792560 which is the <link xlink:href="https://en.wikipedia.org/wiki/Least_common_multiple">least common multiple</link> of [2, 3, ...20].</para>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
 
-                        <m:mi>c</m:mi>
-                      </m:mrow>
+      <section xml:id="sw1SectionPythagoreanTriples">
+        <title>Pythagorean triples</title>
 
-                      <m:mo>=</m:mo>
+        <qandaset defaultlabel="qanda" xml:id="sw1QandaPythagoreanTriples">
+          <qandadiv>
+            <qandaentry>
+              <question>
+                <para><link xlink:href="https://en.wikipedia.org/wiki/Pythagorean_triple">Pythagorean triples</link> are integer combinations of three values being related by the <link xlink:href="https://en.wikipedia.org/wiki/Pythagorean_theorem">Pythagorean theorem</link>:</para>
 
-                      <m:mn>840</m:mn>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>.</para>
+                <mediaobject>
+                  <imageobject>
+                    <imagedata fileref="Ref/Statements/phythagorean.svg"/>
+                  </imageobject>
+                </mediaobject>
 
-              <tip>
-                <para>Think of creating all possible triples <inlineequation>
+                <para>Find all <link xlink:href="https://en.wikipedia.org/wiki/Pythagorean_triple">Pythagorean triples</link> <inlineequation>
                     <m:math display="inline">
                       <m:mrow>
                         <m:mo>(</m:mo>
@@ -2784,177 +2812,214 @@ import java.util.Random;
                         <m:mo>)</m:mo>
                       </m:mrow>
                     </m:math>
-                  </inlineequation> not yet obeying any restrictions at
-                all:</para>
+                  </inlineequation> of non-zero integer values which simultaneously obey the additional constraint <inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:mrow>
+                          <m:mi>a</m:mi>
 
-                <informaltable border="1">
-                  <tr>
-                    <th>a</th>
+                          <m:mo>+</m:mo>
 
-                    <th>b</th>
+                          <m:mi>b</m:mi>
 
-                    <th>c</th>
-                  </tr>
+                          <m:mo>+</m:mo>
 
-                  <tr>
-                    <td>1</td>
+                          <m:mi>c</m:mi>
+                        </m:mrow>
 
-                    <td>1</td>
+                        <m:mo>=</m:mo>
 
-                    <td>1</td>
-                  </tr>
+                        <m:mn>840</m:mn>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation>.</para>
 
-                  <tr>
-                    <td>2</td>
+                <tip>
+                  <para>Think of creating all possible triples <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:mo>(</m:mo>
 
-                    <td>1</td>
+                          <m:mrow>
+                            <m:mi>a</m:mi>
 
-                    <td>1</td>
-                  </tr>
+                            <m:mo>,</m:mo>
 
-                  <tr>
-                    <td>...</td>
+                            <m:mi>b</m:mi>
 
-                    <td>...</td>
+                            <m:mo>,</m:mo>
 
-                    <td>...</td>
-                  </tr>
+                            <m:mi>c</m:mi>
+                          </m:mrow>
 
-                  <tr>
-                    <td>838</td>
+                          <m:mo>)</m:mo>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> not yet obeying any restrictions at all:</para>
 
-                    <td>838</td>
+                  <informaltable border="1">
+                    <tr>
+                      <th>a</th>
 
-                    <td>838</td>
-                  </tr>
-                </informaltable>
+                      <th>b</th>
 
-                <para>Why does a value of 838 rather then 840 appears
-                here?</para>
+                      <th>c</th>
+                    </tr>
 
-                <para>This list mostly contains values like <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
-                        <m:mo>(</m:mo>
+                    <tr>
+                      <td>1</td>
 
-                        <m:mrow>
-                          <m:mn>1</m:mn>
+                      <td>1</td>
 
-                          <m:mo>,</m:mo>
+                      <td>1</td>
+                    </tr>
 
-                          <m:mn>3</m:mn>
+                    <tr>
+                      <td>2</td>
 
-                          <m:mo>,</m:mo>
+                      <td>1</td>
 
-                          <m:mn>4</m:mn>
-                        </m:mrow>
+                      <td>1</td>
+                    </tr>
 
-                        <m:mo>)</m:mo>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> failing both our restrictions
-                <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
-                        <m:mrow>
-                          <m:msup>
-                            <m:mn>1</m:mn>
+                    <tr>
+                      <td>...</td>
 
-                            <m:mn>2</m:mn>
-                          </m:msup>
+                      <td>...</td>
 
-                          <m:mo>+</m:mo>
+                      <td>...</td>
+                    </tr>
 
-                          <m:msup>
-                            <m:mn>3</m:mn>
+                    <tr>
+                      <td>838</td>
 
-                            <m:mn>2</m:mn>
-                          </m:msup>
-                        </m:mrow>
+                      <td>838</td>
 
-                        <m:mo>≠</m:mo>
+                      <td>838</td>
+                    </tr>
+                  </informaltable>
 
-                        <m:msup>
-                          <m:mn>4</m:mn>
+                  <para>Why does a value of 838 rather then 840 appears here?</para>
 
-                          <m:mn>2</m:mn>
-                        </m:msup>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> and <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
+                  <para>This list mostly contains values like <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:mn>1</m:mn>
+                          <m:mo>(</m:mo>
 
-                          <m:mo>+</m:mo>
+                          <m:mrow>
+                            <m:mn>1</m:mn>
 
-                          <m:mn>3</m:mn>
+                            <m:mo>,</m:mo>
 
-                          <m:mo>+</m:mo>
+                            <m:mn>3</m:mn>
 
-                          <m:mn>4</m:mn>
-                        </m:mrow>
+                            <m:mo>,</m:mo>
 
-                        <m:mo>≠</m:mo>
+                            <m:mn>4</m:mn>
+                          </m:mrow>
 
-                        <m:mi>840</m:mi>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation>. These triples have thus to be filtered
-                retaining only the desired combinations simultaneously obeying
-                both <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
+                          <m:mo>)</m:mo>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> failing both our restrictions <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:msup>
-                            <m:mi>a</m:mi>
+                          <m:mrow>
+                            <m:msup>
+                              <m:mn>1</m:mn>
 
-                            <m:mn>2</m:mn>
-                          </m:msup>
+                              <m:mn>2</m:mn>
+                            </m:msup>
 
-                          <m:mo>+</m:mo>
+                            <m:mo>+</m:mo>
+
+                            <m:msup>
+                              <m:mn>3</m:mn>
+
+                              <m:mn>2</m:mn>
+                            </m:msup>
+                          </m:mrow>
+
+                          <m:mo>≠</m:mo>
 
                           <m:msup>
-                            <m:mi>b</m:mi>
+                            <m:mn>4</m:mn>
 
                             <m:mn>2</m:mn>
                           </m:msup>
                         </m:mrow>
+                      </m:math>
+                    </inlineequation> and <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:mrow>
+                            <m:mn>1</m:mn>
 
-                        <m:mo>=</m:mo>
+                            <m:mo>+</m:mo>
 
-                        <m:msup>
-                          <m:mi>c</m:mi>
+                            <m:mn>3</m:mn>
 
-                          <m:mn>2</m:mn>
-                        </m:msup>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> and <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
+                            <m:mo>+</m:mo>
+
+                            <m:mn>4</m:mn>
+                          </m:mrow>
+
+                          <m:mo>≠</m:mo>
+
+                          <m:mi>840</m:mi>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation>. These triples have thus to be filtered retaining only the desired combinations simultaneously obeying both <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:mi>a</m:mi>
+                          <m:mrow>
+                            <m:msup>
+                              <m:mi>a</m:mi>
 
-                          <m:mo>+</m:mo>
+                              <m:mn>2</m:mn>
+                            </m:msup>
 
-                          <m:mi>b</m:mi>
+                            <m:mo>+</m:mo>
 
-                          <m:mo>+</m:mo>
+                            <m:msup>
+                              <m:mi>b</m:mi>
 
-                          <m:mi>c</m:mi>
+                              <m:mn>2</m:mn>
+                            </m:msup>
+                          </m:mrow>
+
+                          <m:mo>=</m:mo>
+
+                          <m:msup>
+                            <m:mi>c</m:mi>
+
+                            <m:mn>2</m:mn>
+                          </m:msup>
                         </m:mrow>
+                      </m:math>
+                    </inlineequation> and <inlineequation>
+                      <m:math display="inline">
+                        <m:mrow>
+                          <m:mrow>
+                            <m:mi>a</m:mi>
 
-                        <m:mo>=</m:mo>
+                            <m:mo>+</m:mo>
 
-                        <m:mi>840</m:mi>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation>. This might be accomplished by
-                implementing three nested loops:</para>
+                            <m:mi>b</m:mi>
+
+                            <m:mo>+</m:mo>
+
+                            <m:mi>c</m:mi>
+                          </m:mrow>
+
+                          <m:mo>=</m:mo>
 
-                <programlisting language="java">for (int a = 1; a &lt;= 838; a++) {
+                          <m:mi>840</m:mi>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation>. This might be accomplished by implementing three nested loops:</para>
+
+                  <programlisting language="java">for (int a = 1; a &lt;= 838; a++) {
    for (int b = 1; b &lt;= 838; b++) {
        for (int c = 1; c &lt;= 838; c++) {
           if (a*a + b*b == c*c &amp;&amp;     // Pythagorean condition
@@ -2965,272 +3030,252 @@ import java.util.Random;
     }
 }</programlisting>
 
-                <para>The above code generating <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
+                  <para>The above code generating <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:mn>838</m:mn>
-
-                          <m:mo>×</m:mo>
+                          <m:mrow>
+                            <m:mn>838</m:mn>
 
-                          <m:mn>838</m:mn>
+                            <m:mo>×</m:mo>
 
-                          <m:mo>×</m:mo>
+                            <m:mn>838</m:mn>
 
-                          <m:mn>838</m:mn>
-                        </m:mrow>
+                            <m:mo>×</m:mo>
 
-                        <m:mo>=</m:mo>
+                            <m:mn>838</m:mn>
+                          </m:mrow>
 
-                        <m:mn>588480472</m:mn>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> combinations will run quite some time!
-                Thus we are looking for a better (more efficient)
-                solution.</para>
+                          <m:mo>=</m:mo>
 
-                <para>There are several issues with the above code. It creates
-                a great number of combinations like <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
-                        <m:mo>(</m:mo>
+                          <m:mn>588480472</m:mn>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> combinations will run quite some time! Thus we are looking for a better (more efficient) solution.</para>
 
+                  <para>There are several issues with the above code. It creates a great number of combinations like <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:mn>1</m:mn>
+                          <m:mo>(</m:mo>
 
-                          <m:mo>,</m:mo>
+                          <m:mrow>
+                            <m:mn>1</m:mn>
 
-                          <m:mn>4</m:mn>
+                            <m:mo>,</m:mo>
 
-                          <m:mo>,</m:mo>
+                            <m:mn>4</m:mn>
 
-                          <m:mn>3</m:mn>
-                        </m:mrow>
+                            <m:mo>,</m:mo>
 
-                        <m:mo>)</m:mo>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> which could be ruled out beforehand easily
-                rather then creating and filtering them. Do we really need
-                three nested loops?</para>
+                            <m:mn>3</m:mn>
+                          </m:mrow>
 
-                <para>Also triples having identical values but in a different
-                order like <code>(40, 399, 401)</code> and <code>(40, 401,
-                399)</code> are equivalent. For this reason we may consider
-                only triples being ordered by size.</para>
+                          <m:mo>)</m:mo>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> which could be ruled out beforehand easily rather then creating and filtering them. Do we really need three nested loops?</para>
 
-                <para>So the problem can be stated to find the set of all
-                triples <inlineequation>
-                    <m:math display="inline">
-                      <m:mrow>
-                        <m:mo>(</m:mo>
+                  <para>Also triples having identical values but in a different order like <code>(40, 399, 401)</code> and <code>(40, 401, 399)</code> are equivalent. For this reason we may consider only triples being ordered by size.</para>
 
+                  <para>So the problem can be stated to find the set of all triples <inlineequation>
+                      <m:math display="inline">
                         <m:mrow>
-                          <m:mi>a</m:mi>
+                          <m:mo>(</m:mo>
 
-                          <m:mo>,</m:mo>
+                          <m:mrow>
+                            <m:mi>a</m:mi>
 
-                          <m:mi>b</m:mi>
+                            <m:mo>,</m:mo>
 
-                          <m:mo>,</m:mo>
+                            <m:mi>b</m:mi>
 
-                          <m:mi>c</m:mi>
-                        </m:mrow>
+                            <m:mo>,</m:mo>
 
-                        <m:mo>)</m:mo>
+                            <m:mi>c</m:mi>
+                          </m:mrow>
 
-                        <m:mo>∈</m:mo>
+                          <m:mo>)</m:mo>
 
-                        <m:mrow>
-                          <m:msup>
-                            <m:mrow>
-                              <m:mo>[</m:mo>
+                          <m:mo>∈</m:mo>
 
+                          <m:mrow>
+                            <m:msup>
                               <m:mrow>
-                                <m:mn>1</m:mn>
-
-                                <m:mo>,</m:mo>
-
-                                <m:mi>838</m:mi>
-                              </m:mrow>
-
-                              <m:mo>]</m:mo>
-                            </m:mrow>
-
-                            <m:mi>3</m:mi>
-                          </m:msup>
-                        </m:mrow>
-                      </m:mrow>
-                    </m:math>
-                  </inlineequation> which simultaneously obey:</para>
+                                <m:mo>[</m:mo>
 
-                <orderedlist>
-                  <listitem xml:id="sw1PhytagoreanTripletCondition1">
-                    <para><inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
-                            <m:mi>a</m:mi>
+                                <m:mrow>
+                                  <m:mn>1</m:mn>
 
-                            <m:mo>≤</m:mo>
+                                  <m:mo>,</m:mo>
 
-                            <m:mi>b</m:mi>
+                                  <m:mi>838</m:mi>
+                                </m:mrow>
 
-                            <m:mo>≤</m:mo>
+                                <m:mo>]</m:mo>
+                              </m:mrow>
 
-                            <m:mi>c</m:mi>
+                              <m:mi>3</m:mi>
+                            </m:msup>
                           </m:mrow>
-                        </m:math>
-                      </inlineequation></para>
-                  </listitem>
+                        </m:mrow>
+                      </m:math>
+                    </inlineequation> which simultaneously obey:</para>
 
-                  <listitem xml:id="sw1PhytagoreanTripletCondition2">
-                    <para><inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
+                  <orderedlist>
+                    <listitem xml:id="sw1PhytagoreanTripletCondition1">
+                      <para><inlineequation>
+                          <m:math display="inline">
                             <m:mrow>
                               <m:mi>a</m:mi>
 
-                              <m:mo>+</m:mo>
+                              <m:mo>≤</m:mo>
 
                               <m:mi>b</m:mi>
 
-                              <m:mo>+</m:mo>
+                              <m:mo>≤</m:mo>
 
                               <m:mi>c</m:mi>
                             </m:mrow>
+                          </m:math>
+                        </inlineequation></para>
+                    </listitem>
 
-                            <m:mo>=</m:mo>
+                    <listitem xml:id="sw1PhytagoreanTripletCondition2">
+                      <para><inlineequation>
+                          <m:math display="inline">
+                            <m:mrow>
+                              <m:mrow>
+                                <m:mi>a</m:mi>
 
-                            <m:mn>840</m:mn>
-                          </m:mrow>
-                        </m:math>
-                      </inlineequation></para>
-                  </listitem>
+                                <m:mo>+</m:mo>
 
-                  <listitem>
-                    <para><inlineequation>
-                        <m:math display="inline">
-                          <m:mrow>
+                                <m:mi>b</m:mi>
+
+                                <m:mo>+</m:mo>
+
+                                <m:mi>c</m:mi>
+                              </m:mrow>
+
+                              <m:mo>=</m:mo>
+
+                              <m:mn>840</m:mn>
+                            </m:mrow>
+                          </m:math>
+                        </inlineequation></para>
+                    </listitem>
+
+                    <listitem>
+                      <para><inlineequation>
+                          <m:math display="inline">
                             <m:mrow>
-                              <m:msup>
-                                <m:mi>a</m:mi>
+                              <m:mrow>
+                                <m:msup>
+                                  <m:mi>a</m:mi>
 
-                                <m:mn>2</m:mn>
-                              </m:msup>
+                                  <m:mn>2</m:mn>
+                                </m:msup>
 
-                              <m:mo>+</m:mo>
+                                <m:mo>+</m:mo>
+
+                                <m:msup>
+                                  <m:mi>b</m:mi>
+
+                                  <m:mn>2</m:mn>
+                                </m:msup>
+                              </m:mrow>
+
+                              <m:mo>=</m:mo>
 
                               <m:msup>
-                                <m:mi>b</m:mi>
+                                <m:mi>c</m:mi>
 
                                 <m:mn>2</m:mn>
                               </m:msup>
                             </m:mrow>
+                          </m:math>
+                        </inlineequation></para>
+                    </listitem>
+                  </orderedlist>
+                </tip>
+              </question>
 
-                            <m:mo>=</m:mo>
-
-                            <m:msup>
-                              <m:mi>c</m:mi>
-
-                              <m:mn>2</m:mn>
-                            </m:msup>
-                          </m:mrow>
-                        </m:math>
-                      </inlineequation></para>
-                  </listitem>
-                </orderedlist>
-              </tip>
-            </question>
-
-            <answer>
-              <para>Since each variable does have a value of at least 1 the
-              maximum possible value is 840 - 1 - 1 = 838.</para>
+              <answer>
+                <para>Since each variable does have a value of at least 1 the maximum possible value is 840 - 1 - 1 = 838.</para>
 
-              <para>The <quote>last</quote> triple obeying both restrictions
-              <xref linkend="sw1PhytagoreanTripletCondition1"/> and <xref
-              linkend="sw1PhytagoreanTripletCondition2"/> is (280, 280, 280).
-              Due to the restriction <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
+                <para>The <quote>last</quote> triple obeying both restrictions <xref linkend="sw1PhytagoreanTripletCondition1"/> and <xref linkend="sw1PhytagoreanTripletCondition2"/> is (280, 280, 280). Due to the restriction <inlineequation>
+                    <m:math display="inline">
                       <m:mrow>
-                        <m:mi>a</m:mi>
+                        <m:mrow>
+                          <m:mi>a</m:mi>
 
-                        <m:mo>+</m:mo>
+                          <m:mo>+</m:mo>
 
-                        <m:mi>b</m:mi>
+                          <m:mi>b</m:mi>
 
-                        <m:mo>+</m:mo>
+                          <m:mo>+</m:mo>
 
-                        <m:mi>c</m:mi>
-                      </m:mrow>
+                          <m:mi>c</m:mi>
+                        </m:mrow>
 
-                      <m:mo>=</m:mo>
+                        <m:mo>=</m:mo>
 
-                      <m:mi>840</m:mi>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> two variable values already determine the
-              third one: For a given value of variable a from the outer
-              <code>for</code> loop any value of b will imply <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mi>c</m:mi>
+                        <m:mi>840</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> two variable values already determine the third one: For a given value of variable a from the outer <code>for</code> loop any value of b will imply <inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:mi>c</m:mi>
 
-                      <m:mo>=</m:mo>
+                        <m:mo>=</m:mo>
 
-                      <m:mrow>
-                        <m:mn>840</m:mn>
+                        <m:mrow>
+                          <m:mn>840</m:mn>
 
-                        <m:mo>-</m:mo>
+                          <m:mo>-</m:mo>
 
-                        <m:mi>a</m:mi>
+                          <m:mi>a</m:mi>
 
-                        <m:mo>-</m:mo>
+                          <m:mo>-</m:mo>
 
-                        <m:mi>b</m:mi>
+                          <m:mi>b</m:mi>
+                        </m:mrow>
                       </m:mrow>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>.</para>
+                    </m:math>
+                  </inlineequation>.</para>
 
-              <para>We thus only need two nested loops for generating all
-              possible triples: If the value of b is being incremented by 1
-              then c has to be decremented by 1 as well.</para>
+                <para>We thus only need two nested loops for generating all possible triples: If the value of b is being incremented by 1 then c has to be decremented by 1 as well.</para>
 
-              <para>For convenience reasons we introduce a variable <code>int
-              sum = 840</code> representing our sum of all three values. Our
-              filter condition now only needs to check for the remaining
-              Pythagorean condition <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
+                <para>For convenience reasons we introduce a variable <code>int sum = 840</code> representing our sum of all three values. Our filter condition now only needs to check for the remaining Pythagorean condition <inlineequation>
+                    <m:math display="inline">
                       <m:mrow>
-                        <m:msup>
-                          <m:mi>a</m:mi>
+                        <m:mrow>
+                          <m:msup>
+                            <m:mi>a</m:mi>
 
-                          <m:mn>2</m:mn>
-                        </m:msup>
+                            <m:mn>2</m:mn>
+                          </m:msup>
+
+                          <m:mo>+</m:mo>
+
+                          <m:msup>
+                            <m:mi>b</m:mi>
+
+                            <m:mn>2</m:mn>
+                          </m:msup>
+                        </m:mrow>
 
-                        <m:mo>+</m:mo>
+                        <m:mo>=</m:mo>
 
                         <m:msup>
-                          <m:mi>b</m:mi>
+                          <m:mi>c</m:mi>
 
                           <m:mn>2</m:mn>
                         </m:msup>
                       </m:mrow>
+                    </m:math>
+                  </inlineequation>:</para>
 
-                      <m:mo>=</m:mo>
-
-                      <m:msup>
-                        <m:mi>c</m:mi>
-
-                        <m:mn>2</m:mn>
-                      </m:msup>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>:</para>
-
-              <programlisting language="java">final int sum = 840;
+                <programlisting language="java">final int sum = 840;
 
 for (int a = 1; a &lt;= sum / 3; a++) {
 
@@ -3245,9 +3290,9 @@ for (int a = 1; a &lt;= sum / 3; a++) {
    }
 }</programlisting>
 
-              <para>This leaves us with eight triples:</para>
+                <para>This leaves us with eight triples:</para>
 
-              <screen>(40, 399, 401)
+                <screen>(40, 399, 401)
 (56, 390, 394)
 (105, 360, 375)
 (120, 350, 370)
@@ -3256,70 +3301,106 @@ for (int a = 1; a &lt;= sum / 3; a++) {
 (210, 280, 350)
 (240, 252, 348)</screen>
 
-              <para>The above code can be simplified further. We introduce the
-              variable s being shorthand for <code>sum</code> in our <xref
-              linkend="glo_Java"/> code. The inner <code>for</code> loop so
-              far starts with a value of <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mi>b</m:mi>
-
-                      <m:mo>=</m:mo>
-
-                      <m:mi>a</m:mi>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> and thus <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mi>c</m:mi>
+                <para>The above code can be simplified further. We introduce the variable s being shorthand for <code>sum</code> in our <xref linkend="glo_Java"/> code. The inner <code>for</code> loop so far starts with a value of <inlineequation>
+                    <m:math display="inline">
+                      <m:mrow>
+                        <m:mi>b</m:mi>
 
-                      <m:mo>=</m:mo>
+                        <m:mo>=</m:mo>
 
+                        <m:mi>a</m:mi>
+                      </m:mrow>
+                    </m:math>
+                  </inlineequation> and thus <inlineequation>
+                    <m:math display="inline">
                       <m:mrow>
-                        <m:mi>s</m:mi>
+                        <m:mi>c</m:mi>
 
-                        <m:mo>-</m:mo>
+                        <m:mo>=</m:mo>
 
                         <m:mrow>
-                          <m:mn>2</m:mn>
+                          <m:mi>s</m:mi>
 
-                          <m:mo>⁢</m:mo>
+                          <m:mo>-</m:mo>
 
-                          <m:mi>a</m:mi>
+                          <m:mrow>
+                            <m:mn>2</m:mn>
+
+                            <m:mo>⁢</m:mo>
+
+                            <m:mi>a</m:mi>
+                          </m:mrow>
                         </m:mrow>
                       </m:mrow>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>. Then during each step <code>b</code> is
-              being incremented by 1 and <code>c</code> will be decremented by
-              the same amount.</para>
+                    </m:math>
+                  </inlineequation>. Then during each step <code>b</code> is being incremented by 1 and <code>c</code> will be decremented by the same amount.</para>
 
-              <para>Regarding the n-th step of the inner <code>for</code> loop
-              we thus look for a value of n so that the following equation
-              becomes true:</para>
+                <para>Regarding the n-th step of the inner <code>for</code> loop we thus look for a value of n so that the following equation becomes true:</para>
 
-              <informalequation>
-                <m:math display="inline">
-                  <m:mrow>
+                <informalequation>
+                  <m:math display="inline">
                     <m:mrow>
-                      <m:msup>
-                        <m:mi>a</m:mi>
+                      <m:mrow>
+                        <m:msup>
+                          <m:mi>a</m:mi>
 
-                        <m:mi>2</m:mi>
-                      </m:msup>
+                          <m:mi>2</m:mi>
+                        </m:msup>
+
+                        <m:mo>+</m:mo>
+
+                        <m:munder accentunder="true">
+                          <m:msup>
+                            <m:mrow>
+                              <m:mo>(</m:mo>
+
+                              <m:mrow>
+                                <m:mi>a</m:mi>
+
+                                <m:mo>+</m:mo>
+
+                                <m:mi>n</m:mi>
+                              </m:mrow>
+
+                              <m:mo>)</m:mo>
+                            </m:mrow>
+
+                            <m:mi>2</m:mi>
+                          </m:msup>
+
+                          <m:munder accentunder="true">
+                            <m:mo stretchy="true">︸</m:mo>
+
+                            <m:msup>
+                              <m:mi>b</m:mi>
+
+                              <m:mi>2</m:mi>
+                            </m:msup>
+                          </m:munder>
+                        </m:munder>
+                      </m:mrow>
 
-                      <m:mo>+</m:mo>
+                      <m:mo>=</m:mo>
 
-                      <m:munder accentunder="true">
+                      <m:munder>
                         <m:msup>
                           <m:mrow>
                             <m:mo>(</m:mo>
 
                             <m:mrow>
-                              <m:mi>a</m:mi>
+                              <m:mi>s</m:mi>
 
-                              <m:mo>+</m:mo>
+                              <m:mo>-</m:mo>
+
+                              <m:mrow>
+                                <m:mn>2</m:mn>
+
+                                <m:mo>⁢</m:mo>
+
+                                <m:mi>a</m:mi>
+                              </m:mrow>
+
+                              <m:mo>-</m:mo>
 
                               <m:mi>n</m:mi>
                             </m:mrow>
@@ -3330,80 +3411,105 @@ for (int a = 1; a &lt;= sum / 3; a++) {
                           <m:mi>2</m:mi>
                         </m:msup>
 
-                        <m:munder accentunder="true">
+                        <m:munder>
                           <m:mo stretchy="true">︸</m:mo>
 
                           <m:msup>
-                            <m:mi>b</m:mi>
+                            <m:mi>c</m:mi>
 
                             <m:mi>2</m:mi>
                           </m:msup>
                         </m:munder>
                       </m:munder>
                     </m:mrow>
+                  </m:math>
+                </informalequation>
 
-                    <m:mo>=</m:mo>
+                <!--
+              <informalequation>
+                <mathphrase>$a^2 + \underbrace{(a + n)^2}_{b^2} =
+                \underbrace{(s - 2a -n)^2}_{c^2}$</mathphrase>
+              </informalequation>
+              -->
 
-                    <m:munder>
-                      <m:msup>
-                        <m:mrow>
-                          <m:mo>(</m:mo>
+                <para>Solving this equation for n results in:</para>
 
-                          <m:mrow>
-                            <m:mi>s</m:mi>
+                <informalequation>
+                  <m:math display="inline">
+                    <m:mrow>
+                      <m:mi>n</m:mi>
 
-                            <m:mo>-</m:mo>
+                      <m:mo>=</m:mo>
 
+                      <m:mfrac>
+                        <m:mrow>
+                          <m:msup>
                             <m:mrow>
-                              <m:mn>2</m:mn>
+                              <m:mo>(</m:mo>
+
+                              <m:mrow>
+                                <m:mi>s</m:mi>
 
-                              <m:mo>⁢</m:mo>
+                                <m:mo>-</m:mo>
 
-                              <m:mi>a</m:mi>
+                                <m:mrow>
+                                  <m:mn>2</m:mn>
+
+                                  <m:mo>⁢</m:mo>
+
+                                  <m:mi>a</m:mi>
+                                </m:mrow>
+                              </m:mrow>
+
+                              <m:mo>)</m:mo>
                             </m:mrow>
 
-                            <m:mo>-</m:mo>
+                            <m:mi>2</m:mi>
+                          </m:msup>
 
-                            <m:mi>n</m:mi>
-                          </m:mrow>
+                          <m:mo>-</m:mo>
 
-                          <m:mo>)</m:mo>
+                          <m:mrow>
+                            <m:mn>2</m:mn>
+
+                            <m:mo>⁢</m:mo>
+
+                            <m:msup>
+                              <m:mi>a</m:mi>
+
+                              <m:mi>2</m:mi>
+                            </m:msup>
+                          </m:mrow>
                         </m:mrow>
 
-                        <m:mi>2</m:mi>
-                      </m:msup>
+                        <m:mrow>
+                          <m:mn>2</m:mn>
 
-                      <m:munder>
-                        <m:mo stretchy="true">︸</m:mo>
+                          <m:mo>⁢</m:mo>
 
-                        <m:msup>
-                          <m:mi>c</m:mi>
+                          <m:mrow>
+                            <m:mo>(</m:mo>
 
-                          <m:mi>2</m:mi>
-                        </m:msup>
-                      </m:munder>
-                    </m:munder>
-                  </m:mrow>
-                </m:math>
-              </informalequation>
+                            <m:mrow>
+                              <m:mi>s</m:mi>
 
-              <!--
-              <informalequation>
-                <mathphrase>$a^2 + \underbrace{(a + n)^2}_{b^2} =
-                \underbrace{(s - 2a -n)^2}_{c^2}$</mathphrase>
-              </informalequation>
-              -->
+                              <m:mo>-</m:mo>
 
-              <para>Solving this equation for n results in:</para>
+                              <m:mi>a</m:mi>
+                            </m:mrow>
 
-              <informalequation>
-                <m:math display="inline">
-                  <m:mrow>
-                    <m:mi>n</m:mi>
+                            <m:mo>)</m:mo>
+                          </m:mrow>
+                        </m:mrow>
+                      </m:mfrac>
+                    </m:mrow>
+                  </m:math>
+                </informalequation>
 
-                    <m:mo>=</m:mo>
+                <para>So for each given value of a there is either no or exactly one possible solution (since <code>n</code> is of integer type). Our inner loop thus becomes obsolete.</para>
 
-                    <m:mfrac>
+                <para>The above equation must hold for integer arithmetic leaving no fractional remainder. We introduce two variables <code>numerator</code> and <code>denominator</code> representing the above terms <inlineequation>
+                    <m:math display="inline">
                       <m:mrow>
                         <m:msup>
                           <m:mrow>
@@ -3443,7 +3549,9 @@ for (int a = 1; a &lt;= sum / 3; a++) {
                           </m:msup>
                         </m:mrow>
                       </m:mrow>
-
+                    </m:math>
+                  </inlineequation> and <inlineequation>
+                    <m:math display="inline">
                       <m:mrow>
                         <m:mn>2</m:mn>
 
@@ -3463,87 +3571,10 @@ for (int a = 1; a &lt;= sum / 3; a++) {
                           <m:mo>)</m:mo>
                         </m:mrow>
                       </m:mrow>
-                    </m:mfrac>
-                  </m:mrow>
-                </m:math>
-              </informalequation>
-
-              <para>So for each given value of a there is either no or exactly
-              one possible solution (since <code>n</code> is of integer type).
-              Our inner loop thus becomes obsolete.</para>
-
-              <para>The above equation must hold for integer arithmetic
-              leaving no fractional remainder. We introduce two variables
-              <code>numerator</code> and <code>denominator</code> representing
-              the above terms <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:msup>
-                        <m:mrow>
-                          <m:mo>(</m:mo>
-
-                          <m:mrow>
-                            <m:mi>s</m:mi>
-
-                            <m:mo>-</m:mo>
-
-                            <m:mrow>
-                              <m:mn>2</m:mn>
-
-                              <m:mo>⁢</m:mo>
-
-                              <m:mi>a</m:mi>
-                            </m:mrow>
-                          </m:mrow>
-
-                          <m:mo>)</m:mo>
-                        </m:mrow>
-
-                        <m:mi>2</m:mi>
-                      </m:msup>
-
-                      <m:mo>-</m:mo>
-
-                      <m:mrow>
-                        <m:mn>2</m:mn>
-
-                        <m:mo>⁢</m:mo>
-
-                        <m:msup>
-                          <m:mi>a</m:mi>
-
-                          <m:mi>2</m:mi>
-                        </m:msup>
-                      </m:mrow>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation> and <inlineequation>
-                  <m:math display="inline">
-                    <m:mrow>
-                      <m:mn>2</m:mn>
-
-                      <m:mo>⁢</m:mo>
-
-                      <m:mrow>
-                        <m:mo>(</m:mo>
-
-                        <m:mrow>
-                          <m:mi>s</m:mi>
-
-                          <m:mo>-</m:mo>
-
-                          <m:mi>a</m:mi>
-                        </m:mrow>
-
-                        <m:mo>)</m:mo>
-                      </m:mrow>
-                    </m:mrow>
-                  </m:math>
-                </inlineequation>.The <quote>remainder of modulus</quote>
-              operator <code>%</code> testing for a zero remainder filters the
-              desired triples:</para>
+                    </m:math>
+                  </inlineequation>.The <quote>remainder of modulus</quote> operator <code>%</code> testing for a zero remainder filters the desired triples:</para>
 
-              <programlisting language="java">final int sum = 840;
+                <programlisting language="java">final int sum = 840;
 
 for (int a = 1; a &lt;= sum / 3; a++) {
 
@@ -3557,13 +3588,28 @@ for (int a = 1; a &lt;= sum / 3; a++) {
   }
 }</programlisting>
 
-              <para>This yields the same result as before but execution is
-              (again) ways faster. This will pay off when looking for larger
-              values of <code>sum</code>.</para>
-            </answer>
-          </qandaentry>
-        </qandadiv>
-      </qandaset>
+                <para>This yields the same result as before but execution is (again) ways faster. This will pay off when looking for larger values of <code>sum</code>.</para>
+              </answer>
+            </qandaentry>
+          </qandadiv>
+        </qandaset>
+      </section>
+    </section>
+
+    <section xml:id="sd1SectExternalLogicExercises">
+      <title>Logic related external exercises</title>
+
+      <para>Solve:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para><link xlink:href="http://codingbat.com/java/Warmup-1">Warmup-1</link> excluding <link xlink:href="http://codingbat.com/prob/p191914">Warmup-1 &gt; notString</link>.</para>
+        </listitem>
+
+        <listitem>
+          <para><link xlink:href="http://codingbat.com/java/Logic-1">Logic-1</link>.</para>
+        </listitem>
+      </itemizedlist>
     </section>
   </section>
 </chapter>
-- 
GitLab