Content:
As mentioned, this subject is a combination of Discrete Structures and Theory of Computation.
The first 4 weeks covered formal logic all the way from AND and OR to 'mechanised reasoning' - algorithms for proving results from a set of assumptions. There's a lot to pick up here which is why I recommend checking out some basic textbooks before you go in, to let the ideas settle before you actually need to run with them.
Formal logic can get a little out of hand at times but there's always a logical interpretation of whatever is going on, grounding everything in intuitive terms. If you always search for the intuition underlying a definition or theorem, you'll see how nicely this all fits together. Harald doesn't always present that intuition for you in the lecture, but it's worth searching for it!
Next up is 3ish weeks on some discrete maths topics, from sets to relations and functions to 'orders' and 'well-foundedness'. There are a lot of definitions going on in this part of the course, and they're mostly all framed in formal logic notation, so it's important to keep up or at least spend the time to break things down and find out what they are really saying.
The final 5 weeks are a tour through the theoretical underpinnings of computer science using all of the material covered so far. More than anything previously, these topics are quite conceptually heavy AND the presentation through big symbolic definitions also betrays how natural and intuitive these concepts really are, so it's worth working at them to find the intuition underneath all of that. This may require either preparing extensively beforehand by pre-reading either computing textbook, or spending adequate time afterwards slowly developing understanding of the concepts.
In particular, the lecture series I linked in the textbook section was really really great for developing the intuition behind this part of the course.
Assessment:
Unlike other COMP subjects, there is