File:  [LON-CAPA] / doc / gutshtml / SessionThre1.html
Revision 1.2: download - view: text, annotated - select for diffs
Tue Jul 22 14:47:00 2003 UTC (19 years, 4 months ago) by bowersj2
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, bz6209-base, bz6209, HEAD, GCI_3, GCI_2, GCI_1, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
Convert GUTs HTML to PROPER line endings.

<html>
<head>
<meta name=Title
content="Session Three: Publication, Content Maps, Course Maps (Gerd)">
<meta http-equiv=Content-Type content="text/html; charset=macintosh">
<title>Session Three: Publication, Content Maps, Course Maps (Gerd)</title>
<style><!--
.Section1
	{page:Section1;}
.Section2
	{page:Section2;}
-->
</style>
</head>
<body bgcolor=#FFFFFF class="Normal" lang=EN-US>
<div class=Section1> 
  <h2>Session Three: Publication, Content Maps, Course Maps (Gerd)</h2>
  <h3><a name="_Toc514840855"></a><a name="_Toc421867109">Publication of a Resource</a></h3>
  <p>Authors can only write-access the<i> </i><span
style='font-family:"Courier New";font-style:normal'>/~</span><span
style='font-family:"Courier New"'><i>authorname</i></span><span
style='font-family:"Courier New"'>/</span> space. They can copy resources into 
    the resource area through the publication step, and move them back through 
    a recover step. Authors do not have direct write-access to their resource 
    space. </p>
  <div class=Section9>
    <div style='border:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt'>
      <p style='border:none;padding:0in'><span
style='font-size:14.0pt'><b>Construction space</b></span><span
style='font-size:14.0pt'> </span><span style='font-size:14.0pt;font-family:
Wingdings'>ą</span><span style='font-size:14.0pt'> Publication Step </span><span
style='font-size:14.0pt;font-family:Wingdings'>ą</span><span style='font-size:
14.0pt'> <b>Resource space</b></span></p>
      <p style='border:none;padding:0in'><span style='font-size:14.0pt'> </span><span
style='font-size:14.0pt;font-family:Wingdings'>ß</span><span style='font-size:
14.0pt'> Retrieve </span><span style='font-size:14.0pt;font-family:Wingdings'>ß</span> 
      </p>
    </div>
    <p>During the publication step, several events will be triggered. Metadata 
      is gathered, where a wizard manages default entries on a hierarchical per-directory 
      base: The wizard imports the metadata (including access privileges and royalty 
      information) from the most recent published resource in the current directory, 
      and if that is not available, from the next directory above, etc. The Network 
      keeps all previous versions of a resource and makes them available by an 
      explicit version number, which is inserted between the file name and extension, 
      for example <span style='font-family:"Courier New"'>foo.2.html</span>, while 
      the most recent version does not carry a version number (<span
style='font-family:"Courier New"'>foo.html</span>). Servers subscribing to a changed 
      resource are notified that a new version is available.</p>
    <h3><a name="_Toc514840857"></a><a name="_Toc421867110">Content Re-usage and 
      Granularity</a></h3>
    <p>Any faculty participating in the Network can publish their own learning 
      resources into the common pool. To that end, the Network provides a “construction 
      space” which is only accessible to the author, and a publication process, 
      which transfers the material to the shared pool – during the publication 
      process, metadata about the resource is gathered, and system-wide update 
      notification and versioning mechanisms are triggered..</p>
    <p>Learning resources could be simple paragraphs of text, movies, applets, 
      individualizing homework problems, etc. In addition to providing a distributed 
      digital library with mechanisms to store and catalog these resources, the 
      Network enables faculty to combine and sequence these resources at several 
      levels: An instructor from Community College A could combine a text paragraph 
      from University B with a movie from College C and an online homework problem 
      from Publisher D, to form one page. Another instructor from High School 
      E can take that page from Community College A and combine it with other 
      pages into a module, unit or chapter. Those in turn can be combined into 
      whole coursepacks. Faculty can design their own curricula from existing 
      and newly created resources instead of having to buy into a complete off-the-shelf 
      product.</p>
    <p><b>Fig. 2.3.1</b><span style='font-weight:normal'> shows a general overview 
      of the resource assembly mechanism and the different levels of content granularity 
      supported by the current implementation of this principle. The topmost puzzle 
      piece represents a resource at the fragment level – one GIF, one movie, 
      one paragraph of text, one problem, or one regular web page. Attached to 
      the resource is metadata gathered at the publication time of the resource.</span></p>
    <p>Using the resource assembly tool described below, these fragments and pages 
      can be assembled into a page. A page is a resource of the grain size which 
      would be rendered as one page on the web and/or on the printer.</p>
    <p>Using the same tool, fragments (which would then be rendered as standalone 
      pages), pages and sequences can be assembled into sequences. Sequences are 
      resources which are rendered a sequence of pages, not necessarily linear. 
      Examples are one lesson, one chapter, or one learning cycle</p>
    <p>On the third granularity level, fragments (rendered as standalone pages), 
      pages, and sequences can be assembled into courses. Courses are a sequence 
      which represents the entirety of the resources belonging to a learning unit 
      into which learners can be enrolled. Examples are a University one-semester 
      course, a</p>
    <p>workshop, or a High School class.</p>
    <p align=center style='text-align:center'><img border=0
width=291 height=436 id="_x0000_i1029" src="handout_files/image005.png"></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.1.1</b></span><span
style='font-size:14.0pt'> – Resource Assembly</span></p>
    <h3><a name="_Toc514840858"></a><a name="_Toc421867111">Maps</a></h3>
    <p>To increase the utility of the materials, the number of hard-coded hyperlinks 
      between the resources should be minimized. The actual combining and sequencing 
      is part of the system functionality and driven by external &quot;roadmaps&quot;, 
      which are constructed by the instructors. With this mechanism, one and the 
      same resource can be part of different courses in different contexts. The 
      soft-linking makes it possible to import only the desired set of resources 
      without effectively importing additional parts another instructors resources 
      through hard-linked menus or &quot;next page&quot; buttons that might resided 
      on those resources.</p>
    <h3><a name="_Toc514840859"></a><a name="_Toc421867112">Curriculum Adaptivity</a></h3>
    <p>Maps allow for conditional choices and branching points. The actual path 
      through and presentation of the learning resources is determined by instructor-specified 
      combinations of learner choices and system-generated adaptations (for example, 
      if the learner does not pass a test, additional resources may be included). 
      Each learner can have an individualized curriculum according to preferences, 
      capabilities and skills.</p>
    <p>These maps can be generated at different levels of granularity with a graphical 
      tool, or in an automated way through custom scripts.</p>
    <h3><a name="_Toc514840860"></a><a name="_Toc421867113">Resource Assembly 
      Tool</a></h3>
    <p>The Network provides the Resource Assembly Tool as one means to generate 
      maps. The Resource Assembly Tool provides a graphical user interface inside 
      of a standard web browser. The current implementation is written in JavaScript. 
    </p>
    <p><b>Fig. 2.3.2</b><span style='font-weight:normal'> shows screenshots of 
      the current implementation. The interface usually consists of two browser 
      windows, one resizable one with a frameset that contains the menu and the 
      map under construction, and a multipurpose non-resizable window that displays 
      information and input forms.</span></p>
    <p>When a new map is started, it only has a start and a finish resources. 
      The author can then enlarge the map area and insert resources into it.</p>
    <p>In <b>Fig. 2.3.2A</b><span style='font-weight:normal'>, the author is editing 
      information about a resource in the map after clicking on the box representing 
      the resource in the map. In the dialog, the author can enter a map-internal 
      title for the resource, which is displayed to the learners when navigating 
      the maps. In the same dialog, the author will specify the URL of the resource, 
      which can either be internal to the Network, or any URL of a web page outside 
      of it. For internal resources, the author can also browse the Network filesystem 
      or search the resource metadata to locate an appropriate resource.</span></p>
    <p><span style='font-size:14.0pt'><b><img border=0 width=431
height=327 id="_x0000_i1030" src="handout_files/image006.jpg">Fig. 2.3.2A</b></span><span
style='font-size:14.0pt'> – </span><span style='font-size:12.0pt'>Example, Graphical 
      User Interface of Resource Assembly Tool</span></p>
    <p>The resource priority can be chosen. A resource can be “regular,” “mandatory” 
      or “optional.” These resource priorities are only used in book-keeping of 
      earned points by the learners. Within the map, resources of different priorities 
      are displayed in different colors.</p>
    <p>The dialog also allows for two modes of removing the resource from the 
      map: deleting it from the map including every link to and from it, and deleting 
      it while reconnecting any links that went through the resource. As an example, 
      resources A and B might both connect to resource C, and resource C might 
      connect to D. When removing C from the map using the first option, A and 
      B will not be connected to D anymore. Using the second option, in the end, 
      A will connect to D, and B will connect to D. In the latter case, the Resource 
      Assembly tool will also handle link conditions correctly: if A connected 
      to C under condition 1, and C connected to D under condition 2, then in 
      the end A will connect to D under a new condition which is (1 AND 2).</p>
    <p>Finally, this dialog allows the author to connect the resource to another 
      resource (or itself) through a new link. When selecting this option, the 
      Resource Assembly Tool goes into link mode, and will link the current resource 
      to the next resource clicked on (unless the action is cancelled).</p>
    <p><img border=0 width=431 height=327 id="_x0000_i1031"
src="handout_files/image007.jpg"></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.2B</b></span><span
style='font-size:14.0pt'> – </span><span style='font-size:12.0pt'>Example, Graphical 
      User Interface of Resource Assembly Tool</span></p>
    <p><b>Fig. 2.3.2B</b><span style='font-weight:normal'> shows the Resource 
      Assembly Tool in info mode, that is, when no specific component of the map 
      is edited, and if the Tool is not in link mode. In info mode, the contents 
      of the dialog window change dynamically as the mouse is moved over the components 
      of the map. In this case, the mouse pointer is over the link condition between 
      two resources. The dialog window shows the titles of the connected resources, 
      as well as the condition priority. In this scenario, the condition priority 
      is set such that the link cannot be taken (“is blocked”) if the condition 
      is false. The condition priority can also be set such that the link is recommended 
      if the condition is true (possibly giving the learner several options where 
      to go next), or that the link has to be taken (“is forced”) over any other 
      possible link if the condition is true. Within the map, conditions of different 
      priorities are displayed in different colors. If the author now were to 
      click on the condition, the Tool would go into edit mode, and the condition 
      could be edited.</span></p>
    <p><b>Fig. 2.3.2C</b><span style='font-weight:normal'> shows the Tool in edit 
      mode for the link between the resource titles displayed. The author can 
      remove the link, or insert a new resource into the link.</span></p>
    <p>Obviously, by this mechanism, rather complex maps can be generated. These 
      are different from binary trees, both because branches can loop back, and 
      because branches can be re-united – in fact, most branches re-unite in the 
      finish resources. Into each link, a condition with one of three different 
      priorities can be attached. Whether or not a certain resource in the map 
      can be displayed depends on whether or not it can be reached through any 
      path along allowed links, starting with the start resource of the course. 
      If a resource is not linked to, it is assumed to be accessible if the map 
      which it is part of is accessible.</p>
    <p><img border=0 width=431 height=327 id="_x0000_i1032"
src="handout_files/image008.jpg"></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.2C</b></span><span
style='font-size:14.0pt'> – </span><span style='font-size:12.0pt'>Example, Graphical 
      User Interface of Resource Assembly Tool </span></p>
    <h3><a name="_Toc514840861"></a><a name="_Toc421867114">Map Representation 
      and Storage Format</a></h3>
    <p><b>Fig. 2.3.3</b><span style='font-weight:normal'> shows the XML representation 
      of the resource map constructed in </span><b>Fig. 2.3.2</b><span
style='font-weight:normal'>, which is the format in which maps are stored. In 
      the figure, however, additional graphical map layout information generated 
      by the Resource Assembly Tool is not displayed. This graphical information 
      is optional to re-generate the same graphical layout when the map is brought 
      up again in the Resource Assembly Tool, and is not needed for any other 
      system functionality.</span></p>
    <p>Maps can be generated by tools other than the Resource Assembly Tool. In 
      particular, an author might have some other representation of a course sequence, 
      which can be converted into a map using scripts. If this map then were to 
      be brought up in the Resource Assembly Tool, the Tool would automatically 
      generate a graphical layout for it. Each entry of the map (resources, conditions 
      and links) is stored in a separate tag. </p>
    <p>Resources and conditions have to have unique ID numbers. These numbers 
      are automatically generated by the Resource Assembly Tool when the entry 
      is first created, or added to the entries when a map generated outside the 
      Resource Assembly Tool is first retrieved. They can also be assigned by 
      custom scripts or added in by hand.</p>
    <p>In this example, <b>Fig. 2.3.3</b><span style='font-weight:
normal'>, entry 1 is the start resource of the map – when this map is accessed, 
      the source (src) URL of this tag will be the first resource rendered. Entry 
      2 is the finish resource of this map. This resource will be the last resource 
      in the sequence of resources. Entry 6 is a problem resource with the given 
      URL and title, as well as the priority “mandatory”. Entry 19 is a condition, 
      which is used by the link between entries 6, the problem, and 9, a sequence. 
      <i>The final syntax for conditions has not yet been determined.</i></span></p>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;map&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;1&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> src=&quot;/res/msu/korte/phy231welcome.html&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> type=&quot;start&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Start&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;2&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> src=&quot;&quot; 
            type=&quot;finish&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Finish&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;6&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> src=&quot;/res/msu/korte/tests/units.problem&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Physical 
            Units Test&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;9&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> src=&quot;/res/msu/korte/chapters/onedim.sequence&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Motion 
            in One Dimension&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;11&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> src=&quot;/res/msu/bauer/bridges/units.sequence&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Physical 
            Units Refresher&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;19&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> type=&quot;stop&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./res/msu/korte/tests/units.problem].status=solved&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;1&quot; 
            to=&quot;6&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;9&quot; condition=&quot;19&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;11&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;11&quot; 
            to=&quot;6&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;/map&gt;</span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.3</b></span><span
style='font-size:14.0pt'> – XML representation of the map in Fig. 2.3.2C (non-graphical 
      information only).</span></p>
    <h3><a name="_Toc514840866"></a><a name="_Toc514840862"></a><a
name="_Toc514920452"></a><a name="_Toc421867115">Example of Nested Maps</a></h3>
    <p><b>Fig. 2.3.4 </b><span style='font-weight:normal'>shows the XML representation 
      of three maps which are imported into each other. </span><b>Fig. 2.3.4B</b><span style='font-weight:normal'> 
      is the sequence that is referenced as resource 9 in the course map </span><b>Fig. 
      2.3.4A</b><span
style='font-weight:normal'>. In the resulting map, the entry point of resource 
      9 in </span><b>Fig. 2.3.4A</b><span style='font-weight:normal'> is in fact 
      the entry point of the start resource of </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>, namely, resource 1 there. The exit point of resource 
      9 in </span><b>Fig. 2.3.4A</b><span style='font-weight:normal'> is the exit 
      point of the finish resource of </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>, namely, resource 2 there.</span></p>
    <p><b>Fig. 2.3.4C</b><span style='font-weight:normal'> is the page which is 
      referenced as resource 24 in </span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>.</span></p>
    <p>A course can easily contain several hundreds of these nested maps. Since 
      the accessibility of each individual resource in the course depends on the 
      state of all possible paths linking it to the start resource of the course 
      across all intermediate maps, the computation and disk-I/O effort per single 
      transaction could quickly become prohibitive. Thus, all maps and conditions 
      are compiled into a pre-processed binary data structure at the start of 
      a session.</p>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=442 valign=top class="Normal"> 
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;map&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;1&quot; 
            src=&quot;&quot; type=&quot;start&quot; title=&quot;Start&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;2&quot; 
            src=&quot;&quot; type=&quot;finish&quot; title=&quot;Finish&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;5&quot; 
            src=&quot;/res/msu/korte/tests/pretest.problem&quot; type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Pretest&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;9&quot; 
            src=&quot;/res/msu/korte/parts/part1.sequence&quot; type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Part 
            1&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;11&quot; 
            src=&quot;/res/msu/korte/tests/midterm.sequence&quot; type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Midterm&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;15&quot; 
            src=&quot;/res/msu/korte/parts/part2.sequence&quot; type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Part 
            2&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;19&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/pretest.problem].status=solved&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;20&quot; 
            src=&quot;/res/msu/korte/refresh/refresher.sequence&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Refresher&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;29&quot; 
            src=&quot;/res/msu/korte/tests/final.sequence&quot; type=&quot;mandatory&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Final 
            Exam&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;30&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/midterm.sequence].percent&gt;60&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;36&quot; 
            src=&quot;/res/msu/korte/refresh/review.sequence&quot;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Review&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;43&quot; 
            type=&quot;force&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/midterm.sequence].percent&lt;10&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;58&quot; 
            src=&quot;/res/msu/korte/chapters/applications.sequence&quot; type=&quot;optional&quot; 
            </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Applications&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;70&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/final.sequence].percent&gt;60&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;1&quot; 
            to=&quot;5&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;9&quot; 
            to=&quot;11&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;11&quot; 
            to=&quot;15&quot; condition=&quot;30&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;9&quot; condition=&quot;19&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;20&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;20&quot; 
            to=&quot;5&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;11&quot; 
            to=&quot;36&quot; condition=&quot;43&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;36&quot; 
            to=&quot;9&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;36&quot; 
            to=&quot;11&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;15&quot; 
            to=&quot;29&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;29&quot; 
            to=&quot;2&quot; condition=&quot;70&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;11&quot; 
            to=&quot;11&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;/map&gt;</span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.4A</b></span><span
style='font-size:14.0pt'> – Example of a course map that has nested sequences</span></p>
    <br clear=ALL
style='page-break-before:always'>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=442 valign=top class="Normal"> 
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;map&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;1&quot; 
            src=&quot;&quot; type=&quot;start&quot; title=&quot;Start&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;2&quot; 
            src=&quot;&quot; type=&quot;finish&quot; title=&quot;Finish&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;5&quot; 
            src=&quot;/res/msu/korte/parts/part1intro.html&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> title=&quot;Part 
            1 Introduction&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;6&quot; 
            src=&quot;/res/msu/korte/parts/part1dir.xml&quot; title=&quot;Directions&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;12&quot; 
            src=&quot;/res/msu/korte/tests/part11.problem&quot; title=&quot;Problem 
            1&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;13&quot; 
            src=&quot;/res/msu/korte/tests/part13.problem&quot; title=&quot;Problem 
            3&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;19&quot; 
            src=&quot;/res/msu/korte/tests/part12.problem&quot; title=&quot;Problem 
            2&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;24&quot; 
            src=&quot;/res/msu/korte/parts/summary.page&quot; title=&quot;Summary&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;47&quot; 
            type=&quot;stop&quot;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/part11.problem].status=solved&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;48&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/part12.problem].status=solved&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;49&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/korte/tests/part13.problem].status=solved&quot;&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> &lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;6&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;1&quot; 
            to=&quot;5&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;12&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;13&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;19&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;12&quot; 
            to=&quot;24&quot; condition=&quot;47&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;19&quot; 
            to=&quot;24&quot; condition=&quot;48&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;13&quot; 
            to=&quot;24&quot; condition=&quot;49&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;24&quot; 
            to=&quot;2&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;/map&gt;</span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.4B</b></span><span
style='font-size:14.0pt'> – Example of a sequence (</span><span
style='font-size:14.0pt;font-family:"Courier New"'>part1.sequence</span><span
style='font-size:14.0pt'>) that has nested pages</span></p>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;map&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;1&quot; 
            src=&quot;&quot; type=&quot;start&quot; title=&quot;Start&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;2&quot; 
            src=&quot;&quot; type=&quot;finish&quot; title=&quot;Finish&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;5&quot; 
            src=&quot;/res/msu/smith/racecar.problem&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;6&quot; 
            src=&quot;/res/msu/smith/toofast.html&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;8&quot; 
            src=&quot;/res/msu/smith/tooslow.html&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;resource id=&quot;15&quot; 
            src=&quot;/res/msu/smith/accelerate.html&quot;&gt;&lt;/resource&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;40&quot; 
            type=&quot;force&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/smith/racecar.problem].status=solved&quot;&gt;&lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;41&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/smith/racecar.problem].answer=friction&quot;&gt;&lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;42&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'> value=&quot;user.assessments[this./msu/smith/racecar.problem].answer=sliding&quot;&gt;&lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;condition id=&quot;43&quot; 
            type=&quot;stop&quot; </span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>value=&quot;user.assessments[this./msu/smith/racecar.problem].answer=nonconstant&quot;&gt;&lt;/condition&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;1&quot; 
            to=&quot;5&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;6&quot; condition=&quot;41&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;8&quot; condition=&quot;42&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;15&quot; condition=&quot;43&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;6&quot; 
            to=&quot;2&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;8&quot; 
            to=&quot;2&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;15&quot; 
            to=&quot;2&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;link from=&quot;5&quot; 
            to=&quot;2&quot; condition=&quot;40&quot;&gt;&lt;/link&gt;</span></p>
          <p class=Preformatted><span style='font-size:8.0pt'>&lt;/map&gt;</span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.4C</b></span><span
style='font-size:14.0pt'> – Example of a page (</span><span style='font-size:
14.0pt;font-family:"Courier New"'>summary.page</span><span style='font-size:
14.0pt'>)</span></p>
    <br clear=ALL
style='page-break-before:always'>
    <p><span style='font-size:14.0pt'><img border=0 width=432
height=456 id="_x0000_i1033" src="handout_files/image009.jpg"></span></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.5 – </b></span><span
style='font-size:14.0pt'>Flow chart of the course initialization routine run when 
      a learner first accesses a course during a session (see Figs. 2.1.6A and 
      2.1.8A for the procedures </span><span style='font-size:14.0pt;font-family:
"Courier New"'>loadmap</span><span style='font-size:14.0pt'> and </span><span
style='font-size:14.0pt;font-family:"Courier New"'>traceroute</span><span
style='font-size:14.0pt'>)</span></p>
    <h3><a name="_Toc514840863"></a><a name="_Toc514920453"></a><a
name="_Toc421867116">Initialization of a Course for a Learner</a></h3>
    <p>When a learner first enters a course during a session, the system will 
      initialize this course for the learner. In particular, at this point, the 
      course map and all nested (embedded) maps and resources are evaluated, and 
      the information is compiled into two binary structures, which are stored 
      with the session information: the resource properties hash, and the link 
      conditions array. This information will be used over the duration of the 
      session for several purposes: navigation (which resource is the next, which 
      one the previous?), for access control (can the resource be reached under 
      the link conditions given the current state of the student?), and to register 
      assessment results within the context of a certain course and map (there 
      might be several instances of the same problem resource within a course).</p>
    <h3><a name="_Toc514840864"></a><a name="_Toc514920454"></a><a
name="_Toc421867117">Evaluation of the Map Structure for a Course</a></h3>
    <p>The URL of the course is passed to the procedure <span
style='font-family:"Courier New"'>readmap</span> (<b>Fig. 2.3.5</b><span
style='font-weight:normal'>). Procedure </span><span style='font-family:"Courier New"'>readmap</span> 
      first initializes the resource properties as an empty hash, seeds the link 
      conditions array with a 0<sup>th</sup> element, which is set to “true”, 
      priority “normal”, and sets the map counter to 0 (<b>Fig. 2.3.5, Step R1</b><span
style='font-weight:normal'>). While the resource properties hash, the link conditions 
      array and the map counter are global variable of the initialization process, 
      all other variables are local to the procedures (an important property for 
      these routines to run recursively). The procedure </span><span
style='font-family:"Courier New"'>readmap</span> then calls procedure <span
style='font-family:"Courier New"'>loadmap</span> for the URL of the course (<b>Fig. 
      2.3.5, Step R2</b><span style='font-weight:normal'>).</span></p>
    <p><b>Figs. 2.1.6, 2.1.7</b><span style='font-weight:normal'> show a dump 
      of excerpts of the binary structure generated in </span><span
style='font-family:"Courier New"'>loadmap</span> for the nested maps of example 
      <b>Fig. 2.3.4</b><span style='font-weight:normal'>.</span></p>
    <p>Procedure <span style='font-family:"Courier New"'>loadmap</span> (<b>Fig. 
      2.3.6A</b><span style='font-weight:normal'>) first checks if the map URL 
      has already been processed (multiple inclusion of the same map in a course 
      structure) (</span><b>Fig. 2.3.6A, Step L1</b><span style='font-weight:normal'>) 
      – if it was, it has been assigned a map counter value in the resource properties 
      hash. If the map has been processed, there is no need to process it again, 
      and </span><span style='font-family:"Courier New"'>loadmap</span> returns.</p>
    <p>If the map has not been processed yet, the map counter is incremented and 
      the map is registered under the current value in the resource properties 
      hash (<b>Fig. 2.3.6A, Step L2</b><span style='font-weight:normal'>). The 
      file is then opened (</span><b>Fig. 2.3.6A, Step L3</b><span
style='font-weight:normal'>), which might entail prior replication, and the contents 
      are parsed. If there are no further entries, </span><span
style='font-family:"Courier New"'>loadmap</span> returns (<b>Fig. 2.3.6A, Step 
      L4</b><span style='font-weight:normal'>).</span></p>
    <p>The new entry tag is then read (<b>Fig. 2.3.6A, Step L5</b><span
style='font-weight:normal'>) and the type is determined (</span><b>Fig. 2.3.6A, 
      Step L6</b><span style='font-weight:normal'>). </span></p>
    <p>If the entry is a resource (<b>Step L7</b><span
style='font-weight:normal'>), a resource ID is formed by combining the map counter 
      and the resource ID within the map. For example, the “Part I Introduction” 
      resource of part1.sequence (</span><b>Fig. 2.3.4B</b><span
style='font-weight:normal'>) was assigned the resource ID 2.5, since it has the 
      internal resource ID 5 in the 2<sup>nd</sup> map processed (see </span><b>Fig. 
      2.3.6B</b><span style='font-weight:normal'> under “ids_”). If the same URL 
      is found again, additional IDs are assigned to it. It is necessary to store 
      the IDs under the URL in the resource properties hash for reverse lookup 
      if a user simply requests a URL. If the resource is a start or finish resources, 
      the resource ID is registered as the start or finish resource of the map, 
      respectively (</span><b>Fig. 2.3.6B</b><span style='font-weight:normal'>, 
      “map_start_”, “map_finish_”). The properties of the resource (URL, Title, 
      Priority, etc) are now stored under the resource ID, see for example </span><b>Fig. 
      2.3.6B</b><span
style='font-weight:normal'> “title_2.5”.</span></p>
    <p>If the resource is not a map itself (<b>Fig. 2.3.6A</b><span
style='font-weight:normal'>, </span><b>Step L8</b><span style='font-weight:
normal'>), the next entry is read. Otherwise, procedure </span><span
style='font-family:"Courier New"'>loadmap </span>calls itself recursively to process 
      that map (<b>Step L9</b><span style='font-weight:normal'>).</span></p>
    <p>If in <b>Step L6</b><span style='font-weight:normal'>, the type of the 
      entry was determined to be a condition, a condition ID is formed (</span><b>Step 
      L10</b><span style='font-weight:normal'>) by again combining the map counter 
      with the internal ID. The condition is also added to the end of the condition 
      array (see </span><b>Fig. 10</b><span style='font-weight:normal'>), which 
      is a compilation of all conditions in the course (</span><b>Step L11</b><span
style='font-weight:normal'>). The conditions in this array are evaluated when 
      a transaction occurs that could change the state of the student, and the 
      state of each condition is stored by the index number in the session environment. 
      A reference to the index number in the condition array is stored under the 
      condition ID (</span><b>Fig. 2.3.6D</b><span style='font-weight:normal'>, 
      “condid_”).</span></p>
    <p>If the entry is a link (<b>Step L6</b><span
style='font-weight:normal'>), a link ID is generated (</span><b>Step L12</b><span
style='font-weight:normal'>). This ID is formed by combining the map counter and 
      another counter which is incremented for every new link within the map. 
      Under this ID, the IDs of the originating and the destination resource of 
      the link are stored, as well as that of the link condition (</span><b>Fig. 
      2.3.6D</b><span
style='font-weight:normal'>). For the originating resource, in </span><b>Step 
      L13 </b><span style='font-weight:normal'>the link ID is added to the list 
      of outgoing links (</span><b>Fig. 2.3.6C</b><span style='font-weight:normal'>, 
      “to_”), and for the destination resource, the link ID is added to the list 
      of incoming links (</span><b>Fig. 2.3.6C</b><span style='font-weight:normal'>, 
      “from_”).</span></p>
    <p>After the last entry has been processed, procedure <span
style='font-family:"Courier New"'>loadmap</span> returns. After the last map has 
      been processed, the original course-level instance of <span
style='font-family:"Courier New"'>loadmap</span> returns to <span
style='font-family:"Courier New"'>readmap</span> (<b>Fig. 2.3.5</b><span
style='font-weight:normal'>, </span><b>Step R2</b><span style='font-weight:
normal'>).</span></p>
    <p><img border=0 width=432 height=547 id="_x0000_i1034"
src="handout_files/image010.jpg"></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.6A</b></span><span
style='font-size:14.0pt'> – Flow chart of procedure </span><span
style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span></p>
    <br clear=ALL
style='page-break-before:always'>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/chapters/applications.sequence: 
            1.58</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/parts/part1.sequence: 1.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/parts/part1dir.xml: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/parts/part1intro.html: 2.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/parts/part2.sequence: 1.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/parts/summary.page: 2.24</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/refresh/refresher.sequence: 1.20</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/refresh/review.sequence: 1.36</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/final.sequence: 1.29</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/midterm.sequence: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/part11.problem: 2.12</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/part12.problem: 2.19</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/part13.problem: 2.13</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/korte/tests/pretest.problem: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/smith/accelerate.html: 3.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/smith/racecar.problem: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/smith/toofast.html: 3.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>ids_/res/msu/smith/tooslow.html: 3.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_start_/res/msu/korte/foo.sequence: 1.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_start_/res/msu/korte/parts/part1.sequence: 2.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_start_/res/msu/korte/parts/summary.page: 3.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_finish_/res/msu/korte/foo.sequence: 1.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_finish_/res/msu/korte/parts/part1.sequence: 2.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>map_finish_/res/msu/korte/parts/summary.page: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.11: Midterm</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.15: Part 2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.20: Refresher</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.29: Final Exam</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.36: Review</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.5: Pretest</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.58: Applications</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_1.9: Part 1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.12: Problem 1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.13: Problem 3</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.19: Problem 2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.24: Summary</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.5: Part 1 Introduction</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>title_2.6: Directions</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.6B</b></span><span
style='font-size:14.0pt'> – Dump of the resource properties hash. Excerpt of the 
      resource properties gathered in procedure </span><span style='font-size:
14.0pt;font-family:"Courier New"'>loadmap</span></p>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.1: 1.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.11: 1.3,1.7,1.12</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.15: 1.10</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.20: 1.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.29: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.36: 1.8,1.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.5: 1.4,1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_1.9: 1.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.1: 2.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.12: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.13: 2.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.19: 2.7</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.24: 2.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.5: 2.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_2.6: 2.3,2.4,2.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_3.1: 3.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_3.15: 3.7</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_3.5: 3.2,3.3,3.4,3.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_3.6: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>to_3.8: 3.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.11: 1.2,1.9,1.12</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.15: 1.3</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.2: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.20: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.29: 1.10</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.36: 1.7</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.5: 1.1,1.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_1.9: 1.4,1.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.12: 2.3</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.13: 2.4</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.19: 2.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.2: 2.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.24: 2.6,2.7,2.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.5: 2.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_2.6: 2.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_3.15: 3.4</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_3.2: 3.5,3.6,3.7,3.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_3.5: 3.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_3.6: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>from_3.8: 3.3</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.6C</b></span><span
style='font-size:14.0pt'> – Dump of the resource properties hash. Excerpt of information 
      gathered about links between resources in subroutine </span><span
style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span><span
style='font-size:14.0pt'>.</span></p>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=148 valign=top class="Normal"> 
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.1: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.10: 1.29</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.11: 1.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.12: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.2: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.3: 1.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.4: 1.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.5: 1.20</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.6: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.7: 1.36</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.8: 1.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_1.9: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.1: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.2: 2.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.3: 2.12</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.4: 2.13</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.5: 2.19</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.6: 2.24</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.7: 2.24</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.8: 2.24</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_2.9: 2.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.1: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.2: 3.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.3: 3.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.4: 3.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.5: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.6: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.7: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>goesto_3.8: 3.2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
        </td>
        <td width=148 valign=top class="Normal"> 
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.1: 1.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.10: 1.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.11: 1.29</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.12: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.2: 1.9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.3: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.4: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.5: 1.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.6: 1.20</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.7: 1.11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.8: 1.36</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_1.9: 1.36</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.1: 2.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.2: 2.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.3: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.4: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.5: 2.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.6: 2.12</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.7: 2.19</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.8: 2.13</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_2.9: 2.24</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.1: 3.1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.2: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.3: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.4: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.5: 3.6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.6: 3.8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.7: 3.15</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>comesfrom_3.8: 3.5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
        </td>
        <td width=148 valign=top class="Normal"> 
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.1: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.10: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.11: 1.70</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.12: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.2: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.3: 1.30</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.4: 1.19</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.5: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.6: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.7: 1.43</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.8: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_1.9: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.1: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.2: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.3: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.4: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.5: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.6: 2.47</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.7: 2.48</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.8: 2.49</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_2.9: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.1: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.2: 3.41</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.3: 3.42</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.4: 3.43</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.5: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.6: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.7: 0</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>undercond_3.8: 3.40</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_1.19: 8</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_1.30: 9</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_1.43: 10</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_1.70: 11</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_2.47: 5</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_2.48: 6</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_2.49: 7</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_3.40: 1</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_3.41: 2</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_3.42: 3</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'>condid_3.43: 4</span></p>
          <p style='line-height:90%'><span style='font-size:8.0pt;
  font-family:"Courier New"'><b>…</b></span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.6D</b></span><span
style='font-size:14.0pt'> – Dump of the resource properties hash. Excerpt of information 
      gathered about links and link conditions between resources in subroutine 
      </span><span style='font-size:14.0pt;font-family:"Courier New"'>loadmap</span><span
style='font-size:14.0pt'>.</span></p>
    <span style='font-size:14.0pt;font-family:"Times New Roman"'><br clear=ALL
style='page-break-before:always'>
    </span> 
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p><span style='font-size:12.0pt'>0 : true:normal</span></p>
          <p><span style='font-size:12.0pt'>1 : user.assessments[this./msu/smith/racecar.problem].status=solved:force</span></p>
          <p><span style='font-size:12.0pt'>2 : user.assessments[this./msu/smith/racecar.problem].answer=friction:stop</span></p>
          <p><span style='font-size:12.0pt'>3 : user.assessments[this./msu/smith/racecar.problem].answer=sliding:stop</span></p>
          <p><span style='font-size:12.0pt'>4 : user.assessments[this./msu/smith/racecar.problem].answer=nonconstant:stop</span></p>
          <p><span style='font-size:12.0pt'>5 : user.assessments[this./msu/korte/tests/part11.problem].status=solved:stop</span></p>
          <p><span style='font-size:12.0pt'>6 : user.assessments[this./msu/korte/tests/part12.problem].status=solved:stop</span></p>
          <p><span style='font-size:12.0pt'>7 : user.assessments[this./msu/korte/tests/part13.problem].status=solved:stop</span></p>
          <p><span style='font-size:12.0pt'>8 : user.assessments[this./msu/korte/tests/pretest.problem].status=solved:stop</span></p>
          <p><span style='font-size:12.0pt'>9 : user.assessments[this./msu/korte/tests/midterm.sequence].percent&gt;60:stop</span></p>
          <p><span style='font-size:12.0pt'>10 : user.assessments[this./msu/korte/tests/midterm.sequence].percent&lt;10:force</span></p>
          <p><span style='font-size:12.0pt'>11 : user.assessments[this./msu/korte/tests/final.sequence].percent&gt;60:stop</span></p>
          <p><span style='font-size:18.0pt'><b>…</b></span></p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.7</b></span><span
style='font-size:14.0pt'> – Excerpt of the dump of the condition array constructed 
      in procedure </span><span style='font-size:14.0pt;font-family:"Courier New"'>loadmap 
      </span><i>(the final syntax of conditions has not yet been determined)</i></p>
    <h3><a name="_Toc514920455"></a><a name="_Toc421867118">Paths and Path Conditions</a></h3>
    <p>The next mayor step will be to determine all possible paths and conditions 
      leading up to a resource for access control.</p>
    <p><span style='font-family:"Courier New"'>readmap</span> checks if the course 
      has a start resource from its map_start entry in the resource properties 
      (Step R2), and if does not, continue to store the two global binary data 
      structures (<b>Steps R5,R6</b><span style='font-weight:normal'>) – in this 
      special case, all resources which are part of any maps in the course are 
      assumed to be accessible.</span></p>
    <p>If the course has a start resource, <span style='font-family:
"Courier New"'>readmap</span> calls the procedure <span style='font-family:
"Courier New"'>traceroute</span> (<b>Fig. 2.3.8A</b><span style='font-weight:
normal'>) with the following parameters (</span><b>Step R4</b><span
style='font-weight:normal'>): The cumulative condition along this path or route 
      so far is set to “true” (the map is accessible); the resource ID of the 
      start resource of the course map; and an empty list for all resources processed 
      so far along this route. It is again important to note that all variables 
      except the global binary structures are local to </span><span style='font-family:"Courier New"'>traceroute</span>, 
      since <span style='font-family:"Courier New"'>traceroute</span> will recursively 
      call itself whenever there is a branching to follow all possible paths of 
      the maps.</p>
    <p><span style='font-family:"Courier New"'>traceroute</span> will establish 
      a section within the resource properties hash that builds up all conditions 
      leading up to a resource. <b>Fig. 2.3.8B</b><span style='font-weight:
normal'> shows an excerpt of the final result. For example, resource 2.5, the 
      introduction to part 1, can be reached under condition 8 (see </span><b>Fig. 
      2.3.7</b><span style='font-weight:normal'>), meaning, after solving the 
      pretest problem.</span></p>
    <p><span style='font-family:"Courier New"'>traceroute</span> first checks 
      if the resource has already been processed on this route by its resource 
      ID (<b>Fig. 2.3.8A</b><span style='font-weight:normal'>, </span><b>Step 
      T1</b><span style='font-weight:normal'>) – this test avoids that </span><span
style='font-family:"Courier New"'>traceroute</span> runs into endless loops when 
      the links on the map loop. Next, the resource ID is added to the list of 
      processed resources on this route (<b>Step T2</b><span style='font-weight:normal'>).</span></p>
    <p>The resource conditions are now OR’d with the cumulative conditions on 
      this route (<b>Step T3</b><span style='font-weight:normal'>) – the route 
      represents another way of getting to the resource. A small routine with 
      simplification rules for boolean expressions is called to simplify the potentially 
      very long expression.</span></p>
    <p>In the next step, it is determined if the resource is itself a map (<b>Step 
      T4</b><span style='font-weight:normal'>). If it is, the exit route conditions 
      can differ from the entry route condition by all additional conditions along 
      the paths in the embedded maps (for non-map resources, entry and exit route 
      conditions are the same). If however the embedded map does not have a start 
      resource (</span><b>Step T5</b><span style='font-weight:normal'>), that 
      is not the case – again, the missing of entry point to an embedded link 
      structure is interpreted as the resources being openly accessible.</span></p>
    <p>If the embedded map does have a start resource, <span
style='font-family:"Courier New"'>traceroute</span> is called recursively with 
      the current route conditions, the ID of the start resource of that map, 
      and the list of already processed resource IDs (<b>Step T6</b><span style='font-weight:
normal'>). Upon return, if the embedded map does not have a finish resource, the 
      entry and exit conditions of this map are assumed to be the same (</span><b>Step 
      T7</b><span style='font-weight:normal'>). If the map had a finish resource, 
      the route condition so far is set to the resource condition of the finish 
      resource of the embedded map (</span><b>Step T8</b><span style='font-weight:normal'>) 
      – in order go on from here, the user would have had to reach the finish 
      resource of the embedded map.</span></p>
    <p>Now the route conditions are correctly set for exiting the resource and 
      going on from here. <span style='font-family:"Courier New"'>traceroute </span>now 
      loops over all outgoing links of the resource (<b>Step T9</b><span
style='font-weight:normal'>). If the link does have a link condition (</span><b>Step 
      T10</b><span style='font-weight:normal'>), then for this path, the cumulative 
      route condition so far AND the link condition (</span><b>Step T11</b><span
style='font-weight:normal'>). If there is no link condition, then there is no 
      change in route conditions (</span><b>Step T12</b><span style='font-weight:
normal'>).</span></p>
    <p>To further process the routes along this link, <span
style='font-family:"Courier New"'>traceroute</span> is called recursively with 
      the resource ID of the destination resource of the link, the new route conditions, 
      and the list of already processed resources (<b>Step T13</b><span
style='font-weight:normal'>). </span><span style='font-family:"Courier New"'>traceroute</span> 
      returns after processing the last outgoing link of the resource it had been 
      called for.</p>
    <p><b>Fig. 2.3.8B</b><span style='font-weight:normal'> shows part of the output 
      of </span><span style='font-family:"Courier New"'>traceroute</span> for 
      the example <b>Fig. 2.3.4</b><span style='font-weight:normal'>.</span></p>
    <br clear=ALL
style='page-break-before:always'>
    <p><span style='font-size:14.0pt'><img border=0 width=432
height=557 id="_x0000_i1035" src="handout_files/image011.jpg"></span></p>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.8A</b></span><span
style='font-size:14.0pt'> – Flow chart of procedure </span><span
style='font-size:14.0pt;font-family:"Courier New"'>traceroute</span></p>
    <br clear=ALL
style='page-break-before:always'>
    <table border=1 cellspacing=0 cellpadding=0>
      <tr> 
        <td width=443 valign=top class="Normal"> 
          <p>conditions_1.1: 0</p>
          <p>conditions_1.11:</p>
          <p>(((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1))</p>
          <p>conditions_1.15:</p>
          <p>((((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1)))&amp;9</p>
          <p>conditions_1.2:</p>
          <p>(((((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1)))&amp;9)&amp;11</p>
          <p>conditions_1.20: 0</p>
          <p>conditions_1.29:</p>
          <p>((((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1)))&amp;9</p>
          <p>conditions_1.36:</p>
          <p>((((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1)))&amp;10</p>
          <p>conditions_1.5: 0</p>
          <p>conditions_1.9: 8</p>
          <p>conditions_2.1: 8</p>
          <p>conditions_2.12: 8</p>
          <p>conditions_2.13: 8</p>
          <p>conditions_2.19: 8</p>
          <p>conditions_2.2:</p>
          <p>(((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)))|((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1))</p>
          <p>conditions_2.24: ((8&amp;5)|(8&amp;7)|(8&amp;6))</p>
          <p>conditions_2.5: 8</p>
          <p>conditions_2.6: 8</p>
          <p>conditions_3.1: ((8&amp;5)|(8&amp;7)|(8&amp;6))</p>
          <p>conditions_3.15: ((8&amp;5&amp;4)|(8&amp;7&amp;4)|(8&amp;6&amp;4))</p>
          <p>conditions_3.2: ((8&amp;5&amp;2)|(8&amp;5&amp;3)|(8&amp;5&amp;4)|(8&amp;5&amp;1)|(8&amp;7&amp;2)|(8&amp;7&amp;3)|(8&amp;7&amp;4)|(8&amp;7&amp;1)|(8&amp;6&amp;2)|(8&amp;6&amp;3)|(8&amp;6&amp;4)|(8&amp;6&amp;1))</p>
          <p>conditions_3.5: ((8&amp;5)|(8&amp;7)|(8&amp;6))</p>
          <p>conditions_3.6: ((8&amp;5&amp;2)|(8&amp;7&amp;2)|(8&amp;6&amp;2))</p>
          <p>conditions_3.8: ((8&amp;5&amp;3)|(8&amp;7&amp;3)|(8&amp;6&amp;3))</p>
        </td>
      </tr>
    </table>
    <p><span style='font-size:14.0pt'><b>Fig. 2.3.8B – </b></span><span
style='font-size:14.0pt'>Dump of resource properties hash. Excerpt of cumulative 
      link conditions to reach a certain resource.</span></p>
    <h3><a name="_Toc514840865"></a><a name="_Toc514920456"></a><a
name="_Toc421867119">Multivalued Boolean Evaluation of Link Priorities</a></h3>
    <p>When a user accessed a resource on a map and desires to access the “next” 
      resource, the request is processed by a number of steps. From the data examplified 
      in <b>Fig. 2.3.6C</b><span style='font-weight:normal'>, it is determined 
      which outgoing links exist. From the data in </span><b>Fig. 2.3.6D</b><span style='font-weight:normal'> 
      it is determined to which resources those links lead. For each of the resources, 
      the expressions in </span><b>Fig. 2.3.8A</b><span style='font-weight:normal'> 
      are evaluated as follows. Stored in the session environment is the evaluation 
      of the table </span><b>Fig. 10</b><span
style='font-weight:normal'>, where the boolean part is evaluated as “0” or “1”. 
      In addition, a multivalued boolean value is computed incorporating the condition 
      priority. A false blocking condition is assigned the value zero, all other 
      false conditions the value 1. A true forced condition is assigned the value 
      3, all other true conditions the value 2. </span></p>
    <p>In the expressions <b>Fig. 2.3.8A</b><span style='font-weight:
normal'> an “&amp;” (“AND”) is processed as the minimum (min) operation, a “|” 
      (“OR”) is processed as the maximum (max) operation. The outcome “0” means 
      “blocked”, the outcome “1” mean “not recommended”, the outcome “2” recommended, 
      and the outcome “3” forced.</span></p>
  </div>
  <p>&nbsp;</p>
</div>
<br
clear=ALL style='page-break-before:always;'>
<div class=Section2> </div>
</body>
</html>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>