Hoon 001: A focus on learner experience efficiency and early-learner resources
(please note a full-format PDF of this proposal has been provided to Erik Newton)
We perceive a need for an onboarding/educational experience into Hoon which is particularly tailored to the individual who has little to no experience coding, or for the individual who has a serious interest in learning and using Hoon, but has a heightened need for the educational efficiency (i.e. as much learning possible per amount of time and brainpower spent). This comment, and indeed this project proposal is in no way a dig on the current Tlon educational efforts. In fact, we would like to state outright that the current resources represent a solid work effort and are extraordinarily useful for many types of learners.
For these two groups mentioned above, Hoon presents particular learning challenges, including:
Extensive and new vocabulary, with no clear distinction between which terms map to general computer science, which are Urbit/Hoon particular, and where the boundaries of definition lie in each case. Sheer volume of new concepts for the beginning programmer, which, when presented at a pace faster than an efficient learning pace, might lead to confusion and less efficient learning. It may be that the new coder or early learner has little mastery of similar concepts. References to introduce new concepts should make use of common prior knowledge, for example, by mapping comparisons to Excel, everyday thinking and, where necessary, mathematical functions. In particular, the new student starts out “lost” by definition and requires many more references as to where one is, where one is going and what lies at the end of each lesson. Additionally, they will benefit from larger-scope references as to where lessons fit into the landscape of Hoon mastery. The non-coder or coder who is learning in order to realize a particular idea with Hoon code might not appreciate purely cerebral exercises. To keep peak interest and engagement, work products should be tangible and feel useful to cultivate enthusiasm to keep learning, even with basic material.
We aim to create a set of Hoon education modules that are specifically catered to people who have minimal to no coding skills. Our current working title is “Hoon 001.” We envision the product will be a textbook-esque website-based set of content. To achieve this as an excellent-quality & effective work product we plan to utilize the following elements:
An appropriately high-level introduction to coding generally, and to Hoon specifically, focusing on the broadest concepts, which a learner should focus on understanding first Definitions of terms which are not open-ended, and which as clearly as possible establish boundaries between what something is and is not and, where possible, include references to readily accessible external concepts Visualization using color, white space and annotations to convey program flow and highlighting key points. Pacing of new and abstract concepts, that is deliberate and steady, ordered as sequentially as possible, with a limited number of new concepts under focus per unit effort/time Linear progression/accumulation of skill with a steady advancement of themes, concepts, knowledge Consistent teaching methodology - Break down complex programs into readily intelligible sections (thereby aiding the user in understanding how the interpreter ‘thinks’), discuss tools required to program these subsections, walk line by line through the resultant code and finally explain how the work can be stitched together to form the complete program. Multi-sensory learning experience - The use of multiple tools to cater to different learning styles, such as text-based walkthrough, annotations (as already indicated) and a video walkthrough for each generator analyzed.
Proposed work product/deliverable:
We will deliver web page appropriate content format that includes: Introduction to coding in general for the non-coder Why code? Introduction to concepts in programming Assumptions about their skillset (the interface with computers, are quite familiar with Excel, and know some basic skills about working with Unix terminals, have set up a ship that is running and spawned a moon to use for coding - with links to such information in case they do not) Some basics: what is a program, what is computer naivety, how-to programs begin and end A clear description of goals: preemptively answering “what will we learn here?” A few of Hoon’s challenges for the new learner, in-depth and in plain English Auras Types of values Cells Discreteness (the importance of considering data, whenever presented, down to the atom level, as well as the idea that, in subject-oriented programming, given that everything is part of the subject, it is increasing (a) difficult and (b) necessary to exactingly specify 'on what' your program intends to operate) How Hoon programs terminate Two of the types of Hoon programs The naked generator The say generator Some tools we will need (some runes explained) Let’s create! Five generators, from fairly trivial (1-2) to stretching the learner’s skill set with each next generator project. Tasks presented, breaking down the task to what conceptual tools are needed, to going through the code line by line and character by character, again in-depth and in plain English to explain how those elements are written in Hoon and how the computer manages it
Expected hours: 125