In my experience you'll be amazed at what you can achieve if you're willing to work hard. Being able to take a large workload on has less to do with how smart/capable you are and more to do with how much work you're willing to put in.
I agree with this. I have had almost all CS classes the last 3 semesters, at least 3 each semester, with a sprinkling of CIS and Math courses too, and I've been getting better grades than I did when I started.
When I was taking easier courses the first few semesters I had more trouble doing the work because of the differing work types (I had trouble switching in and out of code mode) and because I simply didn't want to put in the work; I was spending less time and it was less effective time. I've started putting in significantly more work and my grades have improved dramatically, all As and Bs in my final 3 semesters, taking 300 and 400 level classes, while I got a D and had to retake my level 200 algorithms class because I was too lazy to study and do the work, and the only other thing i had to do was easy electives, which I also didn't do too well in.
It can, depends what kinds of papers you decide to take. I have personally focussed my degree on software engineering, programming and algorithms papers, and have done less of the theoretical stuff. I think most academic computer "science" is a lot of mental masturbation (not to say software engineering isn't - it's a pathetically unscientific discipline filled with hunches, half-truths and guesses). Sadly, you can get through a comp sci degree with barely more than a rudimentary understanding of programming if you want to.
Addressing the italics:
Yeah, I agree, but at the same time this is my favorite part of my CS degree. It's less than practical in the real world many times, but so damn interesting, enough so that I'm going back for my masters after I take a year or two off (need a break and some money). For those looking for advice from this thread: I highly recommend taking at least one of these courses if you don't absolutely hate that part of it in the early foundation classes. I think they're fascinating, and have helped me develop the way I think, so even if I never use the material again they weren't a total waste.
Addressing the bold:
This is pathetically true, I can't believe how poor some of the people in my comp sci classes are at programming, even the most simple of tasks. In one of my 400 (senior/grad) level classes last semester I had to spend almost 10 minutes trying to explain to my partner for a group project why she couldn't use a loop variable that went to several million to index into an array of only a few thousand entries. I will admit I'm not the best person to explain things, but after about 2 minutes I actually wrote down the numbers for a simple sample run and it still wasn't getting through, so she finally just said she'd take my word for it. I can't imagine how she got anything done if she was doing that the whole way through, yet somehow...