I've been thinking lately about a genre (for lack ...
# thinking-together
p
I've been thinking lately about a genre (for lack of a better word) of coding pedagogy that involves presenting the learner with a series of tasks of escalating difficulty with very little new content to read/study in between. Some examples I consider to fall under this are: • Project Euler (number theory / recreational math) • rosland.info (bioinformatics) • exercism.io (language-specific tracks) Are there examples of this style of learning in other programming domains? (e.g. 3d graphics, core CS, etc.) Other thoughts on this style of learning?
👍 5
s
Have you looked at executeprogram.com from Gary Bernhardt? It's not quite a series of tasks, but the increments are pretty small. Does it fit this category?
2
p
I had not -- but it does look like a good example!
s
This is not really programming, but there is a book called Probability through Problems by capinski that follows this approach—it's more or less self contained and the bulk of the theory is worked out in the problems
i
Video game tutorials (the good ones, at least) often do this. For example, the game SpaceChem, which sort of doubles as a programming environment, teaches the game mechanics (which are, basically, the concepts of its programming system) in a very gradual, incremental way.
👍 3
c
Flexbox Froggy is fantastic in this regard… one new CSS concept per level. I always assign playing it when teaching webdev classes. https://flexboxfroggy.com/
❤️ 5
I have a student working on a similar style project for a p5 library she wrote for generating geometric patterns with polar coordinates: https://liz-peng.github.io/p5.Polar/
actually, she’s currently collecting (very basic) feedback if anyone is willing to participate: https://forms.gle/YECi8w8xDk4xaSEK9
e
The gentle ramp is often called the Nintendo Ramp or the "Miyamoto Ramp", which is one of the great secrets of the Nintendo programming philosophy. Nintendo as you all know is the most consistently high quality, successful game company on the planet, and inside those games each level is carefully graduated as to have no serious bumps, so that one progressively gets harder tasks but the slope of the increase is almost imperceptible. A highly effective method. In the area of paper books, the mathematics series called "Keys to Algebra" from Key Curriculum Press Berkeley (owned by Springer) is a fantastic series. There are other subjects covered in Math as well from that series.
👍 4
m
the book "the little schemer" comes to mind
👍 1
r
Another possible example, although I haven't looked much into it, the "natural number game" for learning the Lean proof assistant: https://wwwf.imperial.ac.uk/~buzzard/xena/natural_number_game/
j
Barbara Ericson's work on dynamic and adaptive parson's problems is relevant here https://scholar.google.com/citations?hl=en&user=U09MSV8AAAAJ&view_op=list_works&sortby=pubdate
y
Haven’t done it since I lack the prerequisite math background, but I believe https://quantum.country/ does this. Worth reading this companion piece too: https://numinous.productions/ttft/
To echo @Ivan Reese, the video game Braid does this really well too.
👍 2
r
I collected some of these here https://csed.substack.com/p/the-best-online-interactive-learning, including executeprogram and flexbox froggy (❤️ ) Others worth a look: • Cant Unsee - Game for building design intuition by choosing the better of two side-by-side designs. • CSS Diner - Learn CSS Selectors interactively, by using them to select food from plates. • Method of Action - Five different interactive design games. My favorites are Type Method, and Boolean Method, but maybe the Bezier game is more important if you’re actually a designer. I am not a designer, so I can’t tell! • Vim Adventures - Build muscle memory and intuition for how to get around in the Vim text editor by moving a character around in a game. • SQLBolt - Learn a significant portion of what might be the most important coding language in a few hours. • RegexOne - From the same creator as SQLBolt, a terrific guided explanation of Regular Expressions, with lots of opportunities for practice. • Git Immersion - Guided tutorial through the fundamentals of Git, on your own machine.
👍 4
j
The video game Baba Is You does this well also.
👍 1
d
This is a favorite of mine: http://clojurescriptkoans.com/
😍 2
The quintessential is logo though, with a bunch of research behind it
p
Thanks all for these examples -- some really cool work in this area that I wasn't aware of!
@Rob Cobb this is a really useful post, do you mind if I share a link to it? (I'm not sure what the etiquette is with substack deep links because I understand it to be unindexed content 🙂)
r
Please do share it! My substack is free - it's just a nice way to manage an email list, and add payment in later if and when it feels right.
👍 1
m
I'm curious if there's a standard approach to making programming tutorials and some tools to help make them? It would help to have a guide so each project doesn't have to build it from scratch. For a format for presenting code in a gradually-building style, I have a small project to explore this. https://github.com/markdewing/programming_tutorial_maker