<p>Note that the two courses are not really comparable. The survey or principles of programming languages course does not exist at Berkeley, because the introductory sequence (CS 61A, 61B, 61C) introduces and exposes students to several programming languages, rather than using just one (Williams CSCI 134, 136 appear to be Java-focused). Berkeley’s CS 164 is a course where students write a compiler as a term project, which does not appear to be the case for Williams CSCI 334.</p>
<p>Curriculum-content-wise, I favor the Berkeley method, although it is certainly not unique to Berkeley (e.g. as noted in another thread, Brown is similar, if the student chooses CS 17, 18 instead of CS 15, 16 there). Early exposure to several programming languages will give the CS student the mindset of choosing the appropriate tool (programming language) for the task instead of focusing on just one, which will make transitions to advanced CS courses and future CS activities in industry or graduate school easier. See also <a href=“The Perils of JavaSchools – Joel on Software”>http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html</a> .</p>
<p>Any strong CS major program is likely to expose students to several programming languages (these days, usually Java and C++, probably an assembly language, maybe one or more scripting languages). The purpose of a course in programming language theory/principles isn’t to develop basic proficiency in a few different languages. It is to survey the design principles of several classes of programming languages (object oriented, functional, list-based, etc.) I’d be surprised if Berkeley did not offer such a course … but maybe the faculty does believe that purpose is achieved in the context of several other courses. </p>
<p>However, the points I was making do not depend on choosing two perfectly comparable courses. Select any two courses of roughly similar content and similar level. What I think you’ll find at Williams is one professor, with a PhD from a top university and years of experience, teaching ~30 students. What I think you’ll typically find at Berkeley is a professor, with no more experience and no more distinction than the Williams professor, teaching ~300 students, plus discussion sections of ~25 students taught by grad students (who, in CS, often won’t be native speakers of English).</p>
<p>And yes, you will find far more course selection at Berkeley. If you can quickly get through the intro and intermediate courses, putting together a Euro-style program of early specialization (rather than a broad, American-style liberal arts program of study), then you’d be playing to Berkeley’s strength. It would be interesting to consider a hypothetical deep-dive into a specialty like Natural Language Processing and see if Berkeley’s prerequisites and distribution requirements allow room for several courses in it. That would illustrate something you can do at Berkeley that you really can’t at a small college like Williams (where you’d have to leave that specialization for grad school).</p>
<p>As for recruiting, I would think there is a lot more of it at Berkeley. Look at the outcomes, if data is available. What % of Berkeley CS grads v. Williams grads wind up at top companies (Google, Apple, MS etc.)? What about other outcomes (PhD completions, average salaries, etc.)? Note that the OP wants to go on to grad school in CS or business. </p>
<p>The latter is the case, and is hardly unique to Berkeley. For example, Chicago uses a toolbox of varied programming languages in the introductory courses. It does offer a programming languages course, but it appears to be an advanced specialty course offered once every two years, not a core CS course.</p>
<p>
</p>
<p>While you obviously take it as a given that small classes are always better, and TAs are always bad, perhaps consider the counterpoint that having multiple instructors (the faculty and TAs) means that the student can learn the material from different points of view, and seek help from any of several instructors out of class.</p>
<p>Also, if Williams experiences the surge of CS interest that so many other schools have been experiencing, will it increase CS class sizes, or leave some students unable to take CS courses because they are full?</p>
<p>
</p>
<p>It is not just that. At Williams, the number of CS courses other than the introductory ones offered each semester is quite small, so a student is unlikely to have much choice in which CS courses s/he wants to take when. And if the CS course is held at the same time as some other course of interest, there is less likely to be the option of “taking this or the other course next semester”.</p>
<p>
</p>
<p>Berkeley’s biggest recruiting advantage is at the small Silicon Valley startups that don’t have the need or resources to recruit everywhere like GAFAM (why do people on these forums think that GAFAM are the only good places for CS majors to work at?). Note that for MBA programs, good work experience after bachelor’s degree graduation is a desired prerequisite. For PhD in CS, any good CS undergraduate preparation should be fine.</p>
<p>1) while it’s true that people coming in with advanced standing are the most likely to experience the deficit in advanced level courses, even a typical “broad American style liberal arts program” leaves room for taking several advanced courses in one’s major. Where those courses exist to be taken.</p>
<p>2) comparisons of student achievement that rely on a precentage measure have to be normalized for the capability and interests of the students that are in the denominator in order to have any meaning. And compared to capabilities and interests of OP. Considering the rather more diverse student bodies at many universities, one should consider the gross number of students who go on to these destinations, and not merely the percentage. If thousands of students achieve a particular result coming from your university, then if you are good enough you can probably do it too. Even if someone else who is also attending there but who is not good enough, or doesn’t want that result, won’t achieve the same thing.</p>
<p>3) The advantage of having many high-relevance recruiters coming on campus is not limited to getting a job at a particular one or two firms out of the many. Even if those one or two firns are famous. It may wind up being the case that, at the end of the day, the kind of work a particular student finds themselves particularly interested in is best undertaken at a different set of companies than one of those few. Or that particular student is not good enough. at the end of the day, to get a job at those couple companies. Plus it is at the career center, preparing for interviews, that one learns, through reading and seeing the presentations of the companies that are recruiting there, a broader scope of what is actually out there, in the industry, and who is doing what. Provided that those firms come there.</p>
<p>We are splitting hairs here, ok, granted, Berkeley had more choices on advanced courses in CS, but that does not stop a job placement in ANY company if one had less high level courses. College is a place to train the student as a whole, not because one is short of some advanced CS courses and became a bad choice. If you need more CS training, you can go to Phd program and trained from there.</p>
<p>I think it is more of a “fit” problem, but the OP is an international and could not visit. We are debating here for some thing that may or may not apply to OP.</p>
<p>If OP never had CS experiences before and wish to become a more rounded person, Williams will work very well with him.</p>
<p>Pick the college where you think you will thrive personally. Like many other college students, you may well change your mind about what you want to major in, so don’t pick a school just because they have a strong program in a field you have some interest in but very little real experience. </p>
<p>I think you’re leaning towards Williams for the right reasons. Good luck to you! </p>
<p>Nothing prevents a student from becoming more well rounded at Berkeley. Indeed, the greater offerings (in non-CS subjects as well as CS) can give more opportunities for well roundedness on the academic side at Berkeley. On the non-academic front, Williams is less SES-diverse and is in a relatively isolated rural area, which may limit opportunities for non-academic exploration compared to being in a major metropolitan area.</p>
<p>There are reasons why a student can reasonably choose Williams as the better fit (e.g. you really value small classes, and are willing to accept fewer offerings). But some of the common mantras often given here like the well roundedness thing may not be those reasons.</p>
<p>Another important point is that if you have an instructor whose teaching / grading-style / personality you don’t particularly like, you’re much more free to avoid their classes in a research university. There you either have the option of taking the same class with a different instructor, or taking a different class that still satisfies the major requirement. I would imagine that both are much less the case at LACs.</p>
<p>Williams College is a great LAC, but for CS, I don’t think it provides better opportunities for its graduates than Berkeley does. Berkeley, along with Stanford, run Silicon Valley. Williams College grads would have to exert more effort to get hired in one of those firms in Silicon Valley. </p>