I'm a 25 year old data consultant who is considering returning to school to get a second bachelors degree in computer science or engineering. My interest is data science and machine learning. I use programming as a means to an end, and use languages like Python, R, C, Java, and Hadoop to find meaning in large data sets.

Would a computer science or computer engineering degree be better for this? I realize that a statistics degree may be even more beneficial, but I'll be at a school which dosn't have a stats department or a computational math department.

  • Consider going to a school that has a good stats program. Machine Learning is so stats-dependent I'd be shocked if you learned anything of value at a school without one. – Matthew Read Mar 1 '11 at 2:43

Most computer engineering programs deal primarily with the electrical engineering side of things from analog circuits up to the level of low level programming. The curriculum does include some CS courses and there are often electives.

For data mining and machine learning I would focus much more on CS where you get a broader base and have more access to electives (including math and physics).

The only exception is if you are interested in Robotics - having mechanical engineering is useful.

If I were you, I would also consider investigating if there are any masters programs that take your non-CS degree (perhaps with a few extra courses) and let you study for a masters. You don't need to repeat all of college, and it's better to have a BS and an MS than two bachelors. I have two MS degrees and can tell you that a dual degree is a waste.


What is your first degree in?

Bachelor's in computer science will help you with programming, and it should teach you the fundamentals of data structures, algorithms, operating systems, theory of computation, etc. Most CS programs offer an undergraduate AI course, which may or may not include machine learning. Good programs may have an undergrad machine learning course.

Generally, if you want to do machine learning you should go for a graduate degree either in CS or in statistics. In either case, you should take some statistics courses, and, ideally, do a thesis on machine learning. If you go for a CS degree to do machine learning, and you do not take stats, then you will have to learn it on your own anyway.

  • 1
    I was an economics major. – ATMathew Mar 1 '11 at 1:22
  • My advice would be to find a school with a good stats department, and take some stats courses regardless of which degree you go for. But this could be because I have never taken any stats and had to learn it on my own. – Dima Mar 1 '11 at 1:31
  • Yeah, that's probably best. During my econ degree, I learned about ols, logit, simultaneous equation models, etc. But there's definently things I don't know beyond the "basic" regression models. – ATMathew Mar 1 '11 at 1:45

Stats is the converse of stochastics / probability theory. Don't get them confused though, you'll need to take courses in probability calculus to really understand the fundamentals of Machine Learning.

To get a good background for work in Machine Learning: take a CS degree and really dig into the Math classes. Any course path that includes two successive probability courses followed by a Machine Learning course or two would probably suit your needs. The bad news is that probability theory is really hard, the good news is that there is a TON of opportunity for advancement of that field.

Not the answer you're looking for? Browse other questions tagged or ask your own question.