Ethics is not about the moral compass of an individual, but it is about the moral obligations of the professional community as a whole.
What is and isn't Ethical has largely already been discussed and decided. It is up to us developers to learn about it and apply it to our field.
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".
By who? You're appealing to a non-existent, homogeneous "community" when you say
> the moral obligations of the professional community as a whole.
To take specific examples, maybe one community considers it a moral obligation to advance technology and knowledge no matter what, even if it has uses some people don't like such as crypto or facial recognition. Apparently the big-tech and silicon valley communities think it's okay to police speech on their platforms, whereas professionals who value free speech would consider that unethical.
As an engineer I don't want my tuition going towards anything that isn't directly useful to me, or that aren't my free choice. Until there are ethics regulations or something that actually impact my professional life, I'm not interested in spending money on it.
For a horrible example of "ethics" instruction at Harvard, see the "ethics" module for CS 61: Systems Programming and Machine Organization, at
https://embeddedethics.seas.harvard.edu/classes/cs-61-2019-f...
An excerpt:
Sample Class Activity: After being introduced to the concept of representational harm, students are presented with a slide containing the current set of ‘yellow’ emoji representing families of different kinds. In small groups, students discuss what kinds of families are left out from the current set and whether those omissions constitute representational harms.
Here is the course description: "CS 61 is a first course in computer systems programming, meaning the creation of high-performance programs that use computer hardware effectively..."Imagine you are a student who is taking this course because you need the technical knowledge you think it covers, and then you are asked to discuss family emojis. I think you would be right to be disgusted with the instructor, disgusted with the CS department, and disgusted with Harvard University.