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.
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.
I had basically a machine shop course in mechanical engineering in college. OK, it was a bit more than that but I had no "shop" in high school.
Certainly didn't really do anything that would have really prepared me for a civil engineering or or chemical engineering degree.
I had actually done a little bit of fiddling around with electronics (and maybe should have majored in that). But certainly college would have been a whole different level. (With a whole lot more math which was never my strong suit.)
So, yeah, these days I think there's a different baseline assumption for CS/programming than many other majors.
I think it was this one, unfortunately archived now. I don't know the new one
https://ocw.mit.edu/courses/6-00-introduction-to-computer-sc...
I can only report that, had you dumped me into that content with those assignments, with no prior background I'd probably have been dropping that class.
The online version was more Grimson on the algorithms and Guttag (who wrote the Python book) on a bit of the programming. But the emphasis was more on the algorithms.