UIUC, Cornell, or Caltech for Computer Science?

<p>Which is best for undergrad?</p>

<p>Caltech is the best undergraduate education overall of the three (though also the hardest). The CS department at Caltech is small and new but highly ranked, with flexible requirements and lots of personal attention from top professors in the field.</p>

<p>alleya will be able to give an insider’s (and CS expert’s) perspective.</p>

<p>I can’t comment on Cornell or UIUC’s programs because when I applied to colleges, I was planning on majoring in Math. The CS department is small but well established (the option, not the department, is new). The course offering has a lot of depth, but not a lot of breadth. This is because we have a few professors who are experts at their area of interest and teach only that. Off the top of my head, we have classes in computer languages, operating systems, compiler design, networking, distributed computing, VLSI and computer architecture, computer vision, and algorithms. Do you know what area of computer science you’re interested in?</p>

<p>The classes I’ve takend tend to be small (<15), taught by dedicated and approachable profs. The department has one of the worst ratio’s in the school – I’m one of two girls out of about 20 senior CS majors. The requirements are flexible – after sophomore year you can take whichever CS courses you choose. Careful planning is important because classes aren’t offered often.</p>

<p>When I realized at the end of freshman year that I wanted to major in CS instead of Math, I considered changing schools. At the time, there was no CS major, though there was the promise of it being added the following year (it was). I knew the department was small and the idea of the greater breadth of classes another university would offer was appealing. I decided to stay here in the end because I felt that the teaching techniques were more important than the classes themselves. There were two major aspects of a Caltech education in general that I felt I wouldn’t get elsewhere: </p>

<p>1) I’d be forced to learn how to collaborate with others. Before coming here, my approach was to do the work for the others in my group. By being here I was forced to learn how to ask for help and to learn how to bounce ideas off of someone to come up with a solution together. One of the most satisfying feelings is standing in front of a blank whiteboard with two other people: one person proposes a partial solution, another builds on it, maybe a third points out a case it doesn’t work for, the second tweaks the solution to correct it, and so on. At other places I don’t think I could have gotten that.</p>

<p>2) I’d learn how to approach impossible problems. On almost any problem set we get, the majority of the problems seem impossible at first. The sets here have taught me different techniques for attacking the problem until the best solution method becomes clear. In the real world, you’re not told what approach will work, so it shouldn’t be immediately apparent in homework either.</p>

<p>As a final note, I should add that I’m probably below average in the CS program and I’m definitely below the average GPA. However, I found my job search this year incredibly easy. None of the companies cared at all about my GPA, and I wowed them in every interview. (Brain teasers and puzzles are common in CS interviews and I found they came incredibly easy to me, which was definitely not the case before I came to Caltech.) I even had one interview where they didn’t test my knowledge at all – they trusted that being from Caltech was enough of a qualification and spent the entire time trying to sell themselves to me.</p>

<p>if u just go by rankings i think UIUC and Cornell are above Caltech…</p>

<p>But see the difference that you are asking is sort of like abusing the three colleges…all are excellent in CS…its just a matter which one suits you best…like u want a big college or a comfy place…are u interested in other activities which one college has while others dont…what location you’d like etc. etc…Trust me man…all 3 of these colleges have enough coursework and facilities to provide everything a CS undergrad could want…all are rock solid programs…so you just consider other factors and see which one is best for you…</p>

<p>Thank you everyone for the helpful replies.</p>

<p>alleya:
Would a CS major need to come in already having a strong background in CS and/or programming? Or do they teach from the basics on up? Also, is the department strong in AI or human-computer interaction?</p>

<p>Well…they have courses which start from the basics…Although a bit of programming knowledge wont hurt…But if u have done quite a bit of CS then you might get advanced placement for the courses and you might be able to fit higher level CS courses in a stipulated timeframe…</p>

<p>It might be better if you don’t think you’re all hardcore at programming from the start. CS1 starts from nothing (in fact they use a funny language to put everyone on an equal footing, as much as possible) to teach you the theory the right way around.</p>

<p>So, short answer (alleya, please correct me if I am wrong) no prgramming knowledge is assumed or required.</p>

<p>Yes, CS 1 assumes no knowledge, but it the CS major ramps up quickly sophomore year. Most classes expect you to learn the language they use on your own time or tell you to pick your own language. So if you come here without any programming skills, you should either teach yourself, or take a CS 11 track or two freshman year to prepare yourself for sophomore year. (CS 11 is the language track – it does nothing but teach a particular programming language.)</p>