Hacker News new | ask | show | jobs
by woan 5558 days ago
I think its a good move but it isn't new. I think UC Berkeley moved the first CS class for CS/EECS majors to functional concepts and Scheme in 1989 and MIT even earlier, though the latter abandoned it later.

I remember my Berkeley compiler class implementing Scheme and APL subsets atop the gcc backend as well which was again a doubly good learning experience in learning other approaches to programming and their implications.

I have yet to see OO design taught well outside it's varying programming constructs well. What is the right level of abstraction for "finding objects" in the words of Bertand Meyer?

1 comments

> I think its a good move but it isn't new. I think UC Berkeley moved the first CS class for CS/EECS majors to functional concepts and Scheme in 1989 and MIT even earlier, though the latter abandoned it later.

Yeah, but those aren't really the same reasons CMU is switching over. Scheme was historically taught because it offers the opportunity to teach computer science, as opposed to merely teaching programming. Most freshman "CS" courses are oriented around the latter.

The shift into Java/Python/$OOP_LANGUAGE was precipitated by the demands of the real world (eg, the job market). CMU is leading the pack in that respect -- it just so happens that FP is a better fit for the type of work their students will need to do, given the growth of multicore and distributed systems.

OOP has its place, but it is far from a panacea. I'm glad to see at least one school isn't hammering that into freshmen anymore.

It's amazing how many of these so called CS topics that fell out of favor in the 90s have come back in the web world in major ways.

Consistency, concurrency, parallelism, persistence. Yup we're back to basic distributed systems over larger networks.

The vast majority of developers don't need to know all of those things of course, i.e. forms enterprise or some level of RoR applications, but it is kind of interesting to see the resurgence in systems level skills needed in the industry. At one point OS and high transaction developers were down to a negligible percentage of practicing developers and we thought everyone would move to certification type education and high level abstractions.