I used to think that computer science was all coding and making software. That displeased me greatly since I'm not the greatest at coding. Certainly not one of those people who started at 10 or even 16. It's not that I'm fundamentally bad at it, but I just tend to dislike it. Yet I am drawn to some aspects of compute science like the BigO stuff. I think I'd be perfectly alright with an advanced course about the algorithmic complexity since it seems fun. I also do like coding when it's to construct a date structure from others, like a binary tree from linkedlists and in general I'm still at the point where finding a cool way to do something recursively makes me happy inside. I'm also reading a book on cryptography right now and I like the stuff... But I hate the stuff the involves coding a program to output a company's payroll statistics or anything involving GUIs. So in short, I really like the parts of computer science that are sorta math-related but I hate the parts that are practical. Should I just stick with math and go down some path involving that stuff or could I major in comp sci despite not being the best progammer?