Self-teaching how to code with Python, part 3: Program designing