I'm a first year computer engineering student at one of the top 14 Universities in the world for engineering. I originally majored in computer engineering because I wanted to focus on lower level programming such as C/Assembly instead of ending up doing grunt work for some startup using Ruby on Rails (or any web development job) which I'd probably get with a CS degree. 100% of my interest is computer science, I've been coding since 12 years old and I really love low level coding, security, reverse code engineering. I also find math enjoyable, like discrete math, or mathy computer science courses like complexity analysis. I find myself looking forward to summer, so that I can do this stuff all day. But my problem is that I'm not really enjoying my courses at all. For example, all of my interest is in the computer science/math area. And my grades are suffering in physics/chemistry because I really don't like these fields that much. I'm getting slightly above-average grades (mid 60's, average is high 50's to low 60's) in these areas. The hard reality has hit me: In engineering I'm going to have to take 4-5 physics courses per semester until I graduate! My computer engineering department is waaay more electric than computer, and I really only have like 5-6 computer science courses that I can take in 4 years! (operating systems, data structures & algorithms,c programming, c++, and assembly for microcontrollers, and compilers) But in math/computer science, I'm getting A/A+'s even though the class averages are even lower than that of physics. Despite spending all of my time studying physics, and not even touching courses like linear algebra/calc2/coding and acing them, I really feel like I need to transfer if I want to end up in grad school for computer science. (This is my end goal, I'd like to get into compilers). One thing that I really hate about physics is that I should get every question right, because I know how to solve these problems. But every now and then I'll make a silly mistake (like a calculation error) and the marker will deduct 50%-75% of the mark from that question. And when you take into account we only have 3 questions per test, losing all of these marks (on one question) is the difference between an A and a D. This makes it insanely difficult to get a good mark in physics; they don't even give us enough time to check our answers for physics quizzes, and they force us to use these shitty calculators which the buttons sometimes don't register your input and therefore end up sucking your marks away). I used to love physics in high school, I'd easily get 100% on every test without even trying (and the teachers hardly deducted marks for wrong calculations, so as long as your process was right. Not only that, you could actually use a good calculator like the TI-30X which never jammed and had a nice display, or any calculator you wanted!). But I'm starting to get bitter and hate physics because of how the Unviersity operates (it feels like they are unjustly stealing marks from my tests- and everyone elses tests too). You haven't been pissed until you've got your physics midterm back- getting a 68% despite answering every question correctly... except for making some silly calculation errors like your calculator jamming (the one they force you to use) and dropping from an A to a D. Needless to say, I'm pretty sick of this and am thinking about transfering to computer science. One problem I've encountered is the computer science department is being stingy because they're basically being flooded with applicants. To transfer, I need to take two computer science courses in the summer and get 67% to transfer into comp sci. (Should easily ace both of them, because I already know ~99% of the content). But I'd have to pay for another engineering semester (which is pretty expensive) and even then there is no guarantee they will accept me. I've considering dropping out of Uni and reapplying for computer science... but then I could have been in my third year of engineering :( Even though I aced the engineering coding classes without ever going to class- they won't accept me unless I take these two extra courses. One is basic discrete math, and I think the other is some really easy crappy coding course in python, which looks like the equivalent of something my 14 year old cousin could do. Another thing I've considering is just dropping out and doing math/computer science for fun, as well as making my own startup. Does anyone have any advice for me? And would anyone happen to know what major would better fit my interests of low level coding/operating systems/compilers/reverse code engineering?