203 lines
9.3 KiB
HTML
203 lines
9.3 KiB
HTML
{% extends "templates/base.html" %}
|
|
{% block content %}
|
|
<div>
|
|
<a name="top"/>
|
|
<menu>
|
|
<li><a href="#top">Top</a></li>
|
|
<li><a href="#grammar">Rule language</a></li>
|
|
<li><a href="#states">Implemented states</a></li>
|
|
<li><a href="#api">API documentation</a></li>
|
|
<li><a href="#teachers">For teachers</a></li>
|
|
</menu>
|
|
<hr/>
|
|
<div><a name="parser"> </a></div>
|
|
{{parser|safe}}
|
|
<hr/>
|
|
<div><a name="states"> </a></div>
|
|
<menu>
|
|
<li><a href="#top">Top</a></li>
|
|
<li><a href="#grammar">Rule language</a></li>
|
|
<li><a href="#states">Implemented states</a></li>
|
|
<li><a href="#api">API documentation</a></li>
|
|
<li><a href="#teachers">For teachers</a></li>
|
|
</menu>
|
|
<hr/>
|
|
<h2>Implemented states</h2>
|
|
<p>As it says in the rule language documentation, above, you can use
|
|
any sequence of alphanumeric characters you want as the name of a state
|
|
- you can call it whatever you like. However, if you use state
|
|
names that there aren't already tiles for, and aren't already classes
|
|
for in the CSS file, your states won't be displayed nicely in the
|
|
<a href="{{servlet-context}}/">World</a> display. The states for which
|
|
there are already tiles are:</p>
|
|
<ul>
|
|
{% for state in states %}
|
|
<li>
|
|
{{state}}
|
|
<img src="{{servlet-context}}/img/tiles/{{state}}.png"/>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<div><a name="api"> </a></div>
|
|
<hr/>
|
|
<menu>
|
|
<li><a href="#top">Top</a></li>
|
|
<li><a href="#grammar">Rule language</a></li>
|
|
<li><a href="#states">Implemented states</a></li>
|
|
<li><a href="#api">API documentation</a></li>
|
|
<li><a href="#teachers">For teachers</a></li>
|
|
</menu>
|
|
<hr/>
|
|
<h2>API documentation</h2>
|
|
|
|
<p>If you're adventurous you may want to modify the MicroWorld engine
|
|
itself. To do that you'll need this documentation.
|
|
|
|
<ul>
|
|
{% for component in components %}
|
|
<li>
|
|
<a href="{{servlet-context}}/docs/{{component}}/uberdoc.html">
|
|
{{component}}
|
|
</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
|
|
<div><a name="teachers"> </a></div>
|
|
<hr/>
|
|
<menu>
|
|
<li><a href="#top">Top</a></li>
|
|
<li><a href="#grammar">Rule language</a></li>
|
|
<li><a href="#states">Implemented states</a></li>
|
|
<li><a href="#api">API documentation</a></li>
|
|
<li><a href="#teachers">For teachers</a></li>
|
|
</menu>
|
|
<hr/>
|
|
<h2>For teachers</h2>
|
|
<p>MicroWorld was written in the hope that it would be of use for teachers,
|
|
particularly teachers in primary schools. The reason for attempting to write
|
|
a very simple rule language was that young people would be able to create
|
|
their own rules and rule sets.</p>
|
|
|
|
<h3>Classroom setup</h3>
|
|
<p>MicroWorld will run on a Raspberry Pi, and I plan to produce a
|
|
downloadable SD card image which auto-runs it. One ideal classroom setup
|
|
would be to have one Raspberry Pi running MicroWorld to every group of
|
|
two or three children.</p>
|
|
<p>MicroWorld will also run on any ordinary PC, including Windows,
|
|
Macintosh and Linux machines. I plan to produce a packaged installer
|
|
for each operating system.</p>
|
|
<h4>Servers and clients</h4>
|
|
<p>MicroWorld is a web-app, which means it runs in a web server and the
|
|
user interface is a web browser. It would be possible to arrange a
|
|
classroom with one copy of MicroWorld on a single server, and each child's
|
|
machine running MicroWorld from that single server.</p>
|
|
<p>However, many users accessing the same server at the same time may
|
|
lead to poor performance.
|
|
Check performance on your system before introducing a class to it, and if in doubt,
|
|
running a separate copy on each machine used by children may well be more
|
|
satisfactory.</p>
|
|
<p>If many users are using the same shared machine, you should make sure
|
|
that they don't use the 'original' or 'med' versions of the Great Britain
|
|
and Ireland map - both of these are big, and performance will inevitably
|
|
be poor.</p>
|
|
|
|
<h3>Subject areas</h3>
|
|
<p>One of my main objectives in writing MicroWorld was to create a system
|
|
which would be engaging for children and would enable them to see
|
|
computing in the context of other subject areas.</p>
|
|
<h4>Geography</h4>
|
|
<p>Maps of Great Britain and Ireland, and of the Isle of Man, are included
|
|
in the distribution; however, only the 'small' version of the map of
|
|
Great Britain and Ireland is really useable, the others are too big and
|
|
will be two slow. However, you can cut a map of your local area from the
|
|
larger maps if that is helpful to your class.</p>
|
|
<p>The following rulesets are of potential use in geography teaching:</p>
|
|
<dl>
|
|
<dt>basic</dt>
|
|
<dd>A very simple ruleset which simply establishes vegetation in the
|
|
landscape. Not particularly useful in itself, but a good ruleset for
|
|
children to use as a basis for their own projects.</dd>
|
|
<dt>iceage<dt>
|
|
<dd>illustrates ice thawing gradually. Because of inadequacies in the
|
|
rule language, currently the ice retreats from north to south, which is
|
|
of course wrong for the northern hemisphere; but the principle of
|
|
retreating ice, the way in which ice retreats up mountains, and the way
|
|
in which ecosystems establish themselves.</dd>
|
|
<dt>ecology</dt>
|
|
<dd>Attempts to model the effects of browsers and predators - represented
|
|
by deer and wolves, respectively - on the landscape.</dd>
|
|
<dt>settlement</dt>
|
|
<dd>illustrates human settlement appearing first on coastal promontaries
|
|
(e.g. kitchen-midden people), gradually spreads inland (in this model as
|
|
nomadic pastoralists), and forms permanent settlements where conditions
|
|
are favourable. This helps explore why the towns in your locality are
|
|
where they are. The model is obviously simplified, but produces a
|
|
potentially useful account of settlement in at least north-western Europe
|
|
from paleolithic up to at least late bronze age. <b>Note</b> that unless
|
|
your map has at least some coastal promontaries this ruleset will need
|
|
to be modified.</dd>
|
|
<dt>
|
|
</dl>
|
|
<p>All of these rulesets are deliberately simple. This is so that
|
|
children have something to start with, but so that they can actually make
|
|
real, demonstrable improvements quite simply.</p>
|
|
<h4>History</h4>
|
|
<p>The <em>settlement</em> ruleset is probably the best starting point for
|
|
history exploration. As described above, it essentially covers only
|
|
pre-history; the development of the feudal system, for example, or of
|
|
industrialisation, are not modelled. They could be, as (more advanced)
|
|
class projects. Writing rules will enable discussion of why castles, or
|
|
mills, are positioned where they are, and what the social consequences of
|
|
these developments are.</p>
|
|
<p>You might also want to explore the conditions for the spread of epidemic
|
|
disease - such as the black death - I've provided a state for this,
|
|
but no rules.</p>
|
|
<h4>IT/Informatics</h4>
|
|
<p>Obviously, any of the rulesets but particularly the <em>life</em>
|
|
ruleset are good introduction points to informatics lessons. The rule
|
|
language is sufficiently simple that introducing children to writing
|
|
their own rules can begin almost as soon as basic literacy is
|
|
established.</p>
|
|
<p>In more advanced IT lessons, at the upper end of primary school or in
|
|
secondary schools, I would encourage you to explore modifying the engine
|
|
itself in your classes. Also, it would be interesting to write an
|
|
export program which would export MicroWorld maps to Minecraft, or
|
|
render them as explorable three dimensional spaces using
|
|
<a href="http://jmonkeyengine.org/">JMonkeyEngine</a>
|
|
or <a href="https://nightmod.net/">NightMod</a>.</p>
|
|
<h4>Art and design</h4>
|
|
<p>A number of projects, progressively more ambitious, are possible in
|
|
art and design.</p>
|
|
<ol>
|
|
<li>The tiles I've drawn are pretty basic - again, that's
|
|
intentional, children can easily produce better ones. They don't have to
|
|
be 32x32, but they do all have to be the same size.</li>
|
|
<li>The stylesheets providing the overall look and feel of the system
|
|
could be modified</li>
|
|
<li>If you have an IT project to render a 3d world, you will need 3d
|
|
models of each of the states, instead of tiles. That might be a job for
|
|
<a href="http://blender.org">Blender</a>.</li></ol>
|
|
|
|
<h3>Lesson plans</h3>
|
|
<ul>
|
|
{% for lesson in lessons %}
|
|
<li>
|
|
<a href="{{servlet-context}}/md?content=lesson-plans/{{lesson}}.md">
|
|
{{lesson}}
|
|
</a>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
<hr/>
|
|
<menu>
|
|
<li><a href="#top">Top</a></li>
|
|
<li><a href="#grammar">Rule language</a></li>
|
|
<li><a href="#states">Implemented states</a></li>
|
|
<li><a href="#api">API documentation</a></li>
|
|
<li><a href="#teachers">For teachers</a></li>
|
|
</menu>
|
|
|
|
</div>
|
|
{% endblock %} |