Basic Category Theory for Computer Scientists, Foundations of Computing Series