Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm planning on heading to college, and I'd like to know what I should be looking for in a school when making a decision about going there for a computer science degree. What are good signs? What are red flags?

share|improve this question
add comment

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

2 Answers

up vote 8 down vote accepted

I think the most important thing for a degree program to have is accreditation. In the United States, computer science, software engineering, and information technology programs are accredited by ABET. Other countries might have other accreditation programs, but the goal is to assert that graduates of the program are going to have the skills that are needed to function in the workforce or in continuing (graduate) education. For different programs, ABET specifies core content that must be taught as part of a program, and ensure that students are required to take classes that add value to the professional environment. You can search for accredited programs on the ABET website.

There really aren't any red flags that I can think of that apply in all cases. You need to visit each university, talk to professors, faculty, financial, and students. Ask questions, and see if anything sparks your interests or turns you off. If you have some idea of your interests, both professionally, academically, and socially, you can see if the university fits your interests and needs. It's all about fit, within the program and within the university. Don't just focus on the academics, either - you'll be spending 4+ years and a lot of money, so make it worth the time and money. There are a number of things that you can look at:

  • Research versus industrial-oriented. Do the professors tend to do research (and perhaps even hire students as research assistants), or do they emphasize teaching and industrial experience?
  • Teachers. Who teaches the classes? Is most of the teaching done by the professors, or by graduate students? What types of experience (academic and industrial) do these people have?
  • Class size. Are classes larger? Smaller? What is the student/faculty ratio at the university as well as the department?
  • What are the requirements for graduation? Are you able to take classes that are relevant to your interests? Do the required courses make sense for what you want to do? Are you able to take relevant and/or interesting minors as part of your education?
  • Existence of co-op or internship programs. Some universities have mandatory co-ops or internships as part of the program. These universities also have resources to help get your into these positions. Graduating with industrial experience is a huge benefit, especially since a good internship/co-op experience could turn into a part-time job and/or a full-time job offer after graduation.
  • Post-graduation opportunities. Where do people go after they graduate? Are reputable companies (especially those where you might be interested in working) hiring graduates and placing them in relevant positions? Or, if you're interested, how many students go to graduate school?
  • Student involvement. What types of people are drawn to the university? Are there students driven and self-motivated? Are there student organizations, especially within the college or department, that allow for professional networking?

There are probably a lot more things that you can ask, too. These are just the things that stood out when I was looking at schools for an undergraduate education, and most apply to graduate schools as well. If I think of anything else, I'll add it to the list.

share|improve this answer
1  
purely out of curiosity are you a CS prof? –  Aaron Anodide Nov 13 '11 at 2:21
1  
He's gonna be one day. A good one. That or some sort of NASA chief engineer. :) –  Falcon Nov 13 '11 at 8:23
1  
No, not a professor, nor a chief engineer. I've always wanted to teach part time, after I retire from industry. My best professors were the ones with a lot of industry experience or who took sabbaticals periodically to spent more time in industry. –  Thomas Owens Nov 13 '11 at 11:19
    
@ThomasOwens Well I'd say your participation here qualifies as part time teaching, in my book. –  Yannis Rizos Jan 17 '12 at 7:35
1  
+1 This good write-up is also a good example of why experience counts and some of it can't be 'taught' (unlike practical technical skills). –  Michael Durrant Mar 9 '12 at 15:55
add comment

I'm betting one of the key choices will be whether to enter a program that focuses more on theory or more on coding.

I got a very theoretical education from 1994 to 2000.

On the positive, it helped me to become a better abstract thinker and problem solver. Learning LISP might not get your ready for most programming jobs, but when you get handed code that uses recursion, everything's cool, because you've already scratched your head in bewilderment and come to terms with it in order to pass that exam...

The negative part was that I didn't get to apply the theory in a timely manner. The most drastic example is that I had to get up to speed on Databases in the past few years and while it was useful to remember all the stuff about Tuples and ACID, it would have been more useful if I had been required to write a few queries with inner joins and outer joins - the theory to understand them correctly was there in my mind, but it took me a while to access/associate it to the thing I was looking at/trying to learn.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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