Applied algebra for the computer sciences