I'm sure this depends a lot on what your preferences are. I just finished my undergrad in computer engineering at Columbia. I thought the project-based classes (and the vast amounts of work they entailed) were the most valuable parts of the program. Sure, you'd probably get higher grades if you just minored, but when it comes to hiring for software engineering jobs, companies tend to care more about what you know and what you've done than what your grades are. And you're more likely to know more about CS and have done more interesting projects if you have taken difficult project-based classes like operating systems, embedded systems, and programming languages and translators.