#!/usr/bin/env python # coding: utf-8 # # Digital Mathematics for Beginners: What Skills? # # # ### Starting Up with a Markup # # Do your students already know what the ML stands for in HTML? Markup Language. HTML is not the only markup language. # # Ideally, a basic high school *Language and Communications* class will not bleep over the punctuation and other semantics associated with markup languages. # # Before computers, authors could submit unfinished work to editors who had a symbolic language for making corrections and enhancements. Authors could use this feedback to come up with a second draft and so on (a "workflow"). # # Poet Gene Fowler ([Waking the Poet](https://www.amazon.com/Waking-poet-Acquiring-usually-talents/dp/0941386007/186-1772235-8409447?ie=UTF8&*Version*=1&*entries*=0), 1980) recommended that HTML and XML be folded into the teaching of basic grammar, which includes learning to properly structure sentences into paragraphs, with the necessary punctuation. # # The markup language needed for Jupyter Notebooks is named MarkDown (get it?). Another markup language similar to MarkDown is reStructuredText. # # One of our key abilities with all these markup languages is to form hyperlinks to other Web locations, using a Universal Resource Locator or URL. # # For example, below are hyperlinks to web pages on MarkDown and reStructuredText respectively: # # - [MarkDown Docs at Github](https://help.github.com/articles/basic-writing-and-formatting-syntax/) # # - [reStructuredText Docs](http://docutils.sourceforge.net/rst.html) # # Your students will eventually want to develop their power over the Hypertext Markup Language (HTML) itself and its Cascading Style Sheet (CSS) complement. This vocabulary may be developed gradually and is best not tackled through a lot of rote memorization sans applications. # # ### Storing / Retrieving / Displaying Geometric Objects # # # # ![Volumes](http://grunch.net/synergetics/hierarchy/vols.gif) # # [Digital Mathematics](http://wikieducator.org/Digital_Math) is a lot about rendering colored and textured shapes on an HTML canvas, including the Five Platonic solids. # # Storing and retrieving these shapes to and from a database will provide students with useful exercise in using databases as repositories for information. # # Our approach follows the so-called [Martian Math](http://wikieducator.org/Martian_Math) protocol in sharing the "sculpture" presented by R. Buckminster Fuller in *Synergetics* volumes one and two, meaning the polyhedrons will be nested and related to one another in a specific way, starting with a tetrahedron we will take as [our unit of volume](http://grunch.net/synergetics/volumes.html). # # We will be reviewing the XYZ coordinate system as we go along, sometimes switching to a more exotic "[Quadray coordinate system](https://en.wikipedia.org/wiki/Quadray_coordinates)" for contrast. Working with these two coordinate systems together provides many insights. # # # ![Quadray Coordinate System](https://upload.wikimedia.org/wikipedia/commons/9/99/Quadray.gif) # # # ### Managing a GitHub Repository # # Finally, students need a place to store their Jupyter Notebooks. As long as the content is suitable for public viewing, a free Github repository is a great place to put them, as they will render fairly completely when retrieved by URL. The public nbviewer may also be used, and in some cases will reveal more of the content. # # Learning enough Git to clone, add, commit and push revisions to the Web does not need to be an onerous process. However, using the command line environment will be necessary. Your students will need to develop their powers in this context, talking directly with their computer's operating system. # # The skills so far mentioned: learning a markup language, using a database to store coordinates, sharing Jupyter Notebooks, are all valuable in and of themselves, however there's one more skill to introduce: scripting with a computer language. # # ### Automating Tasks with a Scripting Language # # Your students need to use [a scripting language](http://www.python.org) to glue together and automate much of the above. # # Creating a new table in a database may be tedious, but if we do it in code and save it, then we have a script for doing it again and again. Modifying existing scripts to get the results we desire, without starting over from scratch, is a core workflow and skill. # # ### For Further Reading # # Linked Jupyter Notebooks: # # - [Introduction to Public Key Cryptography](http://nbviewer.jupyter.org/github.com/4dsolutions/Python5/blob/master/Silicon%20Forest%20Math%20Series%20%7C%20RSA.ipynb) -- RSA, uses generator # - [Composition of Functions](http://nbviewer.jupyter.org/github/4dsolutions/Python5/blob/master/ComposingFunctions.ipynb) -- more about decorators # - [STEM Mathematics](http://nbviewer.jupyter.org/github/4dsolutions/Python5/blob/master/STEM%20Mathematics.ipynb)