- Ethics should be a required course for CS.
- CS classes in general do a poor job of tracking well with the industry. Fine for some things (eg, theory), but awful for others (eg, any Software Engineering course which touches on waterfall.)
For those who have missed out, here's an ethics course in the size of a paragraph:
Most engineering ethics focus on life and death, such as making sure your bridge doesn't collapse; Most software is not a matter of life and death, so ethics may seem irrelevant. However, the incredible power of technology means your design choices will have an impact on the lives of many. Seeing red lines where you need to tell your employer no is important, but everyday ethical thinking will find problems other approaches to design will be blind to. This in turn will make better products, and increase your value to your employer. So throw an "ethics" section in your design doc, and ask the question "Does this technology as designed hurt any groups of people with specific characteristics?" You might find that your camera app needs better calibration for dark skin tones, that your UI elements are too hard to use for women with large fingernails or people with minor motor disabilities, or perhaps that one of the JS libraries your considering is very large, and will make a much worse experience for people with rural and slow internet. So simply stop, think, and approach your design from the perspective of different cultures, races, religions, ages, genders, and life circumstances.