Design, Logic, and Programming with Python: A Hands-on Approach