Applications of Categories in Computer Science