Computer Science Questions...

<p>Hi there,</p>

<p>I am about to be a senior in High School and have obviously been researching future career options. Only two sparked my interest: Agronomy and Computer Science. I researched into both and CS seemed to have the best overall future for me. The problem is this: I have no experience with Computer Science at all.</p>

<p>The first issue with the CS is math. I am not sure if I have taken enough math in High School for computer science. I have taken Geometry, Algebra II, and Pre-Engineering so far as math classes. For my senior year I am taking Pre-Calculus. Will this be enough math experience? I was solid at the Pre-Engineering and Geometry but my Algebra II was slightly weak, especially second semester...mainly because of laziness. I scored a 23 for math on my ACT the first time I tested, I await my score from April which I feel I did much better at.</p>

<p>How much of Computer Science is REALLY math? What should I study up on before college?</p>

<p>My other question is this: What should I learn in High School next year for my Pathways Computer Science class? Basically, it is independent study and I have 50 minutes each day to learn anything related to computer science, what would you suggest I concentrate on? If you have any suggested textbooks that would be nice as the instructor has stated that he has a fairly large budget for CS books since it is becoming popular.</p>

<p>Thanks.</p>

<p>CS is a fair bit of math and even more applied mathematical logic. You would certainly be well-served to be intimately familiar with at least calculus for your upper division courses.</p>

<p>As long as you are taking Pre-Calculus in your final semester, you are OK to take CS in college as just about 99% of all BSCS programs start with Calculus I of the fall-term freshman year.</p>

<p>I started with Calculus 1 as a college freshman and majored in Computational Mathematics which is basically a hybrid Math/CS degree. I went on to a M.S. in Engineering.</p>

<p>I had a GRAND TOTAL of ZERO AP credits and my first programming course was in college.</p>

<p>You will be OK.</p>

<p>Just to add; since you have no experience, the beauty about CS is that you can really easily self-study it.
Also keep in mind that since you don’t really have exposure to CS, you may very well decide that is is not for you after taking several classes in it.</p>

<p>Do you know what programming language the class is in?</p>

<p>Don’t go for CS solely on what is perceived as “bright future” for the graduates. Not only is that partially false, but it’s also true that CS is excruciating for people who have no genuine interest in the subject.</p>

<p>Try programming. Go to Java website, download the developing kit and look for tutorials online. I did it for a year before my college application and I knew what programming was going to be about. My coursemates in college however, were mostly not aware of what is going on in CS major. Result? About 5 of them shifted out and many of them had to face bad grades and failures.</p>

<p>It’s pretty much like any other engineering/science subjects. If you’re not interested in what’s being taught, you WILL be left behind by those who are, and you’ll be one of those CS graduates whose jobs get taken by the real enthusiasts.</p>

<p>So here’s your first priority: attend a few programming classes or go look for stuff online. If they don’t interest you even a bit or bore you out easily, then consider CS out of your options.</p>

<p>One more thing: if you’re into gaming or the internet and that’s the reason why you’re looking at CS, think again. Those were mostly the reasons of failing people in CS.</p>

<p>Take a look at a Discrete Mathematics book, something that covers graph theory/combinatorics/probability/etc. in a proof-based manner. That is the kind of math you will need to master for CS (along with linear algebra). This should also be a course you take first semester in a CS major, so studying a little bit for it now could be a good idea.</p>

<p>You really only need very basic calculus for most of CS, a BC level is actually sufficient. In fact all of your core undergraduate CS courses won’t use calculus at all. Graphics/computer vision are probably the only two areas which use advanced calculus, and the former mostly uses numerical methods and approximations which aren’t really covered in standard calculus courses anyway. </p>

<p>Pre-calculus in high school is something you can skip, it’s pretty much a repeat of algebra II and trigonometry. Just take AP BC Calculus senior year.</p>

<p>

</p>

<p>Computer science <em>is</em> math, it’s just discrete math rather than the continuous math that most lay-people think of as “math.” Discrete math is stuff like lambda calculus, logic, boolean algebra, counting and probability (okay, probability leaks into continuous math), set theory, and into the CS stuff like formal languages (context-free grammars), automata, data structures (trees, arrays, strings, tuples, trees of tuples, arrays of trees, strings of tuples, etc.) and algorithms (things like recursion and loops, and using recursion to parse trees or implement a context-free grammar, or searching and sorting algorithms).</p>

<p>“Computer science” is really a branch of math and a “computer science degree” is typically 10-30% theoretical computer science, and 70-90% applied computer science, aka programming and learning about OSes and databases and what all of that theory stuff is <em>for</em>.</p>

<p>So if by chance your school offers a discrete math class, then take it. Otherwise I suggest just doing some programming.</p>

<p>

</p>

<p>Wise words. I love games, games are great, but a love of gaming and a desire to create games is not enough to make you go through a rigourous CS program at a quality university. It’s the reason I dropped out of college my first time around: I love games and wanted to make them but hated everything that I perceived as being unrelated to that (for example, calculus). You don’t really need programming skills to make games anyway. You can download engines and SDKs and level designers for free and make games with those.</p>

<p>

</p>

<p>Let me amend what you wrote there: The <em>implementation</em> of graphics and computer vision relies on numerical methods and approximations (as do physicists), but the underlying abstract version of the algorithms, use good ol’ calculus/vector analysis.</p>

<p>Having worked briefly as a game programmer (for an Xbox 360 and PS3 title), I can tell you that game programming isn’t all it’s cracked up to be. Spending months tweaking and debugging the Unreal 3 engine while getting paid 60% of what your former classmates are making (and working longer hours) isn’t all that much fun.</p>

<p>The game designers are the ones having all the fun… and most of those guys don’t have technical backgrounds at all.</p>

<p>^ I would have guessed. As much as I love games until now, the first thing I thought when I encountered the whole computer science was, “game development is not the way to go.”</p>

<p>Game companies tend to churn n burn talented programmers. They can still afford to be selective and find new talent because there are so many college grads willing to take on less money and longer hours to work on a cool game, but most guys tend to get burnt out in a few years.</p>

<p>Alright, thanks for all the replies so far.</p>

<p>@TerenC - The class itself can be in any programming language I would like it to be. Our school’s Pathways class is very loose for the method of learning. Any specific language you would suggest I start with?</p>

<p>@Melody10511 - I didn’t select it as an option for a bright future. Out of all the majors offered at most colleges it sparked my interest the most (Other than Agronomy, which does also). I HAVE done a bit of C++ this year, I was the only programmer for my FIRST Robotics team and I did it all in C++, I am sure that programming the robot was simple compared to most things in the programming world but I did find it fun to do.</p>

<p>If you had fun, you’re definitely welcome to CS. :)</p>

<p>Yes, if you did something in C++ and had fun that’s a very promising sign.</p>

<p>Also, look into some of the game development resources online. Even though it’s not a great career path, it’s a great and relatively easy way to learn many programming concepts.</p>