Computer Science Degree for someone who doesn't like math?

<p>My bad .</p>

<p>A lot of software engineering has nothing to do with math. You’re just coding and gluing together components. Computer science is definitely just a specialized field of math though.</p>

<p>Yeah I have a friend who’s dad co owns a software company, and they do all kinds of programming and software architecture. His dad lets him do some projects sometimes and he says there isn’t a whole lot of math involved in the actual work they do but it’s pretty heavy int he degree programs, basically the same as CS. At least it is at my school.</p>

<p>I think that even though you suck at math you shouldn’t let that stop you. If it is something you really want, go for it. Need drives progress, if you want it so bad then you NEED to understand it in order to PROGRESS. Study, and study hard!</p>

<p>Not a lot of CONTINUOUS math in computer science, no. But discrete math is everywhere, and people who are competent at continuous math tend to do well in finite math, and vice versa.</p>

<p>A couple of points:</p>

<p>While combinatorics may be easier than calculus, it is generally considered an advanced subject. Both require a great deal of facility with algebra.</p>

<p>The OP was concerned about studying CS. My comments spoke to that. OTOH, how much math there is in software engineering depends on the project. Even if the project is an implementation of “business logic”, there may be times when it is necessary to do some performance analysis that requires algebra.</p>

<p>Wow, some goofy things have been said since the last time I checked this thread. I encourage people originally making any of the claims I rebut not to take offense… I say goofy stuff too, all the time.</p>

<p>Everything a software engineer does or considers is mathematics, whether the software engineer is cognizant of the fact or not (although, in my experience, realizing this is a huge factor is separating the great software developers from the ones who just show up). It’s a particular kind of mathematics, sure, and not one which mathematicians do a lot of (anymore), but that doesn’t change anything. “Gluing components together”? That’s taking for granted certain axioms and constructing a new object which should have certain properties, by construction - a proof. “Coding”? By the Curry-Howard isomorphism, writing programs is writing proofs. Designing algorithms or data structures? Analyzing performance? You get the idea.</p>

<p>Typically, when people say “calculus”, they mean the introductory sequence that introduces limits, derivatives, integrals, and related notions. To suggest that college-level combinatorics (or discrete, since a CS major is typically exposed to combinatorics, logic, set theory, etc. and that’s what the implication actually Is) is as hard as an introduction sequence like this is, for lack of a better word, laughable. Come on. The way most calculus courses are taught is as engineering service courses, which means you learn delta-epsilon proofs, then a bunch of rules: for limits, derivatives, and integrals. The actual proof content is typically pretty low. Only when you graduate to something like “advanced calculus” or analysis could one seriously make the claim that analysis and discrete math are on closer to equal footing.</p>

<p>People graduate in CS every semester who aren’t good at math, hence at what they do. Many do just fine, make a living and lead fulfilled lives. Same is true of any college major, including all engineering disciplines. You think only competent engineering majors graduate, I’d like a sip of what you’re drinking.</p>

<p>

</p>

<p>I think you phrased that incorrectly?
You meant to say that discrete math is more difficult than an introductory calculus sequence (as described above), right?</p>

<p>Otherwise, this quote isn’t really consistent with the rest of what you said.</p>

<p>^ You’re right, it probably would have been better if I had put it the other way. When I was writing this, I was using “as hard as” to mean “equally as hard as”, in which case the meaning is right. In fact, looking at it again, I think that the meaning is still preserved in what I literally wrote; I don’t think it’s a rule to interpret “a is not as hard as b” to mean “a is less hard than b”, although that does seem to be the more common interpretation… a literal interpretation would be “the hardness of a is different from the hardness of b”, right?</p>

<p>Sorry to digress. But yes, I think discrete math (if you take the whole thing in its entirety) is harder than the (introductory service-course lecture-hall welcome-to-college plug-n-chug) calculus which most people are probably referring to in the context of this discussion.</p>

<p>aegrisomnia - I completely understand what you’re saying. My point is that you can make applications and software without dealing with or being especially skilled in discrete math. Specific niches that come to mind include rich web content and mobile applications. For example, the guy who made the first iOS fart app didn’t need to know anything about asymptotic analysis to make the actual app (nor for the loads of money that came along with it).</p>

<p>I certainly think being good at math and understanding it will make you better than most, but that doesn’t mean you can’t do anything in software without it.</p>

<p>One caveat - I would have failed most of my internship interviews if I didn’t know how to do asymptotic analysis or understand the mathematics behind data structures. So yeah, knowing the math is ideal.</p>

<p>

If you understand what I’m saying, you understand that writing a computer program - in Java, say - is no different from writing a mathematical proof of another variety. Perhaps what you’re saying is that it’s a very easy kind of mathematics that many people can master, even if they’re not good at other kinds of mathematics. That I could agree with; for instance, many people are able to add numbers together given pencil and paper - the manual execution and tracing of an algorithm operating on numbers written as strings in a convenient place-value system - but may not be good at, for instance, proving loop invariants.</p>

<p>In my opinion, you’re creating a false divide between “coding” and “analysis” in computer science and software engineering. If by coding you mean literally hitting the keyboard until your program runs, I would agree that this is not part of computer science; I mean, the fact that we use keyboards to enter programs is incidental (in fact, the use of electronic computers is incidental as well). What remains of coding - whether it’s coding up an experimental algorithm or making a fart app - after you have stripped away what is non-essential, you are left with mathematics. The only difference between Godel’s incompleteness theorem and the fart app is that you (probably) think that former is more interesting or important; that’s an opinion, of course, and one to which you are of course entitled. There are certainly valid metrics for comparing calculations, proofs, etc. - correctness comes to mind - but I’m not aware of any definition of importance which doesn’t come from some other source of human endeavor.</p>

<p>Analysis of algorithms and data structures, formal language and automata theory, etc. are varieties of metamathematical (also mathematical) areas of study which find application when one seeks to analyze mathematical entities such as computer programs. Similar areas of metamathematical exploration include the study of mathematical logic, proof theory, etc.</p>

<p>I think what you said regarding an “easy” kind of math is what I’m trying I get at. It’s so different from the math people are used to that it doesn’t outwardly feel like math at all.</p>

<p>Also, I really need to take a theory of computation class. There’s so much stuff in your post that I don’t have an in-depth knowledge of (barely any idea for some things), and I need to know more, dammit!</p>

<p>Seriously, you don’t need to good in math at all. All you need to learn is the basic programming concept, understand them and learn the programming basic. For example when I wrote a social network in PHP, be honest I never use math at all. All I use is my PHP skill, my programming skill. That’s it.</p>

<p>

</p>

<p>■■■■■■■■? Sarcasm? Can’t tell.</p>