A really fun course, especially if you're mathematically-inclined, or you're interested in theoretical computer science. All of the assignments and exams are proof-heavy, so you'll need to be pretty well-versed in formal proofs and proof techniques. If you've done
COMP3821, you may have been introduced to the P/NP complexity classes already, which is the starting point for the course. There's a lot of hardness reductions (if you know what they are) throughout the course, and quite a bit of construction, requiring a different kind of problem solving than many of the courses that you've done beforehand. I really enjoyed this course though, probably more so than any previous COMP course.
Content-wise, you start off going over some very basic proof stuff, revising some of the techniques from
MATH1081, but the pace picks up pretty quickly. The whole course revolves around the foundations (not the basics) of theoretical computer science, from defining basic complexity classes like P and NP, leading to more involved classes like PSPACE, L, etc. Towards the end of the course you'll start looking at the polynomial hierarchy, and some of the more unknown areas of computer science with some (less-known) open problems.
Once again, I highly recommend this course to anyone interested in theoretical computer science.