CS at Berkeley can lead you down many paths. Either EECS or LSCS allows you to take the same paths. There are very few differences between the 2 majors - the only significant one is that one is a direct admit but much harder to get into, while the other is a wee bit easier to get admitted, but requires a certain GPA from 3 CS core classes before you can declare for CS.
At the upper division level, there literally are no classes that you are forced to take (other than the one design class). You can choose 5-7 (or more) CS classes of your liking. The 17x series of undergraduate classes is all on theoretical computer science - algorithms, intractable problems, computability, etc. Also, some of the 19x classes get into things like cryptography and quantum mechanics. Quite a few CS students go down this path. The graduate school has a similar setup, your 27x and 29x classes are advanced versions of the undergrad variety.