It seems as if you don't enjoy what you are doing. I'm in college and this is my fourth year as a CSE (computer science/engineering major). The programming assignments should prepare you for the written exams/test and the real world industry. Computer Science/Engineering isn't limited to just writing programs, but understand the architecture and design patterns. If programming was a passion of yours, test/exams should be a breeze. I don't remember the last time I actually tried to cram/study for a test or even a final. It's because I was applying everything I had learned. The data structures and the concepts. I begin to read and understand how software works because I wanted to. Then I realized that I already learned a lot of the things they were telling me in class. So classes was just a practice/review.
Don't drop out my friend. Hang in there.