Thinking Computationally with Elm ver 0.8
This book attempts to explain Computational Thinking, as if this were 2018, and not 1970. It is a first step in becoming a highly productive programmer who knows how to use tools developed over the last four decades to quickly write correct programs, or a software architect who sees the fundamentals of a operational problem and the fundamentals of data structures, and joins them in a solution.
If you already know something about old-fashioned ‘real-world’ programming, welcome to the future!
We start with a seemingly simple children’s puzzle, but whose solution involves some really powerful aspects of Computational Thinking. In the Tower of Hanoi, your task is to move a tower made by stacking blocks of diminishing size, one on top of another. You can move one block at a time to one of three bases. At no time can a larger block rest on a smaller block. All the blocks have different sizes. Assuming you are seeing this problem for the first time, the first question is, what questions should you ask yourself? For which sizes of tower can we solve the problem? How many moves are required to move the tower with a given number of blocks.
Here is another good lesson about computational thinking. No matter what crazy thing a computer does, people have to take the blame, because people are doing the thinking, coming up with a set of rules and the computer faithfully carries them out. Until we figure out rules for common sense, computers will not have it, and while that may come sooner than many expect, you can bet it won’t come before your next assignment is due’so you figure out the rules.