1.3 Practice: algorithms, decomposition and abstraction