Graph Homomorphisms and Universal Algebra Course Notes