If you want to go more toward the software engineer approach you have a few options. You can stick with CS, but try to work on actual projects. For example, you can contribute to an open source project or start a company. The main thing is to work on projects that aren't cookie-cutter tasks, such as the ones that are common in school.
Switching majors so you can learn something new is also a great option. What are your other interests? If you do go with the school route, you will probably learn more about problem solving by learning a new field. You can still use your programming skills with many majors.
Another option is to get a job. Frankly, I think college is overrated. School is good, but there it is not the only route. You could probably get a good position at a startup, and will probably learn more than in school.
I didn't get interested in programming until I was a sophomore in college. I graduated with a BS in Engineering Physics. I'm glad I didn't major in CS, and I was still able to pursue software development. You will have plenty of opportunities in school to try new things. I have to say that I have learned more about problem solving (at a faster rate) while in the workforce, than in school.