Live data from Hacker News

Northeastern's redesign of the CS curriculum

huntnewsnu.com

171–180 of 189 posts

Re: Northeastern's redesign of the CS curriculum

#171

Earlier quoted context omitted.

I reject the idea that OO is a "major school of programming"; or, if it is, that school has been largely discredited. I think you're on firmer ground if you claim that ideas from OO still inform modern programming (traits and interfaces being a good example). I think a lot of 2025 developers would be alarmed to think that a project had started from an object-oriented design perspective.

It's still useful sometimes. Right now I have a functional-style program I think would be easier to write if was redesigned in Mixin-style OOP. Usually happens the other way, but not always.

I don't think it's useless so much as that it's not on the same tier of fundamental importance as structured programming, the memory hierarchy, concurrency, functional decomposition, recursion, trees, tables, and graphs.

And when you look at what the actual classes teach: it's usually patterns-y Java. GoF patterns are effectively obsolete. You might still need to grok them, but that's trade knowledge, not fundamental computer science. You don't come out of a CS degree knowing Hibernate or SAP, either, but people figure it out on the job.

Re: Northeastern's redesign of the CS curriculum

#172

Skimmed it quickly and saw it taught Racket to teach programming design. I've worked at a coding bootcamp in 2017. And I have to say, I was a bit jealous. Where I was learning through methods at university that were a bit quaint, my students learned JS with the latest frameworks. And sure, you can argue whether the length of 3 months is enough, but they were surely getting a better education. What they learned in 3 m…

@dang Is this another instance of that concurrency bug in the comments?

I hope not! because I thought I'd fixed that bug.

Re: Northeastern's redesign of the CS curriculum

#173

Skimmed it quickly and saw it taught Racket to teach programming design. I've worked at a coding bootcamp in 2017. And I have to say, I was a bit jealous. Where I was learning through methods at university that were a bit quaint, my students learned JS with the latest frameworks. And sure, you can argue whether the length of 3 months is enough, but they were surely getting a better education. What they learned in 3 m…

Are you sure you meant to post in the thread about NEU's intro CS curriculum?

I've moved the comment there now. It was originally posted as a top-level comment to https://news.ycombinator.com/item?id=42676928; hence the 'wtf' replies. Thanks!

Re: Northeastern's redesign of the CS curriculum

#174
post #135
post #66

Earlier quoted context omitted.

Right, so... just don't teach Java and OO at all? They're not fundamental. Some of the ideas in that course are something closer to discredited . Later I edited "a lot of" to "some of"; I was coming on too strong.

If by discredited you mean incorporated into many of the most used languages as well as several of the hot new ones then yes. Furthermore part of PLT is learning the past and what worked and what didn't.

I don't think that literally means learning how to write AbstractFactories in Java.

Re: Northeastern's redesign of the CS curriculum

#175
Pyret, the pedagogical language for the next intro course seems like a massive improvement over Racket. I have faith in the PL team at Northeastern, especially BLerner to not skip problem-solving fundamentals in an introductory course. Having been a TA for Fundies I and seeing what these professors value, I feel confident it’s in capable hands and that it may ultimately be an improvement.

Re: Northeastern's redesign of the CS curriculum

#176
post #83

Earlier quoted context omitted.

>PE for physicists You meant juggling and fencing? A more pragmatic answer is who’s going to teach it? Someone with weak skills in the discipline? Or someone with weak skills in computing? (This is a glib answer) Finding people at the true intersection is surprisingly hard, and those people tend to be busy. In grad school I took and advanced statistics course in the psych department. The concepts were new to me but n…

Who teaches the " for business" courses? IME, it was math professors. It's not unreasonable for the biology department to come up with the common programming use-cases for their students, then have the CS department build a course around those skills. My minor was Bioinformatics. The biology department taught foundational course like biology and genetics and the CS department taught the courses on processing data.

> Who teaches the " for business" courses? IME, it was math professors.

IME its the same...I've also found that approach works less well at generating good learning. It (seemingly inherently) results in decontextualized knowledge and does not get students over the application gap, which is the exact problem that such things are trying to solve.

Re: Northeastern's redesign of the CS curriculum

#177
post #169

Earlier quoted context omitted.

I majored in biology. A shell script would be a much more cumbersome tool for making a scatterplot, running a linear regression on a csv, etc. The things that people are using Python for are significantly easier with Python. There are libraries designed to make these tasks super simple, and with the right IDE you wouldn't ever have to touch the shell.

I put gnuplot code and python code in my shell scripts all the time. Someone like you should think of it as a jupyter notebook that doesn't need a web browser.

I'm someone that uses shell scripts in my day to day work (I don't work in biology any more, but did for a while).

I'm saying that for the average scientist using these tools, a shell script is not an easier or more useful tool than Python plus libraries. Can you honestly say that shell scripts are more intuitive and easy to understand than Jupyter notebooks? Are they going to be more easy to transfer to other stakeholders?

This is one of those solutions that seems better in theory, but likely isn't in practice.

Re: Northeastern's redesign of the CS curriculum

#178

Earlier quoted context omitted.

OOP is one of the major schools of programming, significantly more widespread than functional languages. The only thing arguably used more is "simple" procedural, but even that is doubtful. Sure, in the 90s people thought OOP was the be-all-end-all, and we've moved away from that, but it still makes complete sense to teach the main different styles of programming. C and assembly are basically covered by a course on c…

I reject the idea that OO is a "major school of programming"; or, if it is, that school has been largely discredited. I think you're on firmer ground if you claim that ideas from OO still inform modern programming (traits and interfaces being a good example). I think a lot of 2025 developers would be alarmed to think that a project had started from an object-oriented design perspective.

That's a bubble thing. The vast majority of serious software engineering is done in OOP. Java, C# and C++ alone are more than half the market, and then you have Python, Ruby, Kotlin and many more. Even JS has moved largely to (bastard) classes.

Then you have data (growing above average), scripting and partially frontend that are done differently, but they are still a minority of the job market.

Re: Northeastern's redesign of the CS curriculum

#179

Earlier quoted context omitted.

I reject the idea that OO is a "major school of programming"; or, if it is, that school has been largely discredited. I think you're on firmer ground if you claim that ideas from OO still inform modern programming (traits and interfaces being a good example). I think a lot of 2025 developers would be alarmed to think that a project had started from an object-oriented design perspective.

That's a bubble thing. The vast majority of serious software engineering is done in OOP. Java, C# and C++ alone are more than half the market, and then you have Python, Ruby, Kotlin and many more. Even JS has moved largely to (bastard) classes. Then you have data (growing above average), scripting and partially frontend that are done differently, but they are still a minority of the job market.

If it was 2005 I would take this argument pretty seriously, but it's 2025 and I find it less plausible. Python has (somewhat dumbed down) OOP features, but modern idiomatic Python tends not to be domain-modeled intricately-encapsulated OOP; in fact, it's increasingly functional. You bring up Javascript, and my retort is React: the most popular UI framework in Javascript --- UI frameworks being the archetypical case of a problem domain well-suited for OOP --- is largely a rejection of OOP principles and a marked shift towards functional programming.

(I'm not a Lisp or functional partisan; like I said downthread, it's Go and Rust for me these days mostly).

Keep my original point in mind here, which is simply that OOP principles are not a fundament of software development in the same way algorithms, data structures, memory models, and concurrency are. We're discussing curricula that have students learning class-based object-oriented programming as expressed in Java as a requirement, and basic systems programming as an elective. That's backwards.

I don't care if you still use OOP. I'm not advocating for its removal from production codebases. There are plenty of things that earn their keep in modern product stacks that aren't fundamentals of computer science!

Re: Northeastern's redesign of the CS curriculum

#180

The end of an era. This is nothing less than a travesty honestly. The current (now former) curriculum at NEU was uniquely exceptional, and now it will be conformingly adequate. Anyone who complained about the difficulty or lack of "job-market applicability" of the Fundies classes entirely missed the forest for the trees. The point is the design _process_, and using Racket forced this. It also demonstrated the magic t…

At the end of all of this I wonder what will become of such great professors like Felleisen, Hescott and Lerner. A real shame
Post reply on HN