<p>Hey, I’m a CS major at Williams (class of 2010, so I’ll be a senior next year). I would say that these two things are true about the Williams CS program:</p>
<ul>
<li>Williams is probably the best LAC you could go to for CS, excepting perhaps Harvey Mudd (which is a very different sort of school).</li>
<li>If you want the most rigorous, demanding, deep and wide-ranging CS education possible, Williams is still probably not quite up there with schools like MIT, Stanford, CMU, or Berkeley, though it’s probably better than many lesser universities.</li>
</ul>
<p>Williams has a bigger CS dept. than most LACs (seven profs), which means that it can offer a pretty wide range of courses, taught by profs who actually specialize in the fields they’re teaching, which is not true in smaller departments. The Williams CS profs are all great teachers and really nice people; the culture of the department is that students call profs by their first names, and the department is very social and friendly in general. I have friends who are history or polisci majors who have never met half of the profs in their department, and definitely don’t feel any particular connection to other history or polysci majors. In CS, pretty much all the majors know all the profs, and most of the other majors; there are social events like snacks pretty much every week, and everyone spends a lot of late-night time bonding in the labs over assignments. Also, since Williams selects pretty strongly for well-roundedness, CS majors at Williams tend to be less stereotypically nerdy than you might find at a big university - of course you have to be a bit nerdy to enjoy CS, but CS majors at Williams tend to have lots of other interests too. That can be good, since it means we pretty much all shower on a regular basis, but if you want a school where people are really dedicated to CS, spend all their free time working on side projects, building robots to roam the dorms, hacking the school’s security systems, or whatever, you won’t get as much of that at Williams.</p>
<p>Williams does have the advantage of a really, really strong math department, and a good program in cognitive science (which is essentially the intersection of AI, philosophy, and psychology - very cool if you have any interest in AI). And Williams is a fairly respected name, in general and in CS as well (though it’s not as widely known in CS as it is in e.g. math or art history), so a Williams degree looks pretty good when you’re trying to get a job or into grad school. You can see a list of where Williams CS grads have gone at [url=<a href=“http://www.cs.williams.edu/dept/CSAlumni.html]CSAlumni[/url”>http://www.cs.williams.edu/dept/CSAlumni.html]CSAlumni[/url</a>] - we’ve sent people off to grad school at Stanford and MIT, and to jobs at Microsoft and Google, so it’s definitely possible to do really well as a Williams CS grad.</p>
<p>At the same time, I think it’d be misleading to say that Williams is just as good as bigger, better known schools for CS. At a school like MIT or Stanford, you have the opportunity to take classes with huge-name profs who are incredibly smart and understand their subject better than anyone else in the world (and I think that does make a difference, even for undergrad teaching). Because those schools get a huge number of people interested in CS, they structure their curricula to weed people out rather than entice people in (which is what Williams does, since the department is constantly looking for more majors), which means that the classes are more difficult and less friendly, but also that you learn an enormous amount. For example, MIT’s intro freshman CS class is taught in Scheme and covers a lot of the fundamentally beautiful topics in CS, some of which aren’t taught at Williams until you get to 300-level classes, and some of which aren’t taught in any Williams class. Williams’ intro class is essentially “Java for dummies”, which you should probably skip if you have any prior experience with programming. MIT’s class is much, much harder, but also (I assume, since I haven’t taken it) much more rewarding. And going to a school like MIT means that your fellow students are some of the best in the world, they’re the people who will be winning Turing Awards and Fields Medals twenty years from now, and even if you can’t compete with them there’s something to be said for the competitive motivation you get from being a little fish in a big pond, and the things you can learn from hanging out with those people. Williams has a lot of smart people, but the high end is not nearly as high, and while the people you meet at Williams, both students and profs, will be smart and cool, they won’t be as exceptional as the people you’d meet at a school like MIT. The other thing is that since Williams is entirely undergrads, you don’t have the option of taking grad-level courses in your junior or senior years, which can be useful if you find yourself interested in a particular topic and wanting to push further. Williams also has a much smaller breadth of classes than a big school which might have dozens or hundreds of CS profs, so you just don’t have as much choice. On the other hand, Williams makes it easy to set up independent study classes, and CS profs are generally quite willing to supervise independent study, so you do have some freedom to pursue your own interests. If you’re motivated and dedicated, it’s definitely possible to get a really good CS education at Williams (and a lot of people do, as you can see from the alumni list I mentioned above).</p>
<p>I decided to go to Williams because I wanted a solid, well-rounded education and a small, friendly school in a beautiful place, and from that perspective Williams was and is a great choice. I’ve had a really great time here and learned an enormous amount, so I definitely recommend it. At the same time, if you’re really serious about CS, you should at least take a look at a couple of the bigger-name schools, because there are definitely tradeoffs involved in doing CS at a small school like Williams, and no matter what you choose I think it’s a good idea to be informed about what those tradeoffs are. Of course you should also be sure to visit Williams and any other school you’re thinking of, and if you visit Williams you should definitely email someone in the CS department (the dept head is Tom Murtagh, who’s a really nice guy, but I’m sure any of the profs will be happy to talk to you) and try to set up ten or fifteen minutes to talk to them about CS at Williams. Don’t be scared, the profs are all really friendly and won’t bite.</p>
<p>Hope that helped - let me know (reply or pm or whatever) if you have any more specific questions; I’m happy to try to answer them.</p>