In addition to the Stanford courses mentioned in another comment, there are also two Princeton courses taught by Sedgewick https://www.coursera.org/instructor/~250165 and the MIT course taught by Demaine https://ocw.mit.edu/courses/electrical-engineering-and-compu...