Category theory begins with the observation that the collection of mathematical objects of a given kind (groups, topological spaces, graphs, etc...) together with the appropriate mappings between them (group homomorphism, continuous function, graph morphism) is an interesting mathematical structure in its own right: a category.
Category theory, i.e. the study of categories, provides tools that can be applied uniformly to different kinds of mathematical structures and a convenient language to relate them precisely. This course will be an introduction to category theory. The main theme will be universal properties in their various manifestations, which is one of the most important uses of category theory in mathematics. Apart from introducing specific concepts and presenting the key results, one of the goals of the module is to teach you how to reason categorically.
It will be useful to have taken an undergraduate course in group theory or commutative algebra or some other abstract algebra course.
I will try to illustrate notions with examples from different areas, but you may find it useful to come up with examples from your preferred areas.