This page lists some of the talks/guest lectures I've given, along with the lecture slides as a PDF.

2012

Darts, Dice, and Coins

ACM Tech Talk, Stanford University

A survey of the algorithms from my Darts, Dice, and Coins article.

2011

Evil Hangman

Nifty Assignments Panel, SIGCSE 2011

An overview of the "Evil Hangman" assignment for the Nifty Assignments panel.

Fun With Number Systems

Colloquium, Cornell University

An exploration of two classic problems - the "odd ball" problem and iteratively listing permutations - using specialized number systems.

Introduction to Graphs

CS2110, Cornell University

An introduction to graphs and graph searches.

Demystifying Smoothsort

ACM Tech Talk, Stanford University

An introduction to the smoothsort algorithm.

2010

Algorithmic Analysis and Sorting, Part One

CS106B Guest Lecture, Stanford University

An introduction to algorithmic analysis, big-O notation, and sorting algorithms. Part one of two.

Algorithmic Analysis and Sorting, Part Two

CS106B Guest Lecture, Stanford University

Continuation of Part One. Mergesort and recurrence relations. Quicksort, along with runtime analysis. Introduction to hybrid sorts, including introsort. Concludes with a brief foray into bogosort.

2009

Template Metaprogramming in C++

CS242 Guest Lecture, Stanford University

An introduction to template metaprogramming in C++, including applications and theoretical results.

C++ sans CS106B

CS106B Guest Lecture, Stanford University

A quick tour of the STL and C++ outside of Stanford's CS106B class.