This is a notebook that introduces common big-O time complexities with code examples and a minimum of math.
It especially excludes limits. I found myself, on a number of occasions, having the exact same conversation with students. Either the limit definition of big-O didn't make sense to them, or it did make sense but they had trouble relating the definition of big-O for functions to actual written programs. Since my end of the conversation was, each time, pretty much the same I thought I should write it down for reuse.