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.ipynb#USA-Computing-Olympiad>
,
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.ipynb>
.

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_5.ipynb>.
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.ipynb>
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/MartianMath.ipynb>
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
_______________________________________________
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: arch...@mail-archive.com

Reply via email to