Reconstructing the ACM code of ethics and teaching computer ethics | Synapse