simple-learning

Simple learning web program
git clone git://git.laack.co/simple-learning.git
Log | Files | Refs | README | LICENSE

README.md (3612B)


      1 # Simple Learning
      2 
      3 There are many learning tools out there. There aren't many that can be self-hosted. There are even fewer that are built in a sane way to aid in learning, based on the idea that learning takes time and is difficult. This very notion is why there are so few companies that have science-backed learning tools, and why duolingo has become a joke. 
      4 
      5 This isn't a joke. Learning takes time is a simple OCI container that runs a web server, allowing you to deploy curriculum to your server and to work through the curriculum at your pace. 
      6 
      7 ## Content Types
      8 
      9 It seems that the combination of visual and textual information is better for learning than one, and thus the platform supports textual, image, and video content.
     10 
     11 ## Spaced Repitition and Note Taking
     12 
     13 Spaced repitition is important for memory, as is note-taking. I am yet to see a study that supports the idea computerized note-taking or flashcard studying improve learning when compared with the physical alternatives. As such, these features shall not be added to the platform.
     14 
     15 ## Practice Problems
     16 
     17 Practice problems are very important for the learning process. The platform supports practice problems by having revealed text sections. These sections are intended to contain answers / hints for problems to guide learning.
     18 
     19 I considered adding a code execution environment to the platform, but there is an elegance in allowing anyone to access course materials, and I think this platform fulfils this position better without code execution.
     20 
     21 ## Language Models
     22 
     23 It is unclear as of mid 2026 if language models can improve learning outcomes. It seems to be the case that guiding students to answers is valuable, but studies point to the idea that broad stepwise instruction on the basis of a problem likely suffices for this (which the platform supports), decreasing the potential upside of more granular help.
     24 
     25 Admittedly this is anecdotal, but I struggle to find the correct balance between asking language models for hints and struggling through problems. Perhaps this is what we refer to as a "skill issue", but I've made numerous skills and system prompts to try to have language models determine if I should continue struggling, but they are not very good at this task.
     26 
     27 If you don't have ethical concerns with the use of language models, you may find them useful for generating practice problems and .sl files based on exising curriculum. I would caution against using them to generate novel curriculum however because there is 1) troves of well paced curriculum in circulation and 2) they don't seem well calibrated with human learning rates or prioritization of important topics, a skill possessed by many experienced educators.
     28 
     29 # Engineering Decisions
     30 
     31 ## Custom File Format
     32 
     33 ## OCaml
     34 
     35 OCaml makes it easier to build correct software without being too in your face about it. There is a sufficient OCaml compiler, making compilation speed and deployed performance adequate. OCaml also has an adequate ecosystem for the task of simple, performant, templated web applications. 
     36 
     37 ## Web Application
     38 
     39 I dislike this uses web technologies. I may build an alternative that uses the gemini protocol, but the web is the most popular information distribution channel.
     40 
     41 I also considered building a native application, but such an application would give minimal benefits over a conventional text editor pointed to the directory with the .sl files.
     42 
     43 ## Flat Filesystem Structure
     44 
     45 It is possible a database could improve performance in certain contexts, but such contexts are likely better served by more complex software like MediaWiki.