Sorting Rubyists, by Caleb Thompson
Abstract
We'll visualize the steps for several sorting algorithms not only using pretty visualizations on a slide, but also with people as the objects being sorted. Don't know what an algorithm is, what performance really means, or what "Big O" means, or what these best-, worst-, and average-case time complexities mean? No problem! We're going to learn together how computers figure out how to sort sets of numbers. You can expect to come out knowing new things and with Benny Hill stuck in your head.
We'll visualize several sorting algorithms---but we'll be sorting the audience! Don't know what an algorithm is, what performance means, what "Big O" is, or the effect best-, worst-, and average-case time complexities? No problem: we'll learn together! You can expect to come out knowing new things and with Benny Hill stuck in your head.
Source code for charts, bars, and playing Benny Hill across several slides: https://github.com/calebthompson/sorting-rubyists
Details
In addition to the audience-participation portion of learning the algorithms, I'll be introducing the idea of algorithms at all (what a scary word), breaking down Big O notation to something even I can understand, and we'll have some fun visuals of the algorithms tackling much larger sets of elements to be sorted in various scenarios (already sorted, random, reversed, few distinct elements).
Pitch
This is NOT going to be a dry computer science talk. I plan to do everything I can to make it fun and interesting to the audience, just as my professor did for us in Data Structure & Algorithms. People will be getting up from their seats, laughing at Gifs, and having a great time. There's no reason these core concepts for software need to be boring.