I am confused by the term "theoretical computer science". How can I distinguish which part of computer science are considered "theoretical" and which not?
To expand further, take Machine Learning. Is the study of Machine Learning Theoretical Computer Science? To me it is, because we are studying the computational qualities of learning, without declining our study into a particular technology or application, but usually, I hear machine learning spoken as a part of applied CS or engineering.