Should I try for a computer science degree?
July 26, 2008 10:53 AM   Subscribe

What natural proficiencies would I need / want to have in order to get a degree in computer science? I have some issues with math, and am not sure whether that's a dealbreaker.

I'm contemplating going to night school to get a degree in comp sci, but I'm very worried I'll get into it and find I'm not cut out for it... I'm your average geeky girl, have always liked computers, etc., though I've never been educated in any programming languages. I have no college degree and think I would enjoy a career a comp sci degree might make available for me.

My big worry is that there are some areas of mathematics that I'm weak in, and have been all my life. Basically I grasp math concepts easily, and do well in the more advanced math classes, but relative to my abilities in that area, I'm not very good at math mechanics, if that makes sense. When I was testing for math placement in college a few years back, I got higher scores in algebra than in remedial math... I got an A in physics in high school but really struggled through junior high math classes.

Basically the fewer actual numbers involved, the better I am at solving a problem. This is due to my tendency to transpose numbers, and I'm not great at doing addition and multiplication (forget division) in my head. I even screw up while adding single digit numbers in my head on a not infrequent basis. I was never, at any point able to complete the 60-times-tables-in-60-second thing all my other classmates were able to do.

I'm a smart girl, I'm a huge fan of physics, I did awesome in calculus, but for whatever reason, I may add 9 and 5 and come up with 13... If I'm asked what 7 times 7 is, it'll take me a bit to come up with a result, and it may not be correct.

Does this rule me out for this degree? I don't want to start trying for it and fail... if the math involved is more conceptual, or, say, the type you can use a calculator for, I could do well at that. But I do get the impression it's a math-heavy area of study, and don't want to flunk out.
posted by FortyT-wo to Education (32 answers total) 9 users marked this as a favorite
Thank you for asking this question.
My math is as yours though likely less and its always been tough with me. I love Physics, Astronomy and science, but the math always eluded me and its so frustrating.
I'm interested to see answers back on this....I would (probably like you) do extremely well in this industry (I am a problem solver, I currently work as an Intelligence Analyst) but the likelihood of people "taking a chance" on you is disparaging at best....

Good luck, God bless
posted by TeachTheDead at 11:02 AM on July 26, 2008

You sound a bit like me, and I managed to pull off a degree. :)

I definitely think you can do it. The hard part for most people is multi-variate calculus. There is little focus on mechanical math and I seem to recall being allowed to use a calculator, in general.

I think there was perhaps one class early on that required you to be able to, say, convert hex to binary without a calculator.
posted by meta_eli at 11:08 AM on July 26, 2008

Also worth pointing out that there usually is a difference between Computer Science and Computer Engineering. Comp Sci is supposed to be the theoretical one.

This is actually the thing I heard many other students complaining about. A lot of people just want to learn programming and pick up some buzzwords for the resume, not worry about Turing's theories on of computational complexity.
posted by meta_eli at 11:11 AM on July 26, 2008

My school offered a liberal arts degree as an alternative to the hard science engineering-type degrees for comp sci. I am terrible at advanced maths - absolutely hate algebra and calculus. I made it through with Cs in my math courses, but I did make it through and if you did well in high school calc (I didn't) you'll probably be fine.

All schools are different. It really depends on the program. You probably can eek by with the bare minimum of requirements and do okay. Ultimately you'll need to sit down with an adviser and talk about the requirements. Its okay to admit to an adviser that you're worried about the math requirements.

My recent modus operandi has been to discourage people from pursuing computer science in the hopes that it can lead to some great career in IT. Fact is the industry has changed a lot in the past 15 years and comp sci majors are not in as great a demand as they once were. With industry farming out much of their IT support only advanced developers and designers are in a position where they can pick and choose their job.

You'd do a lot better and go a lot further pursuing some sort of IS degree with a focus on languages and webdev. Even a degree in business would look a lot better than compsci.

Unless you see yourself going on to graduate school with the hopes of doing research or teaching, I'd reconsider compsci.
posted by wfrgms at 11:12 AM on July 26, 2008

Fortunately, computers were invented so that people didn't have to do all the mechanical work involved in math problems. The computer scientist works out the algorithm, and the computer uses the algorithm to do the work. So, you'll be fine.

However, if you have trouble with math because you have trouble paying attention to detail, you should definitely work on that.
posted by ignignokt at 11:13 AM on July 26, 2008

Computers are really great at doing addition and multiplication all by themselves, so computer scientists don't worry about that kind of stuff. They worry about, on a foundational level, things like algorithms, computational complexity, and automata. Note that there aren't tables of numbers any of those Wikipedia pages; it's all conceptual. I think you will do quite well. Read up more on theoretical computer science, and take as many of those kinds of courses, instead of "how to program in Java."
posted by zsazsa at 11:14 AM on July 26, 2008 [1 favorite]

What is meant by "a CS degree" depends a lot on the particular school or program you're looking at. For a more theoretical degree, it sounds like the math is the sort of thing you do fine at - fewer numbers, more looking for patterns and understanding equations and behaviors. For a more practical degree - the kind of thing I'd think of more as "computer engineering", although those often get called CS - I'd *guess* it also doesn't matter because you're not doing as much math, but I don't have any personal experience with it (and it may involve more experiences like meta_eli describes as far as, "say, convert[ing] hex to binary", though even that can be turned into tricks and patterns and theory).

One thing you might do is browse around Wikipedia a bit - take a look at some of the pages on graph theory, pathfinding, neural nets, that sort of thing. If you enjoy reading about that, then the math in a CS program will likely be right up your alley. If not, you're likely to hate a theoretical CS degree.
posted by spaceman_spiff at 11:16 AM on July 26, 2008

Seconding the IS recommendation. CS is supposed to be math based.
posted by damn dirty ape at 11:16 AM on July 26, 2008

The math is mostly conceptual; you should go for it. (That said, a facility with translating among bases and recognizing, for instance, that 1023 is 2**10 -1, comes in handy for some things.)
posted by Zed_Lopez at 11:18 AM on July 26, 2008

Also worth pointing out that there usually is a difference between Computer Science and Computer Engineering. Comp Sci is supposed to be the theoretical one.

This is actually the thing I heard many other students complaining about. A lot of people just want to learn programming and pick up some buzzwords for the resume, not worry about Turing's theories on of computational complexity.

I'm one of those (occasionally) complaining students. I lean towards the theoretical side, and find it a bit frustrating that CS and CompE are so often lumped together. Nothing against CompE; just that the two are different, and my studies are more about the theory than the implementation.
posted by spaceman_spiff at 11:19 AM on July 26, 2008

Well, there won't be too much arithmetic; computers can handle that, after all. But programming has some similar "mechanics"-type issues, especially when you're first starting out--remembering the syntax for various things, etc. Will these mechanics trip you up the same way math calculations do? Who knows?

This is all academic, since you can always just try programming and see if you like it. Search around the web for introductory programming stuff; there are lots of free languages to download. No sense trying to guess whether you'd be good at it when it's so easy to actually try it.
posted by equalpants at 11:23 AM on July 26, 2008 [1 favorite]

To echo wfrgms, my school offered both a BA and a BS in Comp Sci. The BA let you swap out some math classes for liberal arts classes.
posted by meta_eli at 11:26 AM on July 26, 2008

I started off in CS, and after a year decided to switch to CE because I didn't want to only do all the theoretical stuff that CS requires. I'm like you; I can handle math but I don't consider myself to be that great at it. I survived that year though. I'm about to start my second year, so we'll see how it goes.

Feel free to MeMail me if you want to know more about how math might relate to the basics of CS, I might be able to provide you with some examples of how you would use math so that you can see if it's something you want to try and do. I also have contact info in my profile.
posted by DMan at 11:27 AM on July 26, 2008

If you're good with algebra and conceptual tinkering, then you're going to be good in computer SCIENCE (see the links up there to things like computability and such, that is the heart of the discipline. The idea is, as already mentioned, to get the computer to do all the boring number fiddling for you. You deal with concepts, algorithms, and the proper modelling of a problem and its solution in a playground made of symbolic things.

Heck, I probably need to ruin two or three notepad leaves before I get any involved arithmetic right by hand, and actually live from doing research in comp sci. ;-)

Now, if you want computer engineering or information sciences, I'm not really qualified to say if you'll do right there. Kind of different mindsets for each of them, I know that much.
posted by Iosephus at 11:30 AM on July 26, 2008 [2 favorites]

Sounds like you might struggle a little bit trying to learn binary arithmetic, but beyond that, it sounds like you've got as much shot as anybody at being a CS major.
posted by joshjs at 11:31 AM on July 26, 2008

As you can see, I also can't type shit and it doesn't seem to be a problem. Insert parenthesis where missing...
posted by Iosephus at 11:32 AM on July 26, 2008

Basically the fewer actual numbers involved, the better I am at solving a problem.

Go for it. For a somewhat similar example, I'm in EE, and in any given bit of math I do it's unlikely there'll even be any "actual numbers" beyond a few 2's, root 2's, e's and pi's

At the end you can put your formula into a calculator or MATLAB if you need to run numbers through it.
posted by TheOnlyCoolTim at 11:36 AM on July 26, 2008

the "harder" you can get, the better you'll be. research in computer science can involve pretty heavy conceptual maths (category theory etc) which you would probably enjoy. but some of the work involved in actual computer programming (ie, as people are saying above, an engineering degree) can require quite careful detailed numerical work which you might find challenging.

so it's rather like your experience so far - you might well make an excellent computer science student, and an even better researcher, but struggle with some of the basic/applied courses and be slightly more restricted than normal in the range of programming jobs you would feel happy with afterwards.

yet another way of saying (almost) the same thing: the skills you have (abstract reasoning) are critical to being a good computer scientist or engineer; what you lack may hurt you in some areas of engineering. you're in a much better position than someone who's good at calculating, but struggles with abstractions. the first part of your study will be the hardest.
posted by not sure this is a good idea at 11:39 AM on July 26, 2008

I'm curious about how well you did in geometry. That's the only pre-college class I took where I had to write any proofs, and I was terrible at them. Imagine my surprise when it turned out that much of the math I did for my CS degree involved proof after proof. Of course, there were also three quarters of calculus, a quarter of linear algebra, a quarter of differential my program there was a lot of grunty math classes to get through just to say you'd done them. YMMV - knowing where you're planning to go to school might help a lot. Night school can mean a lot of different things.

I've just spent my last three weeks doing a basic arithmetic problem at work. However, I got assigned to do it because "crinklebat likes math". You definitely won't be the only person in your class who would embarrass herself at long division. Hell, I'm pretty terrible at long division by now myself.
posted by crinklebat at 11:54 AM on July 26, 2008

It sounds like you may have mild numerical dyslexia, which my brother apparently has. I'd be very surprised to hear that it ends up having any impact on your CS career, but hey, you'd probably realize pretty early on if it did, before you had managed to come up with compensation mechanisms (which most of us have for some weakness or other anyway). Give it a go, see if you love it, see if you honestly have that much of a harder time at it than other people and whether or not it will be worth it to you to push through if that's the case. I was never the strongest person in my year at math, but I'm still at grad school for a physical science and I've managed to work around it successfully. I'm sure you could too if you decide you really want to.
posted by you're a kitty! at 12:08 PM on July 26, 2008

Being able to grasp math concepts quickly is a good sign. Ability to do mental arithmetic is not that essential and improves with practice anyway. Ability to see the right algorithm to solve a problem is the important thing. How is your logic? That's really important too.
One thing about writing software is that it gradually reprograms your brain and over time makes you better at logic and math anyway.
posted by w0mbat at 12:11 PM on July 26, 2008

hmm... I haven't taken geometry since freshman year in high school (I'm 31 now) ... I don't recall being bad at it.

As far as attention to detail, I have previously made my living doing proofreading and color correction... I'm actually a rather detail-oriented person. No clue how that fits in with not being able to add, but there it is.

I'm in St. Louis... I'd be looking at going to classes at either UMSL or SLU. SLU has an accellerated course that might work best for me due to my age / work schedule / etc.

Am in the unfortunate position of having only ever taken three college classes. So I'm not just going to be finishing my degree at this point... I'd be starting from scratch. I'm feeling pretty bleh about that whole situation and don't want to couple it with pursuing a degree that I'm too deficient in some way or other to attain.
posted by FortyT-wo at 12:12 PM on July 26, 2008

I am precisely like you, OP. I can do an algebraic proof, but at some point in solving any equation, I make a sign error or something and have to go back and do it six more times.

First, which degree: "computer engineering", at every school I've ever heard of, has been about hardware, not software. You'd be designing circuits, not writing code. This is Bad Math Territory, primarily because they make you take a bunch of electrical engineering.

Next, "software engineering". This is generally a curriculum of programming plus analysis and study of how to manage a software project. You know, not just how do we solve the problem, but how do we write the solution that's going to take fifty people two years?

Finally, "computer science". This is the study of computational algorithms. Lots of programming, and lots of theoretical study. The idea is that you'll be able to develop novel algorithms. This is what I took, and graduated summa cum laude in. I'm not mathematically gifted, even in the theoretical... but, programming is sequenced logic... there're lots of ways to sequence logic, in your head, other than as mathematical equations. I approach programming from a linguistic standpoint, mainly.

You talk about the "mechanics" of math. That's called "arithmetic". Even if it's taking an integral, it's still arithmetic. The whole damn point of computers is that they do the arithmetic, not you. Once you get through school, you're golden.

As for math classes with numbers: I took differential and integral calculus and linear algebra, as well as two semesters of the mandatory "discrete mathematics" that compsci programs everywhere make you take. The discrete math course was actually mad easy, since it's mostly an introduction to about 50 different topics--they don't go into enough depth for them to be difficult, usually. Then, having made it through the numbers hell, I got into numberless math classes: finite automata, language theory, abstract algebra (*shudder*). Those were hard, but not in the same way that eighth grade math class was.

Even in the non-numbers classes there were a lot of questions like "how many permutations are there?" that required a bit of arithmetic. But, I always got a calculator.

Do NOT go for IT or IS or any of that shit. Don't waste four years of school learning how to plug in network cables. Go ahead and do the real deal. You'll do fine.
posted by Netzapper at 12:42 PM on July 26, 2008 [2 favorites]

Just to confirm a lot of what I scanned here.

Not a lot of numbers. After first year, I don't think I saw an actual number again during my degree.

At some point we had to prove that addition worked from first principals . . . but no numbers!
posted by ChrisManley at 1:01 PM on July 26, 2008

Listen to Netzapper. He's laid it out perfectly.

In engineering and the sciences, we rarely do arithmetic! That's what computers and calculators are for. If you did well in physics, calc, and geometry, you have no reason to say you are bad at math. You are bad at arithmetic, a small field of mathematics. One for which we get to use calculators ALL THE TIME!
posted by no1hatchling at 1:12 PM on July 26, 2008 [1 favorite]

since you can always just try programming and see if you like it. ... No sense trying to guess whether you'd be good at it when it's so easy to actually try it.
posted by equalpants at 1:23 PM

Best answer thus far, IMO. Your post sounded (to me) as though you're putting just a whole lot of weight into this decision -- and any big decision like this is weighty, for sure -- but you're trying to make the decision when you just flat don't have enough input. And it sounds (to me) that you're seeing it as either this or nothing, and that is way off base.

You've taken three college courses. Take three more, but only after (or at the least while) you are checking out some computer languages as suggested by equalpants.

Check it out -- you're going to go to school! Whoa! What a great thing. You might get in there and find that your interests lay in a totally different direction. There is no hurry. Seems to me you are seeing this as job training and not 'getting an education' or what have you, being broadened, opening out horizons. You expressed that you're sortof bleh about the whole show and how could you not be, considering that you've focused your intent on one tiny ray in the rising sun of your new day?

Get into the groove of school. Date some of the kids there, if you're single -- instead of dealing with all of us old cobs who are all worn down, all burnt out on women and life, you're now with young people who are bright-eyed and dumb, and looking for life experience, and that you've got, and can give to them, so long as they help you in this one horses ass math class, or whatever.

You can do most anything you set your heart on -- you know this by now, you're not a kid. So if you're going to give yourself this gift, that of getting an education, if you're going to take the time and expend the effort to go through school, then go there and take the time to find out what you really want to do, and then set your heart on that, and tell us about it as it unfolds.
posted by dancestoblue at 1:18 PM on July 26, 2008 [1 favorite]

A good computer science program is going to be math heavy - but it's mostly advanced math (multi-variable calculus, linear algebra, discrete math). At the university level, you are always going to be able to use a calculator.

As for the difference between Computer Science and Computer Engineering - I majored in Computer Engineering with a Computer Science minor (Virginia Tech '98). IIRC, the CS minor only required one additional course in addition to the Comp Eng curriculum, and the math minor was only another course away (but I didn't go for that). The two curriculums are very similar - both had the same foundational math and science courses, and the courses in the majors both had some overlap between hardware and software (electronics and programming).

The engineering courses actually had a lot more actual math problem solving - working out problem sets on paper, similar to what you would do in a physics course, whereas the CS classes mostly were programming projects and conceptual knowledge. I think you'll do ok in CS.

BTW, if your ultimate goal is to get a job as a programmer/software developer in the IT field, I would say that the CS degree is not mandatory, except maybe to get your foot in the door at your first job. There are plenty of ways to enter the IT field besides getting a CS degree. The knowledge gained from CS courses is valuable, but most of it is not going to be directly applicable in the average programming job. It may be more practical to go for a hybrid business/programming curriculum if that is available to you, especially since you are doing this as a second career. Those four years might be better spent getting experience on the job.
posted by kenliu at 1:38 PM on July 26, 2008

If you did well at calculus you're all set for the math you might run into. (I'm not sure that everyone who answered above spotted that in your post.)

My experience with college-level math courses is that computing the correct answer is almost irrelevant. As people have pointed out up above, it's computers that do all the calculation these days; whenever I'd get a manifestly incorrect answer on an exam I simply wrote a paragraph or two on how I knew it was incorrect or how I'd have proceeded with the correct answer and the professor generally gave a good 75% or better credit. (Though I'd note that this was accompanied by asking questions in class, etc. that demonstrated I understood things conceptually.)

And nthing the suggestion to try out programming and see how you like it.
posted by XMLicious at 2:47 PM on July 26, 2008

Depends on where you're getting the degree, but from my experience, the mathematical portion of CS is theoritical. Lots of proof, algorithms, concepts. I think you'll be just fine. Since you did well in calculus, that's pretty good. I know a couple of CS majors/programmers who stink at math.

As far as attention to detail, I have previously made my living doing proofreading and color correction... I'm actually a rather detail-oriented person. No clue how that fits in with not being able to add, but there it is.

That is a very valuable trait, no matter your math expertise. I think it matters more than being able to add.

Definitely try out programming. Take some intro classes and see how it goes. I wasn't a programmer when I first started out, but now I code just fine. Though if you ask me about Turing or Berkley-Welsh or whatever that encryption algorithm was, well, that stuff flew out my head after the semester was over.

By the way, a CS degree doesn't necessarily get you a CS career. It's like the most obvious course, but see if there are other non-CS majors that have a smattering of CS courses. If Cognitive Science is available, check it out. It's pretty interesting, though not available everywhere :(.
posted by curagea at 3:49 PM on July 26, 2008

I'm a TA for the first-year Introduction to Software Engineering course at my university. Although I think it sounds like you'll do fine (echoing everyone above that comp-sci maths is more conceptual), I know that at my university, a lot of the introductory programming stuff is based around simple maths questions - some examples

-write a function that returns whether a number is odd using the Remainder (%) operation
-write a function that returns x^4 using the square() procedure

Basically a lot of comp-sci/soft.eng courses assume that you're pretty comfortable with basic maths, and use that as background material. Some kids I tutor really can't do maths and struggle with this, and get pretty discouraged. However, while being good at maths makes life easier, with these kids I emphasise that what they're really trying to teach you is translating the problems from English to %programming_language. They're trying to give you problems that they think you'll understand, but once you get past these intro questions, real-world programming doesn't rely on it so much. It's just your bad luck that you have to take a little extra work to understand the English version first.

That said, I'd echo whoever said upthread that it is handy being able to spot patterns and translate 2^x into a number, and that at some stage you will most likely have to try translating from binary to decimal and back. But even if you never get these, you should still get through those courses to the interesting ones.
posted by jacalata at 6:56 PM on July 26, 2008

N-thing the sentiment that I was in a similar boat and pulled off a degree, but it wasn't without some heartbreak. I have a BA with Computer Science as my second major. Calculus I/II and the second half of Linear Algebra were a b-i-t-c-h. Calculus probably would have been easier if it focused on the function and theory, but every course I took had the god (!) awful (!) James Stewart textbook with the violin on the cover and all of my profs denied the use of calculators. The James Stewart approach was to make you muck deeply through the hardest possible way to solve a problem and then in the next chapter show you the, you know, not-crying-tears-of-blood way that everybody actually uses. Minus forgetting huge chunks of middle school algebra and the mucking through the most convoluted and involved solution necessary, Calc I would have been a breeze, so maybe with the right prof or the right community college class the higher level stuff can be done, especially since you've already been successful at Calc.

Women in CS have the added advantage of having their pick-of-the-litter choice of geeky, female-starved study partners. Use this power responsibly. Also: worth looking into scholarships. Back when I was in school, women in CS were freaking rare and very welcome.

On re-read, maybe you have dyscalculia or something similar? (IANAD) If that's the case and you get it diagnosed and go to your campus accessibility support department and they can make arrangements for you for longer tests, calculators or other goodies.

Some CS departments teach in Scheme or other Lisp-like languages that have some pretty complicated algebra-like syntax that's easy to mix up. In any event, you might want to play around with your department's language of choice and see if you can grok it at least a little on your own.

And while it's probably true that CS skills are less marketable to HR departments than TODAY-NOW-BUSINESS-AND-INFORMATION-TECHNOLOGY shit, Computer Science theory is immortal and those other skills stale quickly and are a joke to anybody who knows better. We all know the geek hierarchy goes Pure Math majors -> (Electrical Engineering || Computer Science) -> Information Science -> Information Technology -> Silly Business degree with the tech flavor of the day added as an afterthought.

To be a real killer app, what you want to do is get the CS degree and join some open source projects/take some certification courses on the side so you can throw all of the techs du jour on your resume right next to your never-fades, never-dull CS badassery. And once you have the CS fundamentals down, no new-tech will ever foil you. You'll have the superpower to learn new systems and new languages to a functional level in a week, tops, while all the IT majors will stumble and fumble from scratch every time. IT and business degrees are a one-off. CS is for the long haul.

Sufficeth to say, I didn't take my own advice, but I'm pretty happy about where I landed (outside tech for the most part) none-the-less.
posted by Skwirl at 8:45 PM on July 26, 2008 [1 favorite]

I was in a similar situation to yours--except I'm not even that good at conceptual math (proofs, etc).. I ended up in a very theory heavy CS program, and though it was quite difficult for me at times, it was completely worth it.. Definitely seconding the advice of smart study partners.. I never would have made it through Discrete Math/Algorithms without my excellent study partners. My CS degree was well worth all the hours I put into it, and I don't feel any less prepared now because I struggled with it more than some of my other classmates did.

Also, definitely try out programming on your own, if you want, but don't be completely discouraged if it doesn't come naturally on your own.. I had tried to program on my own for years before taking my first introductory programming class.. and never "got" it, until I took the class. Once I was in the class, it just all clicked, and I found out I was quite good at it.

So, in short, if you want to do it, go for it! The rewards are great! If you get a few semesters in and you find out that you really don't like it, you can probably use them as general education credits.
posted by everybody polka at 9:32 PM on July 26, 2008

« Older I have a dozen bodies to clear.   |   How do I do a presentation without Powerpoint? Newer »
This thread is closed to new comments.