Julia and online course materials

I am potentially maybe on the fence sort of considering having my own course website outside of our university LMS (Canvas). I seem to recall some other people doing the same thing, and I’m wondering what sort of tooling that people have chosen. My class is not a programming class (basic finance), although there will be some lectures that involve quantitative topics and pair nicely with coded examples.

Documenter.jl is the first thing that came to mind, but of course this isn’t its main purpose so I’m worried it would be kind of a hacked together solution.

Pure Franklin.jl is another, and I’m somewhat familiar because I use it for my own website already, but it seems like this might lead to too much work for what it’s worth.

Another option that I am aware of is GitHub - rikhuijzer/PlutoStaticHTML.jl: Convert Pluto notebooks to HTML in automated workflows but I haven’t dug into it much. A first glance is that this could be what I am looking for, but I want to hear what others are using.

I also remember seeing a post about this not too long ago GitHub - jverzani/QuizQuestions.jl, and I think it would be nice if any solution would also allow me to use this package.

3 Likes

Canvas LMS is a bag of smelly garbage. Practically anything would be better for managing a course than that. Just consider file management, or the grade book…

I would go with notebooks on Github. But, the big question is whether integration with some course enrollment and/or grade management tools at your university will be required. I don’t have any suggestions there.

2 Likes

Just to clarify, I only need the site to host some (very high quality!) lecture materials. Gradebook will still be in Canvas and I do not need any enrollment functionality as I will just make the site available to the public. I’m also not really interested in any functionality like auto-graded homework problems or whatnot, beyond the simple questions package I referenced already.

Check out Quarto. I just stumbled on it recently so I haven’t used it yet myself, but it looks like a very good fit for your needs.

4 Likes

If you don’t mind managing the pages yourself, and like authoring in markdown, either weave or converting .jmd files into Pluto notebooks (e.g. CalculusWithJuliaNotes.jl/markdown-to-pluto.jl at main · jverzani/CalculusWithJuliaNotes.jl · GitHub) plus QuizQuestions can make it fairly easy to create a single .html file for a lecture with self-grading questions from a markdown file. (The Pluto ones look better and offer the option to download and run, but do require some effort when authoring, to keep the variable names distinct and definitely take more time to generate.)

Another alternative is to use Documenter+QuizQuestions, which will manage the pages by making entry points. Checkout Index · SPMLJ for a great example of that. I don’t think you should worry that it is hacked together, especially if its workflow is already familiar to you. (It integrates nicely with github, it has an easy to follow layout, …)

3 Likes

Quarto looks pretty cool! I actually used Pandoc last year for everything, which is what it builds on, so perhaps it wouldn’t be too big of a switch.

I have used Documenter.jl and like it. It is also nice to make a package, containing the codes to be run.

For example: Sistema simulado · FundamentosDMC.jl

1 Like

I came across Prismia recently; seems like it has a novel interactive element.

2 Likes

Follow up here, I am playing around with Quarto and seem likely to use it. I guess there will be a presentation at JuliaCon about it too. It has alright Julia support but I think there are plenty of improvements that could be made (it is practically brand new anyway).

A follow up here. After this thread and after browsing the JuliaCon speaker list and seeing the the great JJ Allaire was behind quarto, I decided to investigate. I am very pleased I did so. It wasn’t so hard to get going. I wrote a small script to convert many .jmd files into .qmd files, as the markdown used by quarto differs a bit, and had to make some (small but needed) changes to my QuizQuestions package. I had been kinda fond of using many Pluto notebooks for this project of mine, but really appreciate the more polished look of the quarto site.

2 Likes

I created a template repository to set up a website similar to the MIT Computational Thinking course. The repository is actually a slimmed-down fork of that course repository, and thus 95% @fonsp 's work.

I’ve been using it for two of my courses. I am adding features to the template repository as I need them for my own courses.

5 Likes

Maybe helpful for some - Inuse Jupyter notebooks for teaching, assignments anf grading. But I manage submission and release if grades and feedback by interacting with Canvas via Python scripts. I found that this works very smoothly.

1 Like

That is just fantastic. Thank you for your work on this!

1 Like

There are a lot of nice suggestions here. Certainly seems like you have options.

Here is a website I found when perusing Julia in the Classroom links. I think it is quite nice. Seems to be built using the pluto notebook approach you described above. Just an example.

Alternatively, maybe you could build the course site using Weave.jl, use the HTML output, and host them on github pages? Just another thought.

1 Like

You can build a website like this with my template repository linked above.

2 Likes