algorithms in python + lec notes