<p>You should find out which operating system and IDE your class will use and get that installed on your computer. Ultimately, as AuburnMathTutor has said, the main thing is writing programs. And that means actually writing programs, not using a visual editor to cobble together forms and actions, and not just cutting and pasting code you find on the internet together (at least not without understanding what the code actually does). It is a good idea to write in the language that will be used in your class, but not really necessary. Any programming experience will help.</p>
<p>You can easily install Ubuntu on your current computer and work with an IDE like anjuta, or even just write your programs in a text editor (a good one with highlighting helps a lot). I think it would be easier to switch from anjuta to visual studio than to go the other way. So even if your introductory courses are taught on windows with visual studio you might want to just start with anjuta.</p>
<p>The book used in my Intro to CS class was Starting out with C++ by Tony Gaddis. People seemed to like it. Though I never read it myself because I have a bad habit of not reading my textbooks.</p>
<p>For math maybe check out some classes on open courseware. </p>
<p>By the way, your exams in a CS class will most likely involve writing programs with pencil and paper and no access to any reference material. This is why I say you should only be hand coding your programs, and you should hand code every piece. Your IDE may start with a template that has the skeletons of a program already in place, but if you use that you will probably forget things when you are taking a test. That was the biggest mistake I saw in my class last semester. Even though our prof said repeatedly that people should always start from scratch hardly anyone did. The people who were completely new to programming were especially bad about this, which doesn’t really make sense to me, but whatever.</p>
<p>If you want a good grade, don’t blow off the pseudocode. A lot of people in my class did, which is probably why so many people failed. If you are throwing away a third of your points on every lab, you are not giving yourself any room for error on your exams.</p>
<p>I’m curious why you have chose CS as a major?</p>