>What is and isn't Ethical has largely already been discussed and decided.
I agree with your post, except on this point. Ethics is never 'decided' in the light of new axioms, new evidence, and debates on which principles apply to which cases. Morality is a matter of dialogue, and the idea that anybody (computer scientist or not) should accept without the possibility of debate any ethical point is tantamount to dogmatism. It is disastrous on two fronts:
* It does not respect the student as a moral reasoner in many cases; the student is not taught to reason beyond the level of application if they are only taught principles, and the student is not taught to reason at all if they are only taught scenarios and analogies
* It presents ethics as something "those other people" (i.e. academic philosophers) do, rather than something everyone does in dialogue with others. Such a presentation will not stand up if people (for non-moral, epistemic reasons) lose trust in that establishment.
When you say "largely" you seem to acknowledge this, but I'd go further and say that certain edge cases impact on the whole. To teach ethics largely as something 'decided' is nearly equivalent to teaching that the best language for task X is Y, and and that the best langugaes for most tasks have already been decided, and your only reasoning should be when to decide when to use language Y, never to interrogate the language, to interrogate the use cases, or to interrogate other possible principles.
Ethics isn't "anything goes", but it certainly isn't "listen to these principles. The only freedom you have is reasoning about when to apply them".