I worked as an undergraduate student instructor (uGSI) for CS70 (Discrete Math and Probability Theory) for 3 semesters. It is one of the few classes that I really enjoy in Berkeley. Instead of teaching you how to program, it takes you deep down to the mathematical beauty of computer science.
Some of the resources I created during teaching includes:
A demo of Berlekamp Welch algorithm
Interestingly, two of the four items above ended up being my day-to-day life nowadays: machine learning is all about estimation, and reinforcement learning starts with the Markov Decision Process (MDP) assumption.