<p>I was in this same position last year.</p>
<p>Always did fine on projects but below average on midterm/finals.</p>
<p>I averaged a B- (few C+'s, few B’s) on all the lower div CS classes.</p>
<p>Upper Division classes in my opinion are actually curved MORE. (easier to get B’s) The material gets more complex but it is only more complex because it assumes you understand the knowledge you learned from CS 31/32. I’m [taking/have taken] 3 upper divs. I’ve gotten a B in one, and am expecting an A/B in the others. Try to plan your schedule around good professors and go to Office Hours if you don’t understand a topic.</p>
<p>I am not entirely passionate in programming, but I do understand how it works, and do understand the material I learn from class. I’m not the best test taker, but so be it.</p>
<p>So yeah, as long as you enjoy the topics you learn, then stick with it.</p>
<p>Ask yourself, is there any other major you would actually enjoy doing and eventually starting a CAREER in?</p>
<p>I also have a friend who stayed two years as EE, hated it entirely, switched to BizEcon as a junior, and now loves it and even got an internship with Deloitte. You can try some other intro classes like Management 1A etc.</p>
<p>Really try to make up your GPA from the other classes you take. I’ve never gotten an A in a CS class, but I’ve gotten all A/A-s in the GE classes I’ve taken. Really strive to get above 3.0 even if that means buffering it with easy GE’s.</p>
<p>Also, from what I have seen, most CS graduates from UCLA head towards Software Development. This is not the route I want to follow, and it doesn’t seem like the way you want to go either.</p>
<p>Do some reading on these careers:</p>
<p>Program Manager
Business Analyst
IT Consultant
Information Systems
Information Technology</p>
<p>do any of these interest you? What do you want to do after you get that diploma?</p>