As is so often the case in math, you are both right in some sense. See the thing is that
A->B (shorthand for A implies B) is _defined_ to be true in the following cases:
A True and B True
A False and B True
A False and B False
and false in the case
A True and B False
Its not really a matter for interpretation. Thats how thousands of mathematicians and computer scientists define A->B and you are kind of stuck with their conventions

You are correct that it is a little strange for us to say that the statement "If the sun rises in the west then John Funk is a girl" is true just because the "A" part is false. It contradicts your intuition a little. There is a reason however. Suppose we did it as you suggest and define
A-> B to be true in the case:
A True and B True
and false in the cases:
A False and B False
A False and B True
A True and B False
You may recongnize this as exactly the same thing as "A AND B"; it would be true in only the case where both A and B are true. So, unless we want "implies" to be the same thing as "and", we have to define "A->B" to be true when A is false.
Now, this is all under the assumption that we are dealing with computer logic. It makes sense to say that the statement A->B is undefined if A is false. But there is no undefined for computers (or for logic) only true = 1 and false = 0, so you have to pick one.