<p>I'm going to be a senior in high school in the fall and by next year I will have taken 20 AP exams. My dilemma is that my school is rather poor and I will have 4-5 free periods next year because I have literally run out of courses (I self studied for several of the APs as well. Now I really do not want to catch Senioritis so I am considering taking some paid college courses online that will work towards my undergrad. I already know that I am definitely getting a degree in computer science. Some classes that I am considering taking are multivariable calculus, linear algebra, modern physics, organic chemistry, or some kind of computer science course. It would be much appreciated if I could have some advice on the matter - what courses I will definitely need, what might help me with my intended major the most, what type of computer science class I might take, what university I should study from, etc. Thanks in advance!</p>
<p>Discrete math and linear algebra are likely to be required for CS majors everywhere. Differential equations may be required for schools where it is combined with linear algebra in one course (i.e. if you take just linear algebra, you may have to retake it as part of a combined linear algebra and differential equations course).</p>
<p>Engineering-based CS majors typically require multivariable calculus and a year of calculus-based physics.</p>
<p>All of the above are often available at community colleges as well as four year schools. You can check your state’s flagship university to see which courses at community colleges (and possibly four year schools) are most likely to be transferable.</p>
<p>Organic chemistry is generally not useful for a CS major (some CS major programs have an option to take calculus-based physics, general chemistry, or general biology, but organic chemistry is not required). Physics is generally the most useful of the sciences for CS (in case you go into hardware/electronics, or game development), unless you are looking at specific applications of CS to chemistry or biology.</p>
<p>Frosh/soph level CS courses can vary considerably between schools, so transferability of courses can be unreliable. The frosh/soph CS course sequence typically includes an introduction to programming and CS concepts, data structures, and systems. Some schools use several programming languages to teach the various concepts; this is generally desirable compared to using the same programming language for everything.</p>
<p>Don’t forget that there will be breadth requirements, unless you go to Brown or Amherst. So consider taking some humanities or social studies courses, of which there are more subjects offered in college than in high school. If you want to learn a foreign language not offered in your high school but offered in college, that can also be a possibility (note that college foreign language courses cover material much faster than in high school).</p>