Computer Science-???

<p>I will be attending Florida State University this coming Spring and am really interested in Computer Science as my major. I have done a lot of research and think it is a really good fit for me. I will be taking some classes at my local state college this fall to get a bit of a head start.</p>

<p>My biggest concern is the math involved with CS. Math and science have always been strong subjects with me, but Trigonometry is the highest math I have taken in High School. Looking back on it, I don't really know why. On the map for a CS BS major at FSU, the first math class is Calculus I. In order to prepare myself for this, I am thinking about taking Pre Cal this fall. Does this seem like a good idea or should I do something else?</p>

<p>Another concern is preparing myself for the programming classes involved. I am a very fast learner when it comes to doing anything with computers, but I don't really have any programming experience with C++, Java, etc. I have read posts by others suggesting introductory books which I am looking into, as well as a lot of resources online. So my question is, if I take Programming I with little experience, will I be behind?</p>

<p>Thanks in advance for your time and help.</p>

<p>You won’t be too far behind if you’re a quick learner.
But don’t put yourself behind if you don’t have to. Pick up a good CS book and start working on it.</p>

<p>You can try this test to see how well prepared you are to take calculus:
[Calculus</a> Diagnostic Placement Exam | Department of Mathematics at University of California Berkeley](<a href=“http://math.berkeley.edu/courses/choosing/placement-exam]Calculus”>http://math.berkeley.edu/courses/choosing/placement-exam)</p>

<p>You won’t be behind starting in calculus and whatever the introductory CS course is at your school.</p>

<p>^Eh… not sure that a test from UC Berkeley would be applicable to course placement at FSU.</p>

<p>Although it would be ideal to start off with Calculus I during your fall semester of your freshman year, computer science is probably the only engineering-ish (sp) major where you could start with Pre-Calculus and still graduate in 4 years.</p>

<p>

</p>

<p>Consider going straight to calculus. The only “pre-calc” you need for calculus are trigonometry and other elementary functions (exponentials, logarithms, polynomials, rational functions). The other pre-calc topics commonly taught (e.g. matrices or complex numbers) don’t hurt but don’t actually help with calculus either. Also notice that FSU’s calculus class has as prerequisite EITHER precalculus OR trigonometry. So you really only need to know the material that both classes have in common.</p>

<p>You’ll learn the other “pre-calc” topics in much greater depth in your later math classes.</p>

<p>Unlike NeoDymium, I don’t think that teaching yourself programming is necessarily a good idea. I never got beyond “hello world” in any introductory programming book I picked up and got so frustrated that I dropped the idea of doing anything computer-related. Fast forward to college. I took an introductory programming class to fill a hole in my schedule, did well and almost switched my major to computer science. (I ended up only doing a minor.) </p>

<p>If you can write programs on your graphing calculator, you already got the essential programming concepts down. Don’t worry about learning a ‘real’ programming language on your own before college. (Advanced CS majors are expected to be able to teach themselves new languages at a moment’s notice. Learning more languages is not difficult once you know 2 or 3 languages and know what to look out for; but learning your first general purpose programming language can be daunting without guidance.)</p>

<p>Haha. I actually wound up teaching myself basic Java coding and GWT (google it) so I could get my first internship. Now im seriously considering majoring in it.</p>

<p>To add to my previous post: if you do want to learn a programming language before college, do yourself a favor and start with Python. Java and C++ have too much syntax that’s unnecessarily confusing at the beginning. </p>

<p>Here’s the Java code that would print “Hello World!” to the console:</p>

<p>


class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); 
    }
}

Here's the Python code for comparison:


print "Hello World!";

</p>

<p>Yeah, and python has some really interesting applications to science and mathematics, my 11th gtade biology teacher is still badgering me to learn it and I simply haven’t had thr time.</p>

<p>Hey, did you ever understand what that was of? The public void main. I know system args basically just means that these are the arguments for this system.</p>

<p>

That’s why Java is not a good beginner language! :)</p>

<p>“void” here indicates that the function has no input arguments.
“main” is the name of the function that’s run first when the file is executed. That’s how Java knows where to start if your file contains several functions.
“public” means that the function can be called by other classes. You could also have a “private” function that can only be called from within the class it’s defined in.
“static” means that the function can be called from the class itself; you don’t have to initialize an instance of the class.</p>

<p>The advantage of Python is that all these concepts can be introduced gradually. First you can focus on flow control (conditionals, loops, input, output) and a few data structures (lists or arrays). Then you introduce functions (including side effects, parameter scope, function overload). When students begin to write more complex code, it becomes natural to discuss program organization (classes, instances, inheritance, polymorphism in the case of object-oriented languages). And THEN you can worry about access control (public, private, protected). </p>

<p>Java throws all of this at you right at the beginning.</p>

<p>

</p>

<p>Most schools’ freshman calculus courses are rather standardized, as is the assumed precalculus knowledge that students should have learned in high school. The Berkeley math placement test happens to not be behind a pay wall or student login wall like so many other college math placement tests.</p>

<p>

Oops, I meant no return values. Java requires you to specify the return type of every function (e.g. a string or an integer). The main function never has a return value. In our example, the main function has side effects (printing the text “Hello World!”) but does not return a value. </p>

<p>If a function returns a value, you can assign that value to a variable when you call the function. For example:</p>

<p>temperature = weather.forecast(); </p>

<p>This calls the function “forecast” in the class or class instance “weather” and assigns the return value to the variable “temperature.” The return type would probably be an integer or maybe a floating point number.</p>

<p>Thank you all so very much for your help. Knowing what I know now makes things less complicated. I took a look at the UC Berkeley exam and I already knew a lot of the stuff on it from trig. That made me feel a lot better about the whole thing.</p>

<p>Im actually really excited because I thought I was in the same boat that you were, then I took a look at the actual material and ill be finishing calc. 3 the summer after senior year of high school!</p>

<p>

To say that Berkeley’s calculus courses are of comparable difficulty to FSU’s calculus courses would be stretching the idea of “standardized education” too far.</p>

<p>I also concur with what other posters have stated, in that Python is a better language to learn first than Java.</p>