Learning fundamental algorithms and data structures with python