Natural English would be either "You should be ashamed" or "You ought to be ashamed".
Должен can mean must, should/shall or ought to. So "you ought to be ashamed" should be accepted by Duolingo.
I have to say that "you ought to be ashamed" should be accepted, "you should be ashamed" ought to be accepted, and "you have to be ashamed" must be accepted.
You're lucky, I got the select words excercise and I couldn't figure it out
This particular construction would remain the same regardless of the person or people being spoken to. I think this has something to do with the fact that there is technically no grammatical subject here because the person being spoken to is in the dative case. Sorry I don't really know the grammar behind this.
"стыдно" never changes. Мне стыдно. Ей стыдно. Нам стыдно. Вам не стыдно? Ему тоже стыдно. Им должно быть стыдно. Вам будет стыдно. Стыдно у кого видно.
It's an adverb, not an adjective - adverbs don't change in Russian. The confusing part is that it's an adverb referring to the omitted verb - есть. However, in all constructions of the type "мне/тебе/вам/им/ей/ему XXXo", "XXXo" is an adverb (стыдно, плохо, хорошо, холодно, жарко etc).
Katzner's Russian-English dictionary says that стыдно is a predicate adjective meaning "it is a shame" - so the sentence would be literally translated as something like "For you it must be shame".
Why wouldn't <<вам должно было стыдно>> work, if we're talking about the past tense?
Why do you you think we are talking about the past?
"Вам должно быть стыдно"="You have to be ashamed" (now).
"Вам должно было быть стыдно"="You had to be ashamed" (in the past).
In any case, pay attention to how you would say it in the past tense in Russian: you cannot just replace быть→было since "быть стыдно"="to be ashamed" and so that быть must remain there.
It didn't come up in an exercise with an English translation, so I didn't know whether it was past or future.
Thanks for the explanation! I always forget when to keep "быть".
I always forget when to keep "быть"
Since "быть" is the infinitive form, not the present tense, changing it to the past tense would be very illogical. You always keep it, just like you would keep "to be" in English. And if there is no explicit present tense verb, which you could readily change in a construction like this one, you just add "было" for the past tense or "будет" for the future tense.
Shouldn't it be "вам должны быть стыдно"? Because должны refers to вам which is plural?
No. "Вам" is not the subject here, it's an (indirect) object. The subject is implicit; it would be "this/that/it" in English: "This should make you ashamed".
The singular form is determined by the implicit subject, not the object.
Вам должно быть за себя стыдно.
I am not saying that there is much difference in the meaning of these expressions, but there there is a literal Russian analogue of your sentence.