Learn to Code by Solving Problems

Learn to Code by Solving Problems

A Python-Based Introduction
by Daniel Zingaro
June 2021, 336 pp.
Use coupon code PREORDER to get 25% off!

Download Chapter 2: MAKING DECISIONS

Computers are powerful problem-solving machines capable of doing almost anything, with the right instructions. That’s where programming comes in, allowing us to communicate those instructions through a coding language like Python. This beginners book gets you writing programs right away, as you solve interesting problems drawn from real coding competitions while building Python skills.

Every chapter is driven by problems drawn directly from coding-challenge websites, where online judges test your solutions and provide targeted feedback. As you practice using core Pythonic features, functions, and techniques, you’ll develop a clear understanding of data structures, algorithms, and other foundational aspects of programming useful in any language. Bonus exercises are also included so you can explore new concepts on your own, and multiple-choice questions throughout the text encourage you to critically consider the purpose of each piece of code.

You’ll learn:

  • Introductory ideas, like running Python code, working with strings, and using variables
  • How to write programs that make decisions
  • How to use while and for loops to repeatedly execute code
  • How to use Python sets, lists, and dictionaries to organize, sort, and search data
  • How to design programs using functions and top-down design
  • How to create complete-search algorithms, and use Big O notation to design more efficient code

By the end of the book, you’ll not only become proficient in Python, but also learn the type of thinking required to solve problems with a computer. Because programming languages come and go; the way we solve problems does not.

Author Bio 

Dr. Daniel Zingaro is an award-winning Associate Professor of Computer Science in the teaching stream at University of Toronto Mississauga, and is internationally recognized for his expertise in Active Learning. He is also the author of Algorithmic Thinking (No Starch Press, 2021).

Table of contents 

Chapter 1: Getting Started
Chapter 2: Making Decisions
Chapter 3: Repeating Code: Definite Loops
Chapter 4: Repeating Code: Indefinite Loops
Chapter 5: Organizing Values Using Lists
Chapter 6: Designing Programs with Functions
Chapter 7: Reading and Writing Files
Chapter 8: Organizing Values Using Sets and Dictionaries
Chapter 9: Designing Algorithms with Complete Search
Chapter 10: Big O and Program Efficiency

View the detailed Table of Contents