Topics covered include some of the background mathematical techniques, electrostatics, magnetostatics, elementary circuit theory, electrodynamics, electromagnetic waves and electromagnetic radiation. For the most part the book deals with the microscopic theory, although we also introduce the important subject of macroscopic electromagnetism as well. Nearly all questions end with a series of comments whose purpose is to stimulate inductive reasoning and reach various important conclusions arising from the problem. Occasionally, points of historical interest are also mentioned. Both analytical and numerical techniques are used in obtaining and analyzing solutions. All computer calculations are performed with MathematicaCO and the relevant code is provided in a notebook; either in the solution or the comments.