How good is Tufts for computer science?

Thanks for all that info. Can you comment on U of Minnesota, U of Wisconsin, and any Canadian schools as well(UBC, Waterloo, McGill, U of Toronto)as it pertains to their relative strength in CS?

I have a junior in HS who would save his parents a hell of a lot of $ if he took one of those schools over the ones you mentioned in the NE.

I would say MIT, CMU, CalTech, Stanford, and a few Ivy schools are the very best and recognized all over the world. All other schools already mentioned on this thread and you listed are considered very good schools just below their level. The schools on your list have bigger undergraduate programs and world-renowned graduate programs as well. Kids from any of these schools would have no problem finding jobs anywhere in the US after graduation.

A bigger question is if the kids can keep up with the study and get the degree. I have seen many kids that are smart and drawn to CS due to high starting compensation but end up changing majors after failing in the first couple of years.

There are people who enjoy the challenge of problem solving, debugging their own or others’ code, and keep learning new programming languages and platforms, and those who just don’t.

1 Like

Which are all the US schools you would consider to be very good for CS…just below that top level?

I have heard that a lot of kids fail CS classes in the first two years at UMaryland because there is a cutthroat CS environment there. I’m not sure if that’s true.

I look at the ranking for fun. I mostly watch YouTube to check the CS department of each school. My son is more interested in the robotics. What I saw from the videos, Tufts has very impressive artificial intelligence program. Among Ivy, Cornell’s computer labs are the top. I did not find Brown and Dartmouth as interesting as Cornell. Probably not a good idea to decide the college based on the videos, because some schools don’t have a good presentation technique.

I also think Harvey Mudd is another school potentially better than other top schools. I think Harvey Mudd computer science graduates are top in ROI.

Also I consider the fit. I think a lot of Ivy students are Type A personality. Full of confidence, and typically from wealthy families. I heard that as far as the socioeconomic demography they are still not diversed. On the other hand Tufts seems more diversed.

T2: Waterloo, UWisconsin
T2.5: UToronto
T3: UMinn

I can’t speak to UBC/McGill as I don’t know them well enough. Again, this is just one opinion.

If we’re getting into nuances beyond reputation, this is actually where teaching can make a difference. Many schools lack a proper supportive learning environment for CS, even if the research and reputation are there.

See this essay on teaching CS: Developing Developers

The vast majority of courses on programming employ a “tinker until it works” approach. Instructors tend to pick a currently fashionable programming language and then proceed in a rather old-fashioned manner, dating back to the days of Fortran IV. At the beginning, instructors show some version of a “hello world” program (console or GUI based), followed by simplistic input modes (again console or GUI based), variable declarations and assignments, arrays and loops. Still further down the road, these courses may also introduce functions, methods, and classes.

What students learn in such courses, is to mimic their instructors. In classes and labs, they see code snippets that introduce new syntactic constructs and spell out their pragmatics. Homework assignments ask them to solve similar problems. A typical student will copy the snippets of code from class and modify them until the program seems to work. Over the course of a semester, the distance between the code snippets from class and those needed to solve homework problems grows to test students’ ability to generalize.

In sum, traditional programming courses teach programming implicitly, with students picking it up via mimicking and experimenting. This approach may appeal to students who love to tinker with gadgets and video games, but it also turns off many others who might be equally talented for engineering actual software or benefit to the same extent from a properly taught course on programming and problem-solving

This highlights that some students may prefer to focus on teaching. If you go to the bottom of the essay, you’ll see programs being discussed here being mentioned as using them. Northeastern, Brown, Waterloo, and WPI all use a version of this introductory teaching approach in fact.

It also can be a highlight that research and teaching don’t have to align - true of all disciplines, but sometimes forgotten. A great example is Ben Hescott. He was a beloved faculty member at Tufts, but he left after they failed to give him tenure because he wasn’t research-focused and it was a hit to the department that students/graduates were vocal about. Hescott is now at Northeastern and is the “Associate Dean of Undergraduate Education and Experience” for the CS college, IMO a further reflection of the teaching and student focus.

1 Like

I’d correlate this to the T2 above, and would note that the field is surprisingly deep (25ish schools at least in the US alone IMO). Rather than list them all, I would narrow in other fit/cost factors before looking there. Rankings are imperfect and you can still miss schools, but cross-referencing a few T50’s will capture most of those.

There’s a question of what is meant by teaching in CS. Teaching students how to program or how well to program is only an ancillary function of a top CS department, because they assume (correctly) that a good and highly interested CS student should be able to improve such skils mostly on their own through practices both in and out of classes. Their job is to teach higher level and more theorectical aspects of a CS education that student can’t easily learn on their own.

1 Like

Students want to find out what people think about various schools. They need to get soft information so they can make decisions.
I do the same thing when I have no experience with a school. I’ll ask multiple people, hope for various perspectives then dig deeper based on what others say. I don’t want an “unified” view to make someone on the thread happy.

2 Likes

I’d pretty much agree. I 'd move Northeastern down to 2.5 ( Think their co-op gets them better jobs than some other groups but they are not in the Georgia Tech category or Purdue).
Again, any student can make a great path for themselves particularly in a field like CS where talent and knowledge counts more than college name.

@Happytimes2001 would you share the criteria you use to evaluate a college for CS? I would like to increase my understanding because we hire a lot of people in the field and are open to better ways to recruit. It is a tough market and very competitive for recent graduates? Of the 1k or so we have brought on, it has been particular challenging to find the right mix of skills and students.

When you devalue the intro progression, that’s exactly how you exacerbate CS’s diversity problem. You can’t magically get to upper-level CS without a good understanding of the fundamentals, and programs that leave their intro students to sink or swim end up inheriting the diversity issues earlier in the pipeline, so to speak. I think saying that good generalized problem-solving skills are “easy to learn on your own” is exactly the problem in a world that’s increasingly more influenced by these graduates.

Also, nowhere in that does it say to not teach or use upper-level CS. The main focus of that essay is the first year of four years of classes.

I’m not sure how diversity gets into this discussion about the quality of CS teaching. Some of the best programmers in the world didn’t learn their programming skills in a CS class. Programming itself is a technique and it doesn’t solve any problem on its own. Besides, programming methods and techniques evolve quickly and what’s the state-of-the-art today may become obsolete tomorrow, so what a student really needs is the skill to learn on his/her own these basic techniques, much less the techniques themselves.

2 Likes

How important is creativity in programming? Is that a rarer asset with CS students?

Programming is a medium for problem solving and math of course, and what is actually taught in intro CS courses is the underlying thought processes. While some types of people learn this outside of a classroom, we do a huge disservice by not formally teaching it to people who might not have fallen into those circles early. What you end up with without accessible and quality intro CS courses is a perpetuation of the “if you like hacking on things, do CS, otherwise go do something else” mindset without ever talking about explicit design, organization, and higher level math.

When you only cater your intro courses to that style, you inherit a lot of negative diversity forces around things like the gaming community and existing power structures. While early STEM pushes are helping, It’s a big uphill climb and a lot of known CS universities are IMO basically saying “not my problem” by neglecting their teaching, particularly for intro courses. The gender difference between pure math and CS is a very telling piece of the puzzle.

In short, it’s about the people who miss out due to inadequate intro CS, not those who don’t need it. When top research hubs don’t care about their intro teaching, you end up producing a power structure in CS around those people who come from those early communities and inherit those negative diversity effects. We see this now with mostly people from the early pre-dotcom boom internet era when it comes to the giants and old hats, though of course this is shifting slowly with the times and each new hot SV company over the past 5 years in particular.

I’ve seen how important this is personally with my friends. The AP/Honors math classes at my high school skewed 60/40 women, but none had any interest in our early CS program. Luckily, a few ended up at colleges with good approachable CS programs (Brown, for example) and are now CS grads working in tech. Bad intro programs can scare these people off, and good ones help drive gender diversity in CS in particular. I’ve also seen this effect through over 3 years helping to teach intro CS.

The essay I linked to makes exactly this point, and argues directly against teaching those transient things in intro CS.

You’ll get a lot of varying answers here, but I’d say it certainly doesn’t hurt. In industry, there are a lot of jobs that don’t need the creativity and more or less are a 9 to 5 to pay the bills and build some enterprise software. There’s also the CS theory rabbit hole and the very specific type of creativity needed for that.

But in both industry and research there are pockets that highly value and benefit from creativity, though much of it not in the visual arts way (but some is! See AI generated art, etc). And on the whole, I think many types of creativity are missing in CS, so students with those types IMO can bring a lot of value and do interesting things as a result :slightly_smiling_face:

Academically, it probably won’t be noticed IMO. It will come out towards the later years, or in side projects. So it’s less of an aptitude add as a longterm positive. I’d personally wager the lack of early reward for creativity is likely a part of the later shortage.

2 Likes

UMass over Tufts or BC??? Never, not even close!

1 Like

I don’t want to minimize the importance of intro CS courses for some students, but I also don’t think these courses are important benchmarks to the quality of a college’s CS education. They serve a good general educational purpose by introducing more students to the CS discipline, but they won’t be what make the material difference in the quality of the college’s CS graduates.

I think we’ll have to agree to disagree, but to go in-depth one final time:

For software engineering (what most CS grads go into, even at top research schools), fundamentals shape a lot. Especially given how little of upper-division CS some programming jobs use, even in FAANG or similar.

Even ignoring the output grad quality though, that’s not the question for people here: it’s picking a school as an individual. A missing factor in that measure is who ends up graduating with a CS degree at all. Bad intro courses or other negative environmental factors make people change majors, even if they could have been well suited for it. If you don’t have a ton of CS experience before college, a good intro sequence likely has more value when selecting a school.

It’s also a teaching quality proxy. The number of grads affected by intro CS far outweighs how many students will take advantage of research strength in a meaningful way. So if you’re talking ranking for a student who’s not planning on going for a Ph.D., then you really need:

  1. Sufficient depth of electives
  2. Good teaching
  3. Industry rep / connections / you’ll get a nice job when you graduate / etc

Virtually every school being discussed here has (1), so it comes down to (2)/(3). While there are differences with (3), it’s often talked about how CS hiring is far more about capability than a brand name, maybe save the big 4 and a few of the “Tier 2’s” here (e.g. GT, Waterloo). So what differentiates a quality undergrad CS degree seems to be pretty decently predicated on (2), a notoriously hard thing to rank. I’d trust a school that puts time into a quality intro program and student support to follow through with those upper-division electives more than one that doesn’t. Not easy info to find, but worth noting when you can get it.

Even if you are interested in research, most all of these are sufficient - what’s the actual quantifiable difference an undergrad gets?

Then again, this whole tangent really just lays bare the marginal difference between all of these as, well, marginal. So if Tufts or some other non-T1/T2 CS school checks 20 other boxes, perhaps this lays out why you should go there instead of focusing on CS strength. As always, CC circles back to fit and cost :smile:

1 Like

Hi. In your opinion, do you think small liberal arts colleges may satisfy your criteria of good CS education due to the teaching and good intro classes? Some say small LAC colleges don’t have a good research fund and opportunities . Harvey Mudd for instance is known to have excellent intro CS classes. Do you know anything about Carleton College? They are supposed to be #1 in teaching quality. I am just wondering how small LAC can fare against larger schools.

2 Likes

U Mass is a great school, but it is a school packed with kids from the top 1/3 of their class.

Tufts and BC are also great schools, packed with kids from the top 10%.

Think how bad Tufts and BC would need to be, in order to have an inferior output. It is not just the learning. It is the intellectual horsepower of the students coming in, and their overall academic seriousness and ambitions.

1 Like