The following may seem emotionally loaded, because it is:
You are not alone. At your age, my state of mind was identical. That said, with my experience today, I don't think my conclusions were valid. This ignorance led to two years of anxiety and temporarily crushed dreams.
At 15, I was on top of the world. I didn't even have to try, yet teachers constantly praised my intelligence. School, it seemed, was a bore. They didn't teach anything useful. I didn't need physics, biology or planar geometry. What a waste of time.
At 16, I drifted into angst, fueled by the negative feedback loop I had created. Like you, I wanted to go to an MIT or a CMU. I didn't know specifically why, but someone of my intelligence must be able to get there, if only I tried.
At this point, I had a year left of school. This year I would try. I wouldn't procrastinate; I wouldn't fall behind. I would score perfect on my SAT-II's. I would get into MIT.
But I didn't.
My procrastination, my arrogance, my denial, my lack of formal training; Combined, they led to the demise of my dreams.
My options now were: a) go to college and work my way up to university; or, b) major in something easy, like business administration.
I couldn't throw aside my arrogance and pride to do either. So I took a job at a software company doing data entry. All I had left now was my existence and faint hope. Someday I would do something with my life other than pushing macro keys all day.
Now, this story doesn't end in disaster, but it does get somewhat worse before the sun comes out, the storm dies, and my path became clear.
Enter friend and co-worker:
He, just like me, had only finished high school. He was 28, he drove a 20 year old car, and he lived in a tiny room in someone's basemint. He wasn't (and still isn't) qualified to go to University, and his parents had long cut him off, so he didn't have any money or time for books or re-learning everything he needed to know to pass an entrance exam for university (although he did have a brief stint at a small college). Unfortunately for him, he was expendable - and so, had to worry about paying the bills each week -- forget the patience to systematically re-learn everything. This made him sad, as was conveyed directly and indirectly in the conversations I had with him.
I had immediately recognized the parity in choices, but it took a while longer to recognize that this would be me in several years, unless I got my act together.
Since I'm running out of space here, I'll make it short. To gain entrance into University (CMU in my case), I had to:
* re-learn calculus, including simple differentials and derivatives
* actually learn physics this time around
* re-take SAT I (got 1460 first time, got 1530 second)
* re-take 3 SAT II's (received > 750 for all three)
This was a tortuous and exhausting process, given I was working from 9 - 5+ every night before starting my work. Luckily my state has an independent learning centre where I could receive credit while working in my own time, as it would be impossible otherwise. I also had help from several co-workers in understanding the calculus. Were it not for them, I would be lost, even despite my success with autodidact methods. And then there was entry. There was no hope at entrance of CMU until I met someone at the company I worked at, who used to be a professor there. He wrote a letter of recommendation and pulled a few strings so that I could gain entrance without credentials, so that I didn't have to wait until I was 21.
So here I am. The hard work was exhausting, and as much as I'd like to say it resulted in my goals acheived and doors opened -- it's not true. I was and am extremely lucky. I'm 20 and I'll be entering second year in the fall. I plan to declare a double major -- computer science and mathematics. I would have been a senior if I hadn't otherwise decided to take the metaphorical bumpy road out of stubbornness and ignorance.
I have learned a few things that you may or may not find useful:
* the oft repeated phrase, "you have to learn for your self -- school is only there to help you along" is true in the sense that you can slog through both high-school and university without actually learning much. It's up to you to determine how much you want to learn beyond the utter basics, immediate projects, and the final exam.
* If you're taking CS at a decent University, you'll definitely use most of the high school level material learned in the 11th and 12th grades. If I'm not mistaken, you will be taking pre-calc and basic calculus. Your math strength is a large determinant of your strength as a computer scientist. Understanding of physics will help your understanding of circuits, and therefore microelectronics and to a lesser extent computer organization. To get through "Introduction to Algorithms" you'll for sure need a solid background in at least high school mathematics (you'll be taking discrete mathematics parallel to into to data structures courses).
Anyway, my advice if you are, indeed, not a unapplied prodigy:
Hang in there. If it gets boring there are infinite subjects you can look into on your own. Having gone through all this before, good grades are not only important - you must also grasp all the material. Otherwise you may find yourself behind. This has happened to me because of the lack of focus in my recent youth, and I found I had to spend a lot of extra time iterating through a problem back to material I never learned properly in high school.
If you get bored there are a few probable options:
a) ask the teacher for extra work
b) study ahead on your own
c) make sure you've got down the requirements for University (I don't see why you still can't get into CMU if you work hard)
If you feel that high school is boring:
* the first few years of university are somewhat boring as well -- provided you only focus on what's being directly put in front of your face. In third and fourth year of a computer science major, you can take courses in robotics, ai, natural language processing/computational linguistics, databases, algorithm analysis, software engineering, Human-Computer Interaction (HCI), compilers, automa, agents, etc etc. In University you can investigate all these on your own time before actually taking said courses. That said, your courses will take a lot of time so you won't have too much time to do this. Know, however, that it's not recommended to start on page 50 when you should really be starting on page 1. We all like to believe that we can turn on our intelligence at will and perform extemporaneously -- but it's not true. Someone stepping up to a piano and playing a complex song impromptu has had years of training. The same goes for computer science -- or high school for that matter.
I mention the last point, because just the other day I noticed a second year student asking the question paraphrased, "we learn all these methods of proving or disproving theorums, but I can't see how this is helping my software design and coding abilities". What he doesn't see - and this is similar to your question - is that all the runtime analysis, multivariable calculus, euclidean geometry, sorting algorithms, linked lists, btree's, permutations, statistics, combinatorics, file structures etc, are directly related to being a good software developer.
Anyway, I'm rambling here. If you really feel you are capable of skipping the rest of high school, then I'm assuming you know about:
* basic calculus, including derivatives
* pretty good grasp of newtonian physics
* anything else you'll need to pass entrance exams to whatever University you wish to attend
If not, you can always spend the next two years:
* getting your grades up (i.e., actually applying yourself)
* searching out topics of interest outside of course material (such as, maybe, economics [may have to take macro or micro first year], learn a programming language, or two (otherwise you have to take an into programming course first year) or english literature, or psychology, or maybe just jump ahead in math and hard sciences) -- provided you are getting decent grades in the material already presented.
Well that's 35 minutes of my point of view.
I'll end off with some stuff that may spark your interest:
http://www.gamasutra.com -- programming/computer science in games (path finding, design, 3d modelling, particle systems, artificial intelligence, development and design methodology, textures, etc). Click on the features section. They even have a cool post mortem section by leads and programmers of current games.
maybe look up:
John Von Neumann
History of mathematics:
I spent an entire weekend once, reading through this site chronologically.
Or, just read biographies of people in the said industry you wish to get involved in. You'll then, therefore know what is potentially needed to meet said personal goals.
Of course, I'm only a student who has recently finished first year. If you look, you should be able to find many opinions that are more insightful and eloquent.