Basic Category Theory for Computer Scientists (Foundations of Computing)