Designing and implementing the Front End for the Topics in Maths project.

One-line summaries:

More information

The plan is to have a system that allows teachers (and others) to explore a network of topics in maths. There will be a "database" of topics, and links to show which comes first in the context of learning or teaching. For example, students need to learn about common factors before learning about cancelling fractions. Nodes will/may also have a "conceptual level" to show whether they are a general topic description, a subject within a topic, or possibly a specific skill. This is to be decided, and will likely emerge from the organic generation of the database.

The creation of the underlying database is a major challenge, but what's needed now is an early way to play with the database as it exists. To that end we need something that will show on screen a network, and allow the user to interact with it. The specifics of how this interaction will happen are yet to be determined - this is just an early experiment.

Everything that follows is just one conceptualisation of how things might work. If we work together on this, part of your value will be to help me see other options, and to help make the system more usable than it otherwise might be. What follows is a rather vague description of just one set of options.

Nodes will contain a small amount of text, about a sentence or two. Links between the nodes will sometimes have a direction, and should have an indication of "strength" - perhaps using the thickness of line. The meaning of the direction is not yet fully determined, but should not affect the design of the rendering system.

Interactions with links should include:

The input from the user about the link will then contribute to the population of the underlying database, which will in turn affect the rendering. At this stage this need not be real-time.

Interactions with nodes should include:

One way this might work is for some nodes to be "more conceptual" than others, other nodes to be "more concrete". Then a user can be on a page that describes the topic, and ask for a diagram showing the neighbourhood. This diagram shows neighbours up to two steps away, and perhaps colours them according to their "height" in the conceptual landscape. Then by clicking on a node one can move there, and the landscape adapts, showing related topics, and dependencies between them.

It seems to me that an early version of this could take a file with a graph description in JSON, then use D3 to render a force-directed layout of the nodes. That seems a good start, and then clicking on a node can cause the underlying system to create a different JSON file to be rendered. Making nodes fade in and out as the user clicks on nodes to move about is another idea, but more than anything else, more than anything else, I need something to play with soon.

Longer term I have many plans for how this facility might work, and the benefits it might bring both to students and teachers.
(none) (none) (none)
(none) (none)

You are here

(none) (none) CategoryMeta

Local neighbourhood - D3

Last change to this page
Full Page history
Links to this page
Edit this page
  (with sufficient authority)
Change password
Recent changes
All pages