[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Developing Moodle resources/sites with Org Mode
From: |
Leo Butler |
Subject: |
Re: Developing Moodle resources/sites with Org Mode |
Date: |
Wed, 17 Jan 2024 19:23:16 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
On Wed, Jan 17 2024, Edward Doolittle <ejdoolittle@outlook.com> wrote:
> Hello everyone,
>
> I'm new to Org Mode but I really enjoy working with it.
>
> I have begun thinking about how I might use Org mode to improve the
> experience of developing resources for the open source Moodle LMS or
> even developing entire Moodle sites. Currently I develop Moodle
> content for mathematics courses using their online editors which are
> quite basic. I would like to be able to edit in Emacs and preview my
> work before uploading to Moodle. Below are four potential use cases I
> see:
>
> 1) ​Development of HTML pages to upload to Moodle. This can already be
> done with Org export to HTML/MathJax. One nice bonus: it is possible
> to integrate diagrams and graphs into a Moodle HTML page using
> JSXgraph. JSXgraph is just Javascript so is already supported in Org
> Mode. A couple of small modifications to the js block will create a
> jsxgraph source block in Org mode which will enable immediate preview
> of static graphs in PNG format and preview of dynamic graphs by
> exporting to HTML. Decent LaTeX versions of pages with static graphs
> could easily be exported. I am very close to setting this up. I have
> JSGgraphs producing PNG files on the command line with node.js and the
> jsxgraph.js library. A few lines of elisp to wrap jsxgraph blocks in
> the appropriate incantations is all that is needed.
>
> 2) Development of Moodle glossaries. Glossaries can be uploaded to a
> Moodle site using an appropriate XML file. Glossaries could be
> developed in Org mode, including JSXgraph diagrams and graphs, PNG
> images, and so on, and then Org mode converted to XML and the XML
> transformed to Moodle Glossary XML using XSLT. (I don't really know
> those tools at all, so I don't know if that would be a good way to go
> about the process; exporting directly to Moodle Glossary was my first
> thought, but it is not a general export that is necessary or
> appropriate, rather an export of a specifically designed Org
> file. XSLT seems old fashioned but there are tools around, and there
> is a project for exporting Org mode to XML.)
>
> 3) Development of Moodle quiz question databases. I know less about
> the format but it is documented at some level on the Moodle help
> site. From what I understand the same process for exporting a glossary
> would work for a question database (Org -> Org XML -> XSLT -> Moodle
> XML), but question database are rather more complicated than
> glossaries, with numerous different types of questions. Still, it is
> mostly straightforward for simple question types. However, I am
> particularly interested in the STACK question type, which is a mixture
> of HTML, LaTeX (MathJax), and Maxima code, which can be used (for
> example) to randomize a question. Maxima source code blocks already
> work well in Org mode. Some work might need to be done connecting them
> to LaTeX in which {@maxima-variable@} can be used to refer to
> variables in a Maxima code block. Similarly JSXgraph blocks can refer
> to Maxima variables through the {#maxima-variable#} syntax. This is
> somewhat complicated by there being multiple Maxima code blocks in one
> question (there is a main one that executes immediately and others
> that seem to execute when the student has provided answers). An issue
> I foresee is that a Maxima session might be required to correctly
> represent state but currently there is no Maxima session available in
> Org mode.
>
> I have already written a statistics exam with Org Mode and Maxima. I
> can generate as many different versions of a question (and associated
> answer key and solution set) as I wish with almost no additional
> effort. In order to facilitate import into Moodle STACK, I have had to
> restrict my access to Maxima variables using accessors also written in
> Maxima ... I import the Maxima block into the accessor with noweb. I
> end up re-running the same chunk of Maxima code over and over, once
> for each variable access, because there is no Maxima session. It is
> kind of stupid but I tossed it together in three days. I suppose I
> could store the results of a Maxima run in a table and just do table
> lookups but I've got the spare compute cycles to run Maxima over and
> over until I sort this all out. I think Maxima session is the right
> way to go but I'm inexperienced with all this and would appreciate
> guidance.
>
> 4) Development of whole sites: Sites are uploaded to a Moodle server
> as .tgz of XML files with directories of resources (PDF files, PNG
> files, possibly also control files for external applications like
> Zoom). I see this as quite a challenge but definitely manageable for
> simple sites, adding features as users call for them.
>
> What do people think? Am I off the mark? Are there better ways to do
> this? Maybe even setting up my own personal Moodle server and
> connecting Emacs to it as an external editor would work reasonably
> well and save me some of the pain? But it would be nice to export some
> things to formats other than Moodle: a glossary in LaTeX might be
> nice, for example, and quiz questions in Org mode could be used to
> generate paper tests as well as online Moodle tests.
>
> I would appreciate any thoughts.
>
> Edward
Hi Edward,
Thanks for your extended thoughts. I have had similar, but much less
articulate, thoughts for a while.
I have used org-mode to do all my STACK question authoring for a few
years now [1]. I do all the writing in emacs and then copy/paste into the
STACK textareas, test, repeat. It is not elegant, but it is easier than
working in a web-browser. It would be really nice to be able to create
the entire question in emacs, because defining graders in STACK is
pretty tedious.
I agree that we need ob-maxima.el to properly handle sessions. Note that
you can use Maxima to create graphs, too.
One thing that I am not sure I understand about your thoughts: do you
envision a Moodle emulator based on org-mode, or do you just want to be
able to write Moodle questions or glossaries with org-mode?
Best regards,
Leo
[1]
https://sourceforge.net/p/maxima/mailman/maxima-discuss/thread/87a6d4ajgk.fsf%40t14.reltub.ca/#msg37634141