The Ethical Algorithm: The Science of Socially Aware Algorithm Design