“All the little bits”

  • Diplomjodler@lemmy.world
    link
    fedilink
    English
    arrow-up
    28
    ·
    8 months ago

    I often find that I find mathematical concepts much easier to understand if they’re presented as Python code rather than math notation. Someone should write a book like that.

    • kshade@lemmy.world
      link
      fedilink
      English
      arrow-up
      17
      arrow-down
      2
      ·
      edit-2
      8 months ago

      Algebraic notation breaks just about every rule programmers are taught about keeping their code human readable. For example:

      • Variable and function names should be descriptive
      • Don’t cram everything into one line
      • Break up large statements
      • Consistency is key
      • Don’t be fancy for fancy’s sake, don’t over-optimize (this is for learning, remember?)
      • Add in-line comments for lines that aren’t easily grasped
      • Be explicit where possible (it’s a convention to omit the multiplication operator when multiplying variables because variables are only one letter anyway…)

      And then we force kids to cram the whole stdlib (or rather its local bastardization) into their heads or at best give them intentionally bad (uncommented) documentation during exams while wondering why so many just don’t seem to get it, even resent it.

    • ricecake@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      6
      ·
      8 months ago

      That’s an interesting notion.
      For you, is it when it’s presented like: sum = sum([1,2,3]), or when it’s dropping in and explaining how the sum function is implemented?

      I think there’s definitely something there in either case, but teaching math through “how you would implement it in code” seems really interesting. You could start really basic, and then as you get to more complicated math, you keep using the tools you built before. When you get to those “big idea” moments, you could go back to your old functions and modify them to work in the new use case while still supporting the old. Like showing how multiplication() needs to change to support complex numbers without making anything else different.

      • Diplomjodler@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        8 months ago

        I know this is just a simple example but sum() doesn’t teach you about the concept of sums. It would have to be something like:

        def sum_up(my_list):
            result = 0
            for item in my_list:
                result = result + item
            return result
        

        Then you could run that through a debugger and see how the variables change at every step. That way you can develop an understanding of what’s going on there.

        • ricecake@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          2
          ·
          8 months ago

          Yeah, thinking about it a bit more, I could have asked it as:

          Is it seeing how it’s used with plain, more spelled out names that helps, or is it seeing how it works “under the hood” that makes it more clear?

          Your answer clarifies things for me though, and I agree that that would be a really nice book/program/learning thing. :)