Computer science practice - algorithms and data structures in Python