One thing you should keep in mind is the difference between computer engineering, and computer science. Computer engineering is essentially electronic engineering with a focus on building computational systems. There's bound to be some programming in there as well, but little to none theoretical computer science compared to the other field.
Computer science, on the other hand, deals mostly with what is and isn't computable, and how efficiently. This is at the heart of theoretical computer science, and there are also many theoretical fields that are concerned with something else - graphics, image processing, natural language processing, AI,...
If there's one thing my CS degrees gave me after five years of study, it's disillusionment. The biggest problem with CS is the fact that it is not self-contained. Most of the interesting, hard stuff is built on mathematics, and throughout the degree you'll come to realize the simple truth that most of the stuff is really better done by mathematicians, partly because it was built by mathematicians. Simply because they have more math courses, practice, have solved more problems and were given more of a connected view of mathematics, not a cherry-picked collection of mostly discrete math that is just enough to get by.
Computer science is also a relatively new field, and one that is rapidly developing. I think this is also the reason why the curriculum between different universities varies so much. Engineering, on the other hand, is an older discipline, and in my view, a much more stable one. It will probably give you a broader range of skills than CS, and it is much more hands-on.
Regarding the AI, I assume you read this -
http://en.wikipedia.org/wiki/Artificial_intelligence . Note that the field has its limits, so don't go into it with unrealistic expectations. And check the "Tools section" for the underlying math. The rest of the CS is exactly like this (which is why I think mathematicians are more suited for the job).