g^(-1)[A] is decidable:

Given x, compute g(x) and check whether g(x) is in A or not, and answer in the same manner.

If x is in g^(-1)[A], then we will answer yes.

If x is not in g^(-1)[A], then we will answer no, as required.

regarding g[A], it may be not decidable, and I will try to give a sketch of a refuting example (I will use $g:\Sigma^* \rightarrow \Sigma^*$ which is the type of stuff we did in our course).

Let A be the set <M,w> such that M accepts w and <M> is a Turing machine that contains a specific set of states and transitions that makes sure that every other step a counter is incremented and when the counter reaches 100000 it halts and rejects. Clearly A is decidable, since for any <M,w> we can check that it contains the "code" for incrementing the counter etc. and then run M on w for 100000 steps (you can think of it as a program that has the code of a function that counts).

Now let g be the computable function that deleted that "code" that is we do not increment a counter anymore. g is computable since it makes a simple change in the description of M.

Now g[A] is Atm which is not decidable.