Sketching Julia sets by the "inverse iteration algorithm"

The next command needs to be run once every time you start Mathematica when you want to use it to sketch Julia sets.  It creates an operator named "Julia" which sketches the Julia set of a function by plotting the inverse iterates of a randomly chosen point w.

Here is what this command does :  it creates an operator named Julia that has seven inputs (exactly what these inputs are is described below).  The command Julia executes what is called a "Module".  In the module :
    - the program finds the inverses of a specified function (third line of command)
    - the program chooses a complex number at random (fifth line)
    - the program iterates the complex number under randomly chosen inverses of the function to produce a backward orbit (sixth through eighth line)
    - the orbit is split into real and imaginary parts so it can be plotted (ninth line)
    - the first 100 points in the orbit are deleted, to make the picture a bit better (tenth line)
    - the orbit is plotted (last two lines)

As will be explained in class, the Julia set attracts all points under backward iteration, because it contains all the repelling periodic points of the function (and points that repel under forward iterations attract under backward iterations).  So plotting the backward orbits of some point will produce an approximate picture of the Julia set.

Julia[func_, z_, maxiterates_, left_, right_, bottom_, top_] :=
Module[{y, w, invlist, pickinv, orbit},
invlist = Flatten[Solve[func == w, z]];
Print[func];
w = Random[Complex];
orbit = Table[
pickinv = z/.invlist[[Random[Integer,{1, Length[invlist]}]]];
w = pickinv, {maxiterates}];
orbit = Transpose[{Re[orbit], Im[orbit]}];
smorbit = Drop[orbit, 100];
ListPlot[smorbit, AspectRatio -> Automatic, PlotStyle -> {AbsolutePointSize[1.1], Hue[.7]}, PlotRange -> {{left, right}, {bottom, top}}]]

Once you have executed the previous command once, you can subsequently produce a picture of the Julia set of a function by executing a command like this one :

Julia[z^2 , z, 200000, -1.5, 1.5, -1.5, 1.5]

The command has seven inputs, separated by commas.  The inputs, in order, are :
   1) the function whose Julia set you want (in this case, f(z) = z^2)
   2) the variable of the function you typed in (1)
   3) the number of iterations you want to plot (the higher this is, the better picture you get, but the longer the command takes to run)
          (in this step, 10000 is a bare minimum number of iterations)
   4 and 5) specify the range of x-values for your picture
   6 and 7) specify the range of y-values for your picture