← Back to context

Comment by ghaff

3 months ago

There's definitely a tension at top STEM schools (probably especially in CS) between assuming students have some baseline knowledge of whatever field and just tossing them into the deep end of the pool and figuring out the practicalities on their own.

I did take one of the MIT intro CS MOOCs at one point for kicks. Very good. But it was more or less learn Python on your own if you don't already know it (or how to program more broadly). That doesn't really happen in a lot of other disciplines other than some areas of the arts.

At one university I went to, the head of the CS department was quoted as saying "[We don't need to care about the job market,] Our job is to create researchers."

I thought that was pretty strange at the time because like 5% of the students end up going into research. So that was basically like him saying I'm totally cool with our educational program being misaligned for 95% percent of our customers...

Maybe it makes sense for the big picture though. If all the breakthroughs come from those 5%, it might benefit everyone to optimize for them. (I don't expect they would have called the program particularly optimized either though ;)

  • Well you can say there is a difference between "computer science" and "software engineering", plus many "universities" are particularly research focused.

    A chemistry, physics, or even MechE BS is coming out only at the very beginning of their training, and will require lots of specific on-the-job training if they go into industry. School is about the principles of the field and how to think critically / experimentally. E.g. software debugging requires an understanding of hypothesis testing and isolation before the details of specific tech ever come into play. This is easy to take for granted because many people have that skill naturally, others need to be trained and still never quite get it.

    Edit: of course if only 5% of grads are going on to research then maybe the department is confused. A lot of prestigious schools market themselves as research institutions and advertise the undergrad research opportunities etc. If you choose to go there then you know what you're getting into.

    • >A lot of prestigious schools market themselves as research institutions

      Out of one side of their mouth maybe.

      Out of the other, they absolutely are not telling potential undergrads that they may tolerate them but they're really focused on research.

  • > I don't expect [the 5% of students who end up going into research] would have called the program particularly optimized either

    This. I went to the University of Iowa in the aughts. My experience was that because they didn't cover a lot of the same material in this MIT Missing Semester 2026 list, a lot of the classes went poorly. They had trouble moving students through the material on the syllabus because most students would trip over these kinds of computing basics that are necessary to experiment with the DS+A theory via actual programming. And the department neither added a prereq that covers these basics or nor incorporated them into other courses's syllabi. Instead, they kept trying what wasn't working: having a huge gap between the nominal material and what the average student actually got (but somehow kept going on to the next course). I don't think it did any service to anyone. They could have taken time to actually help most students understand the basics, they could have actually proceeded at a quicker pace through the theoretical material more for the students who actually did understand the basics, they could have ensured their degree actually was a mark of quality in the job market, etc.

    It's nice that someone at MIT is recognizing this and putting together this material. The name and about page suggest though it's not something the department has long recognized and uncontroversially integrated into the program (perhaps as an intro class you can test out of), which is still weird.

    • >It's nice that someone at MIT is recognizing this and putting together this material. The name and about page suggest though it's not something the department has long recognized and uncontroversially integrated into the program (perhaps as an intro class you can test out of), which is still weird.

      While this comes out of CSAIL, I wouldn't ascribe too much institutional recognition to this. Given the existence of independent activities period, it's probably a reasonable place for it given MIT's setup. Other institutions have "math camp" and the like pre-classes starting.

      It's probably a reasonable compromise. Good schools have limited bandwidth or interest in remedial education/hand-holding and academics don't have a lot of interest in putting together materials that will be outdated next year.

      7 replies →

  • Historically, the point of a university is not to be a jobs training program.

    • It kind of depends on how you define "history". Before STEM dominated the hiring landscape, Universities were less career focused. No employers in these fields, as far as I know, have ever offered apprenticeships to teach new hires chemical engineering or applied mathematics from the ground up. University will not prepare you for a corporate job, exactly, but it gives you a background that lets you step into that, or go into research, etc. Lots of employers expect new hires to have research skills as well.

      I think there are a number of ways in which financial incentives and University culture are misaligned with this reality.

  • Probably one of those thoughts you should self-filter (and the alumni association sure wishes you would).

    But it's also the case that (only half-joking) a lot of faculty at research universities regard most undergrads as an inconvenience at best.

    • It depends on the university, but the filtering thing is very true.

      In my experience, the more advanced the material, the worse the teachers are. Or more precisely, the improvement in teaching does not usually keep up with the increase in difficulty. (There appears to be no correlation, in fact.)

      Which implies that the better a university is (the more difficult the material), the more it relies on filtering rather than education.

      Which seems to be in line with how the top universities are perceived anyway as selection criteria, primarily places to get a network, rather than places to get an education.

      It's neither good nor bad, but it is a little sad :)

      ---

      I do notice that my assumption here is that the more difficult the university is, the better it is. I think this is broadly true, both objectively and subjectively, at least for my purposes.

  • They like to say things like that or some version of "we want to teach the concepts, the specific technology changes too fast". Does it? Just seems lazy to me.

  • In some schools they have a separate degree program in informatics or computer technology, for precisely this reason -- computer science is a different field.

It's tough to for me to judge cause I've been programming for 30 years maybe I'm underestimating how hard it is, but I look at learning a new language very different that trying to understand the graduate level CS work I've seen at a top STEM school.

Git, shell, basics.. even simple python if you have any at all programming experience - not nearly as hard as what they're teaching in the class.

Most of the time something like that like learning latex or git basics.. they'll say.. you'll pick up what you need. They're not gonna spend 12 weeks on those subjects they aren't hard enough.

  • Discrete tools are fairly easy. On the other hand, I think a lot of people here would laugh at the "text book" for the introductory FORTRAN course I took at said school.

    Of course, you were struggling with fairly primitive tools at the time as well. Made a typo? Time to beg the grad students running the facility for some more compute cycles.

    Although it's out of print I don't immediately see a full copy online. https://www2.seas.gwu.edu/~kaufman1/FortranColoringBook/Colo...

I feel like most first intro classes in Computer Science is learn the coding language on your own. At first I was like why? Why don't they hold our hands while we do this. But since I have had some space to look back it really is a pretty good representation of our industry. You are going to need to learn new languages. So getting thrown in the deep end is a pretty good precursor for what work is going to look like.

  • This isn’t a bad idea, just not for the intro course. When I was an undergrad “programming language” was this course. You were given a brief introduction to brew languages and paradigms then expected to figure it out from there. But at this point you had a foundation of experience to build on.

  • I don't totally disagree. On the other hand, based on the MOOC I took, had I been going in literally cold (as in college, new experiences, this is my chance to dive into CS and programming), I'd have been completely lost in a way that wouldn't have been the case in other engineering disciplines.

    Now, I'm sure some would argue "tough." What are you doing at MIT then? And certainly, there are SO many opportunities these days to get some grounding in a way that may not be as readily possible with chemistry much less nuclear engineering for example. But it is something I think about now and then.

    • What makes you think this would not have been the case in other engineering disciplines?

      I'm also a CS guy so I can't directly challenge this on the whole, but my experiences in some classes outside of this in other domains didn't feel like they were 'comfortably' paced at all. Without extensive out-of-class work I'd have been completely lost in no time. In fact one electrical engineering course I took was ironically considered a weed out course, for computer science, as it was required, and was probably the most brutal (and amazing) class I've ever taken in my life.

      1 reply →

> There's definitely a tension at top STEM schools (probably especially in CS) between assuming students have some baseline knowledge of whatever field and just tossing them into the deep end of the pool and figuring out the practicalities on their own.

Pretty sure most college CS programs have an optional class for those new to programming ( Introduction to Java or C or Python ). But after that, you are expected to learn new languages/tools on your own mostly.

  • Most? Probably.

    Not sure how common at what are considered top schools without looking at course catalogs. I expect if you're really new to programming, jumping into a CS program at an elite school could be a bumpy ride given 90% of the class will have a fair bit of experience and the class will be pitched to that level.

    • > Not sure how common at what are considered top schools without looking at course catalogs.

      I am fairly certain 100% of the top CS programs ( and 99% that every CS program ) in the country have an intro to programming class for incoming freshman with no background in programming - usually Python, Java or C. MIT does. Besides, there are tons of material online to learn programming on your own.

      > I expect if you're really new to programming, jumping into a CS program at an elite school could be a bumpy ride given 90% of the class will have a fair bit of experience and the class will be pitched to that level.

      Agreed. But the challenge isn't insurmountable.

That’s generally how CS is taught at many top schools. If someone needs handholding just to figure out python then that’s bad news for the someone