<p>I didn’t consider Williams so I can’t really talk about that school or offer much of a comparison (though I seem to remember a friend of mine said their physics program was very good). I can talk about Brown math and CS, though.</p>
<p>Brown CS is a very strong program. The department offers an AB (Bachelor of Arts) and an ScB (Bachelor of Science, requiring more courses and a senior project or thesis), as well as numerous joint concentrations (for example, I am a Mathematics-Computer Science concentrator). Some parts of the department are in flux (some of the low level theory courses are changing, and the department has been light on AI courses recently), but it is quite varied. The intro and intermediate courses give a very solid overview of computer science and programming - there are 3 intro sequences based on one’s interest and prior experience, and all three are great in their own regard. These cover programming (generally in Java, Racket, or both) and theory (substantial algorithms work well beyond the AP exam), so it’s incredibly rare that a student skips the intro sequences entirely. 31 is an intro to computer engineering and systems, and as far as we can tell, it’s unique among colleges (most focus only on systems). It gives exposure to computer architecture, compilers, and operating systems through Assembly Language. 32 is the software engineering course, which involves substantial (some students spend 25+ hours a week) programming, as well as design patterns and techniques. The theory courses are in flux but will cover probability, statistics, and computational theory.</p>
<p>This itself is a very solid background, and then there are numerous upper level courses to further one’s knowledge. Independent studies and graduate courses are common too when the undergrad courses are insufficient for one’s needs. Job prospects are very good, with much of this year’s graduating class going to Microsoft or Google after graduation. Professors are mostly accessible (unfortunately, there are always exceptions), and the incredible TA program provides numerous hours of support for students.</p>
<p>Pure math at Brown, as mentioned above, doesn’t have the same reputation. Its reputation is somewhat skewed - grad students teach many of the low level courses, and they are often hard to learn from. Additionally, good grades in BC calc don’t seem to imply success in higher mathematics; many people decide that pure math is not for them - high school calculus classes are much closer to applied math in nature. There are several great professors in the department, and several poor professors; I’m yet to be incredibly impressed by one of my professors, but several have been alright. The standard AB math requirements are very loose (only Abstract Algebra I is required, though that’s admittedly a sort of weed-out course), while students considering grad school have a list of highly recommended courses. I feel that the department is best for those who come in at a high level and can sample grad courses early - those are the students who seem to like the department best.</p>
<p>Edit: Brown’s Applied Math is supposed to be good, though those in the pure math department who have taken classes in it, myself included, are generally unimpressed.</p>
<p>Brown offers a 5-year masters in CS, which several of my friends are doing. If money weren’t an issue, I’d consider it as well, although I’m beginning to believe that my heart lies more in Classics and Math.</p>