Computer Science at Brown

<p>I was wondering if anyone with experience could post about CS at Brown. What are the pros and cons of CS at a non-engineering school like Brown? For examples, are research positions harder to find? Is the curriculum more heavily theoretical/math-based? Is the workload too heavy or too light?</p>

<p>Thanks in advance for any information.</p>

<p>Best advice: do a search. There’s troves of info on here.</p>

<p>But here’s me adding to the troves:</p>

<p>Advantage 1: you get people who didn’t expect to do computer science (like me) doing it.
Advantage 2: you get to interact with people who aren’t CS/engineering (most my friends)</p>

<p>That being said, the only things I’d knock about our CS department is a lack of AI professors (it’s gotten bad in recent years as professors who WERE AI go into industry, or take a sabbatical, or teach intro courses instead, etc.). However, apparently we’re going to go through another round of hiring soon, so by the time you get into upper division classes this shouldn’t be an issue.</p>

<p>Research positions: like pretty much any department at Brown, if you start looking in the fall you are almost bound to have one in the spring. We have the Graphics group, some sort of theory group (cryptography? Not entirely sure), etc. etc.</p>

<p>Curriculum: For starters, we have 3 different intro tracks. If you’re asking this question, you’d likely do 19/32 your freshman year (every pure CSer takes 32 eventually). But 17/18 is the intro class that is more mathy-csey, and 15/16 is more apt for people interested in graphics and applications. Furthermore, you can get a - degree (like CS-econ, or Math-CS) if you want to focus mostly on applications in a certain field, or theory, or etc. Unlike at MIT, it is not possible to get a CS degree here without programming. At the same time though, some of our lower division classes (22/51, or for your year a Klein’s new course/45) are purely math/logic/computation courses. And if you really wanted to, most your upper division courses could involve no programming (though I think your systems requirement will require programming). In terms of difficulty, the intro sequence is challenging. I’ve gone over my home state school’s curriculum, and our lower division courses (which you can finish by sophomore year, or even by third semester) cover more than they do in 4 years. Our intro sequence (17/18, mind you, in which people don’t typically have a real strong background in programming) is good enough that I know people who got programming internships at microsoft the summer after freshman year.</p>

<p>the workload is probably more than most concentrations. But not so much that you don’t (most semesters) have plenty of free time (if you want to, anyways), and you can definitely take 2 non-CS classes each semester (although for maybe 2 or 3 semesters, if you only take 4/semester, one of those classes will have to be math or a science to use in your concentration).</p>

<p>I’m not the only CS concentrator on here, but let’s see what I can do.</p>

<p>Computer science at Brown is very strong, as well as intensive. Although it’s not Stanford in prestige, many of the graduating seniors have jobs at Microsoft or Google, so clearly we’re respected in software engineering. The list of internships that students take is also impressive (I’m one of the few without one, and I turned down Amazon to teach this summer).</p>

<p>There are three intro sequences, and it’s highly recommended that you take one of them (I know a couple people who didn’t, and while one is doing well, one is struggling massively). Brown offers no placement of credit for the AP exam (and rightfully so…it doesn’t compare to any of the intro courses). All of the intro courses are theory-based. 15-16 uses Java to teach the theory, while 17-18 uses Racket as well as Java. 19 uses Scheme and assumes you are already good enough at Java to program medium-sized projects. (19 might be more programming based than theory based now - it’s been changed since I took it.)</p>

<p>Based on my research, CS31 (in a sense, my course) is a unique course to colleges. It’s a cross between computer engineering (we go from the transistor up) and computer systems programming (we do garbage collection, virtual memory, compiler theory, and linking and loading). Assembly is used widely in the course. Although it’s seen as one of the most fun and easiest courses in the department, we’re making it harder next year.</p>

<p>CS45 will be a probability and statistics course, presumably required of concentrators. CS51 is computational theory, so it includes things like computational complexity - it’s also required of ScB candidates. CS32 is the software engineering course - the time commitment could be as many as 25 hours a week - students work in small groups to design a substantial project. The course also teaches C, C++, and further systems programming.</p>

<p>The advanced courses are eclectic in nature…some are theoretic and require no programming, while others are programming-intensive. I’m a theorist myself. Research isn’t hard to find if you look, especially when you’ve taken a class with a professor. You should expect to spend at least 10 hours a week on each course (and you’ll be pleasantly surprised in a few courses).</p>

<p>I’ll gladly answer any other questions here or by PM.</p>

<p>^As someone who took it, CS31 was by no means easy this year (even if many/most people got As… I refuse to judge how easy a class is by the percentage getting a certain grade. Which I don’t know, so eh). It would probably have been relatively easy, in retrospect, had I already taken 32 (so for most 19ers, yeah, this one’s the easy class, because you guys do things backwards). </p>

<p>As far as advanced courses: if you expect to spend 10 hrs/week in some of them (at least from what I hear, such as with robotics) you may end up struggling mightily. But that’s probably about right for most.</p>

<p>Pascal doesn’t mind the grades where they are, but we really feel that the final few projects are “dumbed down” too much to the point that one doesn’t get enough out of them. We are compensating in other ways (weekly recitation with Pascal and HTAs, for instance), but we envision 31 as getting harder while they make 32 easier (it’s easier now than it was 2-3 years ago by a significant margin, which is a good thing because it was intractable before).</p>

<p>And to clarify, there are some advanced courses (146, 157) where the workload is really only 5 hours a week or so; it’s probably best to balance the more time-intensive courses with these.</p>

<p>There’s a guy named Pascal in the CS department? That’s awesome :)</p>

<p>His parents didn’t understand the irony…</p>

<p>CS is great. You should come and visit. Goto the SunLab, visit the ILab, talk to one of the Professors (perhaps John Savage). CS is definitely one of Brown’s strongest suites in term of professional life and undergraduate culture (hackathons, thesis defense, free pizza!, etc) life. I think its one of the departments at Brown that excels at understanding that not everyone will go and become a great Computer Scientist, but go work in the world executing real systems.</p>

<p>^If you talk to Savage, don’t plan on leaving for a good hour. He’s got a lot of great stories (and don’t forget his amazing jokes!) to tell.</p>

<p>I can’t really speak to the pro and cons of attending an non-technical school for CS. Brown has had Engineering for a long time but just recently formed a School of Engineering that offers a CS Engineering degree. I think it is new, but maybe worth looking into, it interacts with the CS department.</p>

<p>The CS department at Brown has a stellar reputation in industry and academia. The department is beloved by CS majors as well. My daughter switched into CS from science after talking her first class (the famous CS 17/18) as a sophmore. She did the mathematics & cs concentration and learned toward theory (and is in Grad school for that.) When she was a Meiklejohn peer advisor, all 6 of her advisees were CS majors from freshman year.</p>

<p>One advantage is that you can do a 5 year program and come out with a CS Masters.</p>

<p>One advantage is the TA system, it is a very strong network and very well run. You will have a TA to work with and in your labs. This gives you access to someone other than your professor. The TA’s and Head TA’s are highly respected. If you get to be one, it is nice on your resume, especially your grad school resume. My daughter TA’d 4 semesters.</p>

<p>Research at Brown is extremely accessible and the CS department has plenty of projects to get involved with. It is often just as easy as introducing yourself to the prof and asking. Summer after sophmore year she got an UTRA (Brown grant) and did an independent project for a prof. Spring Jr year she did an independent research for credit and audited a grad school theory class in order to prepare for a cryptography e-cash research project which she joined in Summer (another UTRA) and continued working on through summer after graduation. She did other research related projects at Brown too, like crunching data for a Physics project (got to go the the Fermi lab as a group to present results freshman summer), Robotics, facial recognition systems project, administer tests on research subjects for a cognitive science prof) There were a couple other projects done Sr year that I can’t even understand enough to explain, one with natural language processing and one with complexity theory. Hopefully this will give you an idea of the array of access to research available to undergrads.</p>