Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What does a major in CS entail?
4 points by dunstad on Oct 21, 2009 | hide | past | favorite | 12 comments
I'm a high school student thinking about majoring in Computer Science when I go to college, but I want to learn more about it first. What sort of courses do you have to take? Is majoring in CS at all useful, or should I choose something else and study it in my free time? Is the major's value highly dependent upon the teacher/college/student environment? Thanks for any information you're able to offer.


You really should study the curriculum for a particular school. Last I looked, CS programs vary widely. Find a school you like and can afford and see if the program looks like it suits you. Also, there is whole lot more to college than just your degree program.

If you post several potential schools here, you may get detailed feedback from those that went through the programs.


Good idea. I was thinking about Missouri S&T, SEMO, and UMSL, but any other unusually good (or bad) programs people know about would be nice to hear of as well.


I go to Missouri S&T, in my last year as a CS student.

Our CS program is primarily focused on getting a software engineering job. Our primary language is C++ (though with a few exceptions, professors don't make use of most of it's features). There are Java courses, but I don't think they start until the 300 level.

Our primary forms of research are either military-funded ventures (one that comes to mind is disposable ad-hoc networking sensors) or machine learning (with a heavy focus in evolutionary algorithms).

Our local ACM chapter does some interesting stuff, mostly projects. Two recent ones that come to mind were the building of an arcade cabinet, and the building of a soda machine, with a corresponding API.

Most design teams on campus are looking for a good CS to write some code. This could be image processing software for the robotics team, or porting Fortran code to C++. There's also a team that hosts a programming competition every semester. I think it's pretty awesome, but as it's leader, I may be a bit biased. Here's a link: http://megaminerai.com/

I haven't seen much in the entrepreneurial side of things here. We have some sort of organization for it, but I don't think it has much membership. There are a few individuals interested in such things, but you have to look around for them.


If you're looking at the St. Louis area, you might also consider Washington University.


I was at Truman for undergrad and WUSTL for MS.

I think Truman's undergrad curriculum is fine and the profs care about teaching more than anything else. I'm glad I took courses in philosophy, art history, literature, anthropology and so on; Truman is probably a better place to do that compared to MS&T.

But, if you wind up wanting to be a CS researcher (PhD), then it would be good to get involved with prestigious research as an undergrad. Also, undergraduate students at WUSTL can enroll in graduate courses to increase the breadth and depth of their CS education.

I wish I'd discovered before midway through junior year that I'd like to be a CS researcher. Also, I believe most jobs for which a CS degree is nominally required have very little to do with CS, and I wish I'd known earlier that the differences among programming jobs were not superficial.

Program goodness is not an objective, scalar quantity.

The smallest part of the value I think is in the curriculum. Truman's was much the same as WUSTL's and from what I've seen in the course catalogs they both seem similar to CMU's and Stanford's. I will admit that the Webster University curriculum seems rather different.

Another component of value is teaching skill. I have no idea how you'd assess that ahead of time, unfortunately. Famous profs are not always skillful teachers. I've had really excellent profs at both Truman and WUSTL. More at WUSTL than at Truman, but then WUSTL's a bigger department. I've had terrible profs at both Truman and WUSTL.

Your fellow students can make a big difference. Not only is it much easier to be hired by someone you know, but while you're in school together you can inspire each other to work on great projects. I think that doing the overnight visit circuit coordinated by each admissions office was helpful for sampling each school's culture.

I didn't know it until after I'd been at university for a few semesters, but the best indicators of my love of CS were: (1) I enjoyed the number theory topics in my 6th grade math class (2) proofs in geometry were fun (3) proofs in calculus class reawakened my dormant interest in math classes and (4) I had an addiction to programming that endured from grade school through high school and to today.

Look up the degree requirements at a couple of schools, Google for the course web sites, and browse the lecture notes and homeworks to map out the foundations of CS. Take a look at Communications of the ACM and IEEE Computer to find out if the frontier of the CS field interests you. Do the overnight visits and hang out with some current students; talk to them about what they like about CS and see if you feel the same way.

Good luck.


Right, it's all about where you go.


The curriculum will vary by university. I remember taking these classes for an undergrad CS degree:

- Structure and interpretation of computer programs

- Data structures

- Machine structures

- Digital circuit design

- Operating systems

- Programming languages and compilers

- Algorithms

- Randomized algorithms

- Parallel algorithms

- Computability and complexity

- Databases

- Computer and network security

- Discrete math

- Linear algebra

- Number theory

- Numerical analysis

I'd pick a school that was good in several areas, then take the entry-level CS courses. If you like them, stick with it. If not, switch to another major.

Someone already mentioned this, but a lot of course material is online. For example, here are some from MIT: http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Compute...


In the current economic scenario, I'd recommend CS + MBA


you dig deep into small areas of math. Take electrical engineering instead.


As a CS major at Berkeley, this is not the case. As the above poster said, the curriculum varies widely depending on the college.


Would you mind describing your course load or some of your assignments? Mainly what I'm looking for is a frame of reference to steer me toward or away from this as a major.


Thanks for the advice, but could you be more specific? What sort of small areas, and why do you prefer electrical engineering?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: