That is to say, is that which pertains to Turing machines, automata, computer architecture, computability theory, and the like exceptionally difficult in comparison to, say, biology or mathematics? Does it require a “different kind of intelligence” (I assume that studying it would mostly require a combination of memorization and calculation skills, which is which I mentioned biology and maths)?
I am not asking concerning maths and programming. Those are the most “obvious” parts of computer science. I am only asking concerning pure computer science and theory.
That said above, not everything you listed is a theory course. Computer architecture is usually a more practical class about how computers are designed and usually use practical examples. All the rest of the stuff you described is a single class in most degrees.
Many core CS courses beyond “programming” are about various aspects of CS such as operating systems, programming languages, compilers, networks, distributed systems, algorithms, databases, and more. Most of these courses involve programming but are more focused on the concepts themselves, but in a practical manner typically.
Example: In a networks course, one may find themselves writing a basic version of an internet protocol from scratch. Yes, it’s “programming”, but it’s getting at the core idea of what makes the internet work.
I wouldn’t say any are exceptionally difficult, it’s just different. It’s usually not the combination you listed though. It’s more a conceptual understanding, some very light memorization, and then practical application knowledge. In the end, CS usually comes down to problem-solving. Any good course should be teaching that in the introductory courses - programming is just a tool for it.
I found the theoretical classes in CS to be kind of monotonous. I still find CS theory to be rather monotonous because I prefer hands-on, practical knowledge. Other people are totally the opposite, though.
Having TA’ed and taken grad-level courses on these topics, they’re more math/logic/problem-solving oriented, and I can’t really compare the difficulty to a completely unrelated course such as biology (of course, if you tackle open problems in complexity theory, that’s a different story…).
There isn’t really much “memorization” involved beyond understanding various definitions and how things relate to each other - for example, knowing what sets of languages DFAs/NFAs or pushdown automata recognize, or that PSPACE = NPSPACE.
Since you mentioned a loosely defined “different intelligence,” I would suggest CS also requires a penchant for elegance as a clean* design/implementation is a gift to your compadres while an inelegant one isn’t. That said, I would expect a CS degree to have substantial overlaps with a math (particularly applied; our local flagship has an applied math option called “Discrete Math and Algorithms”) curriculum.
*In my experience, clean code doesn’t always win as a crap design and/or implementation can often overwhelm a better one when it has first mover advantage. Richard Gabriel’s “Worse is Better” essay deals explicitly with this topic.