What to teach: sorting algorithms vs OOP?

Wes Turner <[email protected]>
Newsgroups gmane.comp.python.education
Message-ID <CACfEFw-PjJGPjnFxrZsQAnnRxB8c2J+3N8d84xXJQ065ROJdhA@mail.gmail.com>
Optimization for real-world data.

Morse code is a good one; which leads to the entropy of real-world English
letters: how probable are the letters A, E, and Z? How probable is the
3-gram of letters 'AEZ'? A well-balanced tree could take this knowledge
into account and sparsely add 'nodes' without needing to rebalance as often.

Pairtree with hashes is an interesting real-world problem. Filesystems have
a max number of file entries per directory. A good cryptographic hash has
equal probabilities of e.g. hexadecimal character occurrence for each
digit: each digit character has an equal probability of following any other
digit.

Shannon used these probabilities for something; I can't remember what it
was?

One (TED-Ed) YouTube video I found mentioned sorting library books; what's
the fastest way?

Sorting is not strictly necessary for top-k N-dimensional optimization:
tracking high and low points doesn't require sorting the whole (then
ordered or partially ordered) set.

Here's an example from https://wrdrd.github.io/docs/consulting/data-science#
optimization :

Optimization⬅
https://en.wikipedia.org/wiki/Mathematical_optimization

Find local and global optima (maxima and minima) within an n-dimensional
field which may be limited by resource constraints.

# Global optima of a 1-dimensional list
points = [10, 20, 100, 20, 10]
global_max, global_min = max(points), min(points)
assert global_max == 100
assert global_min == 10

# Local optima of a 1-dimensional list
sample = points[:1]
local_max, local_min = max(sample), min(sample)
assert local_max == 20
assert local_min == 10

# A 2-dimensional list ...
points = [(-0.5, 0),
          (0,  0.5),
          (0.5,  0),
          (0, -0.5)]

https://en.wikipedia.org/wiki/Optimization_(disambiguation)
https://en.wikipedia.org/wiki/Metaheuristic
https://en.wikipedia.org/wiki/Receiver_operating_characteristic
http://rayli.net/blog/data/top-10-data-mining-algorithms-in-plain-english/
http://scikit-learn.org/stable/tutorial/machine_learning_map/
https://en.wikipedia.org/wiki/Firefly_algorithm

On Thursday, August 16, 2018, Tobias Kohn <[email protected]> wrote:

> I couldn't agree more!  Such interactive programmes are often so much more
> valuable than hours of talking (even though doing interactive programmes
> all the time will wear the students out -- as always, there is golden
> middle here ^_^).
>
> Another idea in that direction is to make two or three groups, and then
> have a little competition of who can sort a pile of post-its (or whatever)
> fastest.  And I would recommend to surprise the students.  Once they have
> learned how to sort numbers, say, give them post-its with picture of
> animals, say, or melodies, or whatever you fancy.  That forces them to
> think outside of the box, and suddenly computer science class becomes so
> much more meaningful and memorable!
>
> Yet another idea: how about sorting Morse code?  Usually, we get it sorted
> from 'A' to 'Z'.  But there are other ways, and before you know it, you are
> discussing trees...
>
> Cheers,
> Tobias
>
>
> Quoting kirby urner <[email protected]>:
>
>
> I'm glad Tobias took the bull by the horns and didn't eschew  a deeper
> look into the sorting algorithms.
>
> As a big fan of animations, my reflex is to scour Youtube for graphical
> renderings of the different strategies, but then another thought crops up:
> lets get out of our seats and do choreography, Math is an Outdoor Sport!
> (PR poster). I should explain.
>
> The relationships between programming and scripting theater "programmes"
> (old spelling) are deep. Give each student a postit with a number and have
> them *enact* the sorting algorithm.  E.g. starting in a row, turn to person
> on your left (if there is one) and swap places if your postit number is
> higher...  have directors  and make a video.  Now choreograph (enact,
> dance) in a different way.
>
> Symphonies, plays, musicals, are so multi-track, so parallel, and yet we
> fail to exploit those intuitions sometimes.
>
> Let the Theater Department handle it, in consultation with CS.  Could go
> under the heading of "Unplugged".  Likely the Hobbits are already doing
> this in New Zealand (NZ has pioneered unplugged more than most, plus has
> Hobbits).
>
> Seriously, having lived in the Philippines where people routinely learn
> group dancing, I'm worried about only acting as teams in three capacities
> (a) cheerleader (b) athlete on the field (c) band.  Theater is being
> eliminated in favor of competitive sports.  Perhaps CS could come to the
> rescue and say "wait, we need Theater for our simulations".
>
> More cerebral team-based activities might go a long way towards fighting
> the stereotype that computer programmers  only live in artificially lit
> basements eating pizza.  That's a physically damaging lifestyle, nothing to
> do with writing code or even doing math.
>
> ===
>
> Regarding last night's tele-class (real time, zoom.us), I worked through
> "cloning a github repo" as the core exercise, a repeat from last week, then
> went through the process of updating a notebook live, and pushing the
> changes back to the repo.
>
> The repo was of course the one with yesterday's Jupyter Notebook about
> Ordering Polyhedrons by volume.
>
> https://github.com/4dsolutions/SAISOFT
>
> I tell them "cloning a github repo" is going to be important for when they
> want like a Jake Vanderplas tutorial, i.e. when they want to study a topic
> in more depth and the workshop is (A) on Youtube or similar service and (B)
> the workshop materials are free via github (a common enough pattern).
>
> I also reminded them how Google shares TensorFlow in the form of Colab
> exercises (Jupyter Notebooks).
>
> One students asked "R or Python, which is winning in Data Science"?
>
> My answer:  pandas is a relatively recent development and there's already
> lots of excellent curriculum based around R, which is likewise free / open
> source. The business world is rushing into Python because of DL / ML and so
> gains an R-like tool in the process, which enables better town-gown
> relations i.e. Harvard can talk to Facebook about Pytorch thanks to already
> teaching R in the stats department.
>
> In other words, it's not either/or, more like two communities forming a
> bridge via the common language of data science, which R and Python both
> reflect (as do some other languages / ecosystems, not aiming for
> comprehensivity here).
>
> Kirby
>
>
>
> On Wed, Aug 15, 2018 at 10:04 AM, Tobias Kohn <[email protected]> wrote:
>
>> *Hi Jurgis,*
>>
>
>
>

_______________________________________________
Edu-sig mailing list
[email protected]
https://mail.python.org/mailman/listinfo/edu-sig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.