update re Algorithms and Data Structures (pre college)
What I didn't fully realize, when I signed on as the Algorithms and Data Structures teacher, for two groups of 8th graders, is that ADS is pretty much the property of CPers at the age level. CPers? Competitive Programmers. They join olympiads <https://nbviewer.org/github/4dsolutions/elite_school/blob/master/Exercises.i...> , which present them with problems needing those special algorithms. There's a premium placed on speed, both to come up with a solution, to implement it, and to have it run at optimal speed. As the old guy applications programmer with a philosophy background (Princeton), I'm not a past champion. Nor have I had to go through a gauntlet of job interviews for coding jobs with big companies, and that's where CPers look next. Sure, maybe these olympiads are mostly for a younger crowd, but the ability to choose the right algorithm quickly is what will get them a job at the end of the day. That's the PR, which I'm just passing along. My initial approach was somewhat overlapping but different. I was more thinking in terms of *Mathematics* *for the Digital Age* and other discrete math tomes we have talked about at length in this archives. Working backwards from RSA (the public key algorithm), I know we want to cover Fermat's Little Theorem and Euler's generalization featuring totients and totatives. So what are those? Let's do some Group Theory while we're at it and show how the totatives of N, multiplied modulo N, form a finite group. Fibonaccis, generating primes, things of that nature <https://nbviewer.org/github/4dsolutions/elite_school/blob/master/ADS_intro_2...> . Then, in a more innovative mode, I've worked to expand data structures to include "structured data" such as json, html, xml, csv i.e. serialization protocols. In addition, I've sought to bring in DataFrames from the array based computing world of data analysis. Numpy and pandas. I think for many in a high school setting, what will serve them going forward is good old Anaconda and all that implies. As a base of operations. As a main productivity tool. Jupyter Notebooks rock, in my opinion. What I'm attempting, in microcosm, is to make Algorithms and Data Structures useful to non-CPers as well, i.e. those not especially interested in or drawn to competitive programming. It's not like algorithms and data structures should go off their radar as a consequence. The last innovation I'm trying involves keeping things more right brain i.e. graphical not just lexical. A graph, or network, is already a visually accessible data structure. It's almost a no-brainer to then bring polyhedra into the picture, as more graphs, with edges and nodes. Polyhedra also need to be stored and retrieved somehow, i.e. back to structured data and SQL. Indeed, in other writings I advocate introducing polyhedrons as paradigm objects, when learning OO, as they're both abstract mathematical and colorful tangible. They have attributes. They come with methods (scale, rotate, translate...). Where do we go from polyhedra? To divided (tiled) spheres and global data. To world maps <https://nbviewer.org/github/4dsolutions/elite_school/blob/master/ADS_sandbox...>. More data structures. More algorithms. I started a new sandbox intending to import global data tiles, but that ended up corrupting my old Mac Pro. Anaconda snuck in some incompatible upgrades. So far, I only have one "sandbox" <https://nbviewer.org/github/4dsolutions/elite_school/blob/master/ADS_sandbox...> devoted purely to polyhedrons in the ADS portion of my repo (much more elsewhere), a table of relative volumes built with pandas. The volumes won't seem familiar and the relevance of this table is not widely echoed in other literature, except in the matrix of suppressed American philosophy. One of our leading futurists, from the 1960s through the early 1980s, made a big deal out of the tetrahedron and its ability to serve as a basis for our relative volume concept. Even a tetrahedron of edges one could have volume one, in his recasting. This is a topic I've posted about extensively here on edu-sig over the years, and on Math Forum, although the latter was purged of its public discussion groups, breaking lots of links. My attitude is I want to be one of those teachers who took the Bucky Fuller stuff seriously enough to want to include it in downstream published open source works. You'll see if you go to bfi.org/synergetics that my Github writings <https://nbviewer.org/github/4dsolutions/DigitalMathematics/blob/master/Marti...> are currently on tap to give scholars some exposure to the philosophy in question. Part of walking my talk is to showcase said material in a workaday context, namely in an 8th grade level Algorithms and Data Structures class. Kirby
participants (1)
-
kirby urner