"This notebook is a collection of preliminary notes about a "code camp" (or a series of lectures) aimed at young students inspired by the fascinating Functional Geometry paper of Peter Henderson.
In such work the Square Limit woodcut by Maurits Cornelis Escher is reconstructed from a set of primitive graphical objects suitably composed by means of a functional language.
Here the approach will be somehow different: first of all because our
recipients will be students new to computer science (instead of fellow
researchers), but also because besides recalling the fundamental
concepts of abstraction levels (and barriers), primitives and
composition, present in the original paper, we will here also take the
opportunity to introduce some (albeit to some extent elementary)
considerations on algebra and geometry, programming and recursion (and
perhaps discuss some implementation details).
This work is to be considered very preliminary, it is not
yet structured in a series of lectures, nor it is worked out the level
at which every topic is to be presented, according to the age (or
previous knowledge) of the students. The language and detail level used
here is intended for instructors and teachers, and the various topics
will be listed as mere hints, not yet as a viable and ready to use
syllabus.
As a last remark, before actually beginning with the notes, the code
of this notebook is very loosely derived from previous "implementations"
of Functional Geometry such as Shashi Gowda's Julia version and Micah Hahn's Hasjell version (containing the Bézier curve description of the Escher fish used here). I decided to rewrote such code in a Jupyter notebook written in Python 3, a simple and widespread language, to make it easier for instructors to adopt it.
The source notebook is available on GitHub (under GPL v3), feel free to use issues to point out errors, or to fork it to suggest edits."
https://mapio.github.io/programming-with-escher/
No comments:
Post a Comment