Your Assignment:
1) Execute the entire notebook.  Experiment if you like. 
2) Generate a plot for the set of 3 charges described at the end.
3) Hand in the plot.

Suggestion: if you want to save this file on you disk, CUT the graphics first so it will fit. (Graphics take up over 1MB.)

**********************************
Initialization Stuff:
(Just execute this, don't read it!!!)

Needs["Graphics`PlotField`"];
Needs["Graphics`PlotField3D`"];

Don't mind any   Warning:... ind an messages here!

Clear["Global`*"];
Unprotect[{go2d,go3d,Monopole}];

Monopole[q_,v0_:{0,0,0},v_:{x,y,z}]:= q/(Sqrt[(v0-v).(v0-v)])

go2d[distribution_]:=
 PlotGradientField[-distribution/.{z->0} //Evaluate 
    ,{x,-2,2.01},{y,-2,2.01}
    ,ScaleFunction->(1&)];

go3d[distribution_]:=
 PlotGradientField3D[-distribution  //Evaluate 
    ,{x,-2,2.01},{y,-2,2.01},{z,-2,2.01}
    ,PlotPoints->8
    ,ScaleFunction->(1&)
    ,VectorHeads->True];

Protect[{go2d,go3d,Monopole}];
Off[Clear::wrsym];

**********************************
Electric Fields Due to Point Charges:

Clear["Global`*"];

The Monopole[q,{x,y,z}] function places a single charge q 
  at position {x,y,z}.  An example would be:  Monopole[+1,{1,0,0}]
Let's look at the field due to a single charge located at the origin, {x,y,z}={0,0,0}. 

The function go2d automatically plots the electric field vector in the {x,y} plane. 
(This automatically plots the region from {-2,2}.)

go2d[ Monopole[+1,{0,0,0}] ];

We can create a dipole from two Monopole functions:
(Notice that the signs are opposite)

dipole= Monopole[+1,{1,0,0}]+Monopole[-1,{-1,0,0}]

Now let's look at the E field.

go2d[ dipole ];

In a similar fashion, go3d makes a plot of the E field in 3-dimensions. Try it! (3D plots will take some time.)

thisPlot= go3d[ dipole ];

This may look neater from a different viewpoint. 
(Note how I defined thisPlot so I would not have to re-compute the above plot. This saves time.)
(3D plots will take some time.)

Show[thisPlot,ViewPoint->{0.000, 0.000, 4.000}];

Now you get the idea. Instead of a dipole, let's try two charges of the same sign.

twoCharges= Monopole[+1,{1,0,0}]+Monopole[+1,{-1,0,0}]

go2d[ twoCharges ];

Now that you are started, you can experiment with different charge configurations. Try three charges located at {1,0,0}, {-1,0,0}, {0,1,0}.  Go and experiment.