There is a technique for teaching the meaning and understanding of important mathematical theorems that is highly dependent on computer technology that I have found particularly effective, and it is unrelated to Google. Namely, some theorems are of a constructive nature; they say that you can reconstruct certain kinds of mathematical objects up to isomorphism algorithmically from associated critical data ("invariants"). These are often quite abstract sounding and students often have a difficult time really understanding them in a more than formal way. But sometimes it is possible to get the students to actually program these algorithms (using one of the three Ms---Matlab, Maple or Mathematica) and when this is the case I have found (and the students agree!) that the process of actually developing the algorithm as a program gives them a deeper understanding of the theorems in question. This may sound rather abstract, so let me illustrate it by an example. The classical course on basic differential geometry, often called "Curves and Surfaces" has as its heart three core so-called "Fundamental Theorems", the fundamental theorems of (i) plane curves, (ii) space curves, and (iii) surfaces. These three theorems say respectively that you can reconstruct these three types of objects uniquely, up to rigid motions from a knowledge respectively of their (i) curvature (as a function of arclength) (ii) their curvature and torsion and (iii) their first and second fundamental forms. I have taught this course three times using the above technique, once in Taiwan, once at Brandeis, and once at UC Irvine, and as I suggested above, I felt the results were far superior to the "old way". I have made available ALL the material I used when I taught the course at Brandeis in 2003 (course prospectus, lecture notes, exercises, programming projects, how to get started programming, etc.) and you can find all this material here:
You are welcome to use it either for learning on your own or for teaching a similar course.