tour: make Sqrt exercise more accessible

Also don't assume prior knowledge of switch statement,
which I noticed right below the Sqrt exercise.

Change-Id: I1f3e191aa924a79c822780353a526d8edaafc168
Reviewed-on: https://go-review.googlesource.com/72130
Reviewed-by: Austin Clements <austin@google.com>
diff --git a/content/flowcontrol.article b/content/flowcontrol.article
index 7eccf84..a67d7ec 100644
--- a/content/flowcontrol.article
+++ b/content/flowcontrol.article
@@ -73,32 +73,54 @@
 
 * Exercise: Loops and Functions
 
-As a way to play with functions and loops, implement the square root function using Newton's method.
+As a way to play with functions and loops, let's implement a square root function: given a number x, we want to find the number z for which z² is most nearly x.
 
-Newton's method is to approximate `Sqrt(x)` by picking a starting point _z_ first, and repeating:
-
-.image /content/img/newton.png
-
-Hint: Iterate and return the final value of _z_ as the answer:
+Computers typically compute the square root of x using a loop.
+Starting with some guess z, we can adjust z based on how close z² is to x,
+producing a better guess:
 
 	z -= (z*z - x) / (2*z)
 
-To begin with, repeat the calculation 10 times and see how close you get to the answer for various values (1, 2, 3, ...).
+Repeating this adjustment makes the guess better and better
+until we reach an answer that is as close to the actual square root as can be.
 
-Next, change the loop condition to stop once the value has stopped changing (or only changes by a very small amount). See if that's more or fewer than 10 iterations. How close are you to the [[https://golang.org/pkg/math/#Sqrt][math.Sqrt]]?
+Implement this in the `func`Sqrt` provided.
+A decent starting guess for z is 1, no matter what the input.
+To begin with, repeat the calculation 10 times and print each z along the way.
+See how close you get to the answer for various values of x (1, 2, 3, ...)
+and how quickly the guess improves.
 
-Hint: To declare and initialize a floating point value, give it floating point syntax or use a conversion:
+Hint: To declare and initialize a floating point value,
+give it floating point syntax or use a conversion:
 
 	z := 1.0
 	z := float64(1)
 
+Next, change the loop condition to stop once the value has stopped
+changing (or only changes by a very small amount).
+See if that's more or fewer than 10 iterations.
+Try other initial guesses for z, like x, or x/2.
+How close are your function's results to the [[https://golang.org/pkg/math/#Sqrt][math.Sqrt]] in the standard library?
+
+(Note: If you are interested in the details of the algorithm, the z² − x above
+is how far away z² is from where it needs to be (x), and the division by 2z is the derivative
+of z², to scale how much we adjust z by how quickly z² is changing.
+This general approach is called [[https://en.wikipedia.org/wiki/Newton%27s_method][Newton's method]].
+It works well for many functions but especially well for square root.)
+
 .play flowcontrol/exercise-loops-and-functions.go
 
 * Switch
 
-You probably knew what `switch` was going to look like.
+A `switch` statement is a shorter way to write a sequence of `if`-`else` statements.
+It runs the first case whose value is equal to the condition expression.
 
-A case body breaks automatically, unless it ends with a `fallthrough` statement.
+Go's switch is like the one in C, C++, Java, JavaScript, and PHP,
+except that Go only runs the selected case, not all the cases that follow.
+In effect, the `break` statement that is needed at the end of each case in those
+languages is provided automatically in Go.
+Another important difference is that Go's switch cases need not
+be constants, and the values involved need not be integers.
 
 .play flowcontrol/switch.go
 
diff --git a/content/img/newton.png b/content/img/newton.png
deleted file mode 100644
index 3691e57..0000000
--- a/content/img/newton.png
+++ /dev/null
Binary files differ