Everything that falls under the umbrella of the term computer science can, in my opinion, be put into one of three categories: theoretical comp sci, algorithms, and coding. Theoretical comp sci is math. You don't need computers to do it and this is the foundation everything else is built on. Algorithms are all the specialized knowledge that fields like AI, machine learning, rendering, databases, etc use. You still don't need computers to make an algorithm. You need theoretical comp sci if you want to compare algorithms or determine if your desired result is even computable. Finally, you've got the implementation of those algorithms. This category is closer to doing a trade than anything else. This category includes all the stuff like choice of languages, should I use OOP, and other software engineering considerations Of the three, this is the category that most computer science graduates spend most of their time on.
The third category is mostly, if not all, implementation details. The fact that this is most of the work doesn't change that. I'd argue that most of the second category is implementation details as well.