Teaching object-oriented design as fundamental computer science seems like it would have been an odd decision for 2025. I looked up the class syllabus, and it seems to have been taught in Java (fine) and makes extensive reference to design patterns (not fine).
What's the problem with design patterns? At its core, a design pattern is just a name applied to a frequently used code pattern. It gives us a common language. I can tell you we are using a publisher-subscriber model and you know what that is without me having to be super specific.
Northeastern's redesign of the CS curriculum
141–150 of 189 posts
Re: Northeastern's redesign of the CS curriculum
#142Earlier quoted context omitted.
I disagree? The point of a CS degree isn't to prepare you for the 20 years of stale J2EE code your first job is going to throw at you, and object-oriented design is pretty out of fashion.
What programming job are you getting in the next few years that understanding oo isn’t important? Inheritance, polymorphism and encapsulation inform every major professional programming language and framework (except c). Even go which in many ways is active response to oo uses most of those concepts extensively. One major challenge of people programming in go is how to adapt the familiar patterns to it. Now I’d proba…
Rust and Go have concepts that approximate class-based object-oriented programming (and: if you look at NEU's OO syllabus, that's what they're doing), but only barely. You could teach someone how to use an interface without teaching "polymorphism" as a concept. Encapsulation as a language feature is an example of an OO-ism that I think is done and dusted. We hid implementation details in C, too! The notion of an abstract data type is fine to hold on to. The idea of "friend classes" and "protected" fields and other ACLs for variables, though, I don't think we're going to see come back.
Re: Northeastern's redesign of the CS curriculum
#143Earlier quoted context omitted.
That's not "bottom-up". That's a concern for EE/CE or something in that general scope. As the old Dijkstra quote correctly states, physical computing devices have as much to do with CS as telescopes have with astronomy. They're eating utensils, not the main course. Computer science (the name in English is misleading and horrible) is not about physical computing devices. Devices are merely an instrument. Knowing how t…
What kind of argument is this? Do you also think it's fine for an astronomy course to not teach their students how to use telescopes? Or a creative writing class how to perform the physical act of writing? If a student knows how to use a computer (a prerequisite to starting software project) they will demonstrably have more opportunities for learning than one who doesn't. And it's not even close. "He who seeks for me…
A computer science class teaching how transistors work is more like a creative writing class teaching how pencils are made, and focusing on the quirks a particular language is like the creative writing class teaching a specific style of cursive.
There are degrees which blend the EE and CS worlds, commonly referred to as computer engineering. That would be more along the lines of mixing the hardware/boolean logic idea with then software development. But that's definitely a different perspective compared to what computer science historically meant.
Re: Northeastern's redesign of the CS curriculum
#144Earlier quoted context omitted.
What programming job are you getting in the next few years that understanding oo isn’t important? Inheritance, polymorphism and encapsulation inform every major professional programming language and framework (except c). Even go which in many ways is active response to oo uses most of those concepts extensively. One major challenge of people programming in go is how to adapt the familiar patterns to it. Now I’d proba…
My argument accepts the idea that you're likely to come across object-oriented code in your first jobs in the field, the same way you're going to come across complicated SQL joins, which is also something a CS curricula is unlikely to prepare you for. I would advocate for delegating OO concepts to that kind of level of "trade knowledge" rather than elevating it to a "fundamental" of computer science. Rust and Go have…
And perhaps we’ve moved past inheritance hierarchies (though multi/parent inheritance has been interestingly used recently) but even then, knowing about it and its negatives seems as fundamental as understanding goto.
Are they on the programming side of the computer science curriculum rather than computational math? Yes! But much of the normal curriculum is. Similar to how I’d expect the relational calculus to be taught as well as how sql relates to it.
I think you’re pretty far out on a limb here and I’d be very skeptical of a curriculum that didn’t have a segment on oo early on.
Re: Northeastern's redesign of the CS curriculum
#145The 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…
I'm going to provide a controversial take here as CS grad from a similarly-tiered program: there is a huge chasm between top-4 cs programs and everyone else. The top 4 are obvious: Stanford, MIT, CMU, Berkeley. Then there are the cs programs of the ivy leagues, not as strong, but usually you have a rich parent or uncle who has already speed-tracked you into a hedge fund, so lets put those aside. I didnt go to a top-4…
Re: Northeastern's redesign of the CS curriculum
#146My son went to Northeastern ('19) and now designs programming languages and can program skillfully in ANY language. I'm glad he went to Northeastern before this announced change. I feel my money spent at Northeastern was well worth it, not because it made him employable (it did), but because it gave him critical thinking and research skills. It would be sad if too many future Northeastern grads were limited to progra…
Re: Northeastern's redesign of the CS curriculum
#147Re: Northeastern's redesign of the CS curriculum
#148Earlier quoted context omitted.
I'm going to provide a controversial take here as CS grad from a similarly-tiered program: there is a huge chasm between top-4 cs programs and everyone else. The top 4 are obvious: Stanford, MIT, CMU, Berkeley. Then there are the cs programs of the ivy leagues, not as strong, but usually you have a rich parent or uncle who has already speed-tracked you into a hedge fund, so lets put those aside. I didnt go to a top-4…
Retired CS prof here (from a below (ok way-below) top-4 program). There is no longer a job market for CS grads outside of top-4? Is this true? I had no idea, as I understood it, CS major numbers are still rising.
Re: Northeastern's redesign of the CS curriculum
#149Earlier quoted context omitted.
I'm going to provide a controversial take here as CS grad from a similarly-tiered program: there is a huge chasm between top-4 cs programs and everyone else. The top 4 are obvious: Stanford, MIT, CMU, Berkeley. Then there are the cs programs of the ivy leagues, not as strong, but usually you have a rich parent or uncle who has already speed-tracked you into a hedge fund, so lets put those aside. I didnt go to a top-4…
Retired CS prof here (from a below (ok way-below) top-4 program). There is no longer a job market for CS grads outside of top-4? Is this true? I had no idea, as I understood it, CS major numbers are still rising.
CS major numbers == supply
I'm speaking about jobs == demand
Re: Northeastern's redesign of the CS curriculum
#150Earlier quoted context omitted.
Retired CS prof here (from a below (ok way-below) top-4 program). There is no longer a job market for CS grads outside of top-4? Is this true? I had no idea, as I understood it, CS major numbers are still rising.
GP is just making stuff up. There are plenty of jobs for CS grads still outside the top-4. Will there be some constriction in the market? Probably, code generating LLMs are getting more popular. But there are plenty of systems that are a bit too important to leave to random code generators.
Firstly, there are not "plenty of jobs for CS grads" -- if there were, you would have supply (us cs grads) matching up with demand (us tech jobs). Yet you see tons of unemployed CS grads. FAANG mostly has hiring freezes, and you have to be part of the inside club to be let in. Many cs grads go into bs jobs way under their potential (random government agencies, contractors.)
Walk into any US tech area and you wont see any Northeastern CS grads, or many non-Top-4 grads. You will either see Top-4 CS grads in leadership positions or at their own startups -- or you will see foreign grads. In some offices, 90% or more of the workers are foreign grads, not US school system grads.
Tons of job postings are fake. There was an entire HN post on this last week, companies posting fake jobs. Sometimes it is just to show a best effort before an insider is hired.
I think LLM copilots are a factor, but they are just a convenient distraction from the real problem -- a supply-demand-price mismatch. ZIRP conveniently hid the problem, but now it is out and visible.