Edit: I almost failed out of engineering during my first year because I hadn't properly developed the skills and habits necessary for really putting effort into challenging school work. I do joke a little bit about the 51% I got in "intro to statics": since it's a 51% and not a 50%, I know that I earned that 51 and it wasn't a mercy pass :)
As an example, my EE degree doesn't have any out of the ordinary stuff in it. We had a fair bit of latitude in choosing courses, so I went towards DSP and FPGAs, just because I found that stuff more interesting (and easier to be engaged in), compared to say power systems.
My CMPT degree, though, I once again found myself in a position where a lot of it was too easy (A kid who has been hacking on C and assembler for 6 or 8 years is going to be miles ahead of the other first years who are writing code for the first time). So I went ahead and loaded my schedule up with more challenging courses (elective advanced algorithms, elective compilers, etc).
The only flaw with that plan was that most of the harder courses were dual listed as undergrad/grad courses, so when I went back for grad school there were a bunch of courses I couldn't take, because I'd already taken them in undergrad. It all turned out well though.
This changed for me in college. I hope it got better for you as well.