Commutative and Non-Commutative Algebra