Well say you have two groups
(G,∗) and
(H,∘), and a function
φ which maps elements of
G to elements of
H. That is, for any
g∈G,
φ(g)∈H. Then we say that
φ is a homomorphism if for any two elements
x,y∈G, we have that
φ(x∗y)=φ(x)∘φ(y).
That is, it doesn't matter whether you 'multiply' x and y in G and then apply the map, or apply the map and then multiply the resulting elements of H. So in some sense, it preserves the group structure.
An example of this is with odd and even numbers. Take one group to be
(Z,+) (integers under addition) and the other group to be
({even,odd},+) (i.e. where even + even = odd, even + odd = odd, and so on). Then if for
n∈Z we say that
φ(n) is "even" if n is even and "odd" if n is odd, the then map
φ is a homomorphism. In other words, if you add two numbers together and then check if it's even or odd, it's the same as checking if the two numbers are even or odd and then applying the "even + odd = odd" rule.
An isomorphism is a bijective homomorphism. That is, if a map is a homomorphism which has an inverse, then it's an isomorphism. For finite groups, this basically means that G and H have the same size, and every element of H is 'hit' by some element of G under
φ.
Hope this helps.
I really should stop procrastinating and get round to doing my own maths at some point...