concepts: - learning targets - can relate to other concepts in the following ways: - concept A "depends" on concept B; explaining concept A requires some information from concept B - concept A "optdepends" on concept B - concept A "satisfies" concept B; mastery of concept A implies mastery of concept B topics: - groups of concepts - can nest infinitely "reviews" are randomly constructed sets of activities each user has a mastery level for each concept references: - super memo algorithm used by anki: https://en.wikipedia.org/wiki/SuperMemo#Description_of_SM-2_algorithm --- ocaml should have a runner studentModule, which just puts the student code into a file called student.ml the material file defines a student.mli, as well as a driver.ml, then they all get called using: ``` ocamlc -c student.mli # produces student.cmi ocamlc -c student.ml # produces student.cmo ocaml student.cmo driver.ml ``` probably should have like $OCAMLCFLAGS in there to be able to customize each step as well --- what are some good classes to start out with? - functional programming - ctfs? - possibly a logic class for math - proof class - ML???? look into running it - can we do reading????????????