Ask HN: Looking for a simple solution for building an online course
I want to build an online course on graph algorithms for my university. I've tried to find a solution which would let submit, execute and test student's code (implement an online judge), but have had no success. There are a lot of complex LMS and none of them seem to have this feature as a basic functionality.
Are there any good out-of-box solutions? I'm sure I can build a course using Moodle or another popular LMS with some plugin, but I don't want to spend my time customizing things.
I'm interested both in platforms and self-hosted solutions. Thanks!
37 comments
[ 3.0 ms ] story [ 77.1 ms ] threadhttp://jupyter.org/about
jupyter-edx-grader-xblock https://github.com/ibleducation/jupyter-edx-grader-xblock
> Auto-grade a student assignment created as a Jupyter notebook, using the nbgrader Jupyter extension, and write the score in the Open edX gradebook
... networkx is a graph library written in Python which has pretty good docs: https://networkx.github.io/documentation/stable/reference/
There are a few books which feature networkx.
https://github.com/edx/
edX.com has this function but I don't know if it's in the pen source part and/or how easy it is to implement or use.
An entire platform may be a little overkill for what you want though?
> I don't want to spend my time customizing things.
Okay, probably not :-)
[1] https://www.ans-delft.nl/
Disclaimer: I work for DataCamp
Edit: there's also a 'light' version available: https://github.com/datacamp/datacamp-light
Sorry, there is no free beer.
I am producing an online course on managing remote teams. I want to use https://www.podia.com/ Has anyone used it?
Regarding automated testing - I dont think this is a basic feature.
[1] https://github.com/cms-dev/cms
I've tried a lot of platforms and teachable.com is by far the best solution as of today if you don't have a requirement where you expect people to upload code and then run automated tests against it.
I currently use thinkific.com for my courses because over a year ago I made that decision and switching between platforms is too painful for your users (they would need to make a new account, lose their progress and potentially lose invoice data, etc.). I will move off Thinkific in the future, but that's not going to happen until I finish building my own platform (which I'm currently doing at the moment as a side project mainly because as a developer, I'm still at my happiest when I'm writing code).
With that said, I also use Teachable for another project and the UI is a million times ahead of where Thinkific is for both instructors and students. Every time I use Teachable I'm upset that I chose to use Thinkific initially.
At the bare minimum you'll have to assemble your course, pick a theme for the front end, and build up your course's description page.
Expect to pay $100 / month for most platforms.
I was under impression that there are tons of opensource available platforms to host courses.
edX is a little better, but it's still not what I want from a course platform and the amount of effort it would take to trim it down would be more effort than writing my own platform.
I also looked at a bunch of WP plugins that are advertised as "course platform in a box" and none of them looked appealing. The UI for all of them were very poor and these plugins are massive beasts. I don't want to spend my time hacking through someone elses WP plugin to customize it.
After looking at so many platforms and solutions I eventually came to the conclusion that no matter what platform I choose i'm never going to be truly happy.
If I went with Teachable from day 1, I think I would have been 80% happy and may not have even decided to build my own platform, but at the end of the day, the heart wants what the heart wants. I want to build my own platform and I can do it. Being at ease mentally (even if it means working harder) is more important to me than anything.
http://www.autolabproject.com
Features:
Autograding Grade any assignment in any language using any software package. Instantly.
Scoreboards Encourage healthy competition with a real-time rank ordered scoreboard.
Code Annotation Augment the autograde with additional feedback directly on the student's code.
Cheat Detection Maintain academic integrity by comparing assessments with each other and with past submissions. Uses Stanford's Moss Cheat Detector.
Behind the scenes of course, are Docker multi-stage builds for submitted code. And I dare say, if your class is <1000 students. You can roll your own build environment on a single small cloud instance.
http://autolab.github.io/2015/05/autolab-and-docker/
Avoid SCORM at all costs lol.
GitHub plus Travis CI is not enough?
* nbgrader: tool for managing and grading submissions using Jupiter notebooks.
* codeocean.com: lets you put up a self contained notebook that people can run and clone online.
* ipython_nose: allows you to put unit tests inside a jupyter notebook.
I've also been toying a lot with building DataCamp projects, which are basically jupyter notebooks with unit tests (note, I work on other things at DataCamp). If the "online judge" is just deciding whether a submission meets a set of criteria, they might work well. If the judge is comparing student submissions to each other (eg ranking by speed), then they probably wouldn't be a great fit.
http://authoring.datacamp.com/projects/