The course covers a broad spectrum of topics with proper amount of details. The lectures focus on mathematical concepts, proofs and algorithms. Homework assignments cover mathematical proofs, calculations, problem formulation and algorithm implementations. The exam papers are comprehensive and very long; be aware of the time!