Difference between finding normal vector to given surface using gradient and $r_u\times r_v$ When calculating surface integral in scalar field, we use the following formula:

Now, in the example solved below;
For surface S1, they have calculated $r_(theta) × r_z$ for finding the normal vector, which is clear to me. But my question is whether we can use gradient to find the same normal vector and then its modulus to be replaced in the integral because in my class, our teacher has used gradient for finding the unit normal vector in many examples in surface integrals over vector field given by the formula
Now, if I calculate the gradient of the surface I get n= 2x i+ 2y j  and |n| = 2 instead of 1 found out by $r_(theta) × r_z$ in the solved question above. As a result if I substitute 2 in place of |$r_(theta) × r_z$|  the whole integral value gets multiplied by 2 which certainly gives the wrong answer. I am really confused as to why the magnitude of the normal vector differs in the two cases and how to differentiate where to use the gradient and where the cross-product for calculations. Also, if normals can be found using gradient, then why at all we have been introduced with the method of using the cross product which is quite tedious to find in some cases, to find the same?
 A: If the surface $S$ is given as a level set of some function $f$, then its normal is in fact parallel to the gradient of $f$.
But $\mathbf{r}_u \times \mathbf{r}_v$ has information about magnitude in it which cannot be obtained from $\nabla f$. The fact that $\nabla f$ doesn't have this information is easy to understand: if $S$ is given by $f=c$, then it is also given by $af=ac$ for any real number $a$, and the functions $af$ have different gradients. They point in the same direction (or exactly opposite directions for negative $a$) but they have entirely different magnitudes.
In short, what the gradient can do for you (for surfaces given as level sets) is to find $\mathbf{n}$. This is OK if you can use some geometry to perform an integral $dS$, but that is usually not possible. The gradient cannot tell you how to convert $dS$ into $|J(u,v)| du dv$, however.
A: This formula is for a scalar values function f.

And this function is for a vector valued function f.

The example then goes on to discuss a problem with a scalar valued function.  There is no need to need to calculate a normal vector in this case.
