Live data from Hacker News

Northeastern's redesign of the CS curriculum

huntnewsnu.com

151–160 of 189 posts

Re: Northeastern's redesign of the CS curriculum

#151
post #114

Earlier quoted context omitted.

Doing weed out courses on purpose I think is elitist and unnecessary, but computer science does require understanding of some hard topics. Linear algebra, theoretical computer science and the like may have very high failure rates, but are a necessary pre-requisite to become a computer scientist.

I wouldn’t say linear algebra is a necessity to being a computer scientist. At least, not the full linear algebra content. Knowing matrix math is enough.

It's not completely necessary. But I will say, as someone who began their career as an 18 year old "self-taught developer" then completed a CS degree at 30, I found linear algebra to be the most useful bit of knowledge that was missing from my kit.

Re: Northeastern's redesign of the CS curriculum

#152

Earlier quoted context omitted.

At least when I went to school, intro CS was a weed out course for getting into the CS department in the first place, along with calculus based physics that potential engineer and physic majors also had to take. I think these days it’s a bit different in that many schools allow high schoolers to apply directly to the CS department? But then it would be a matter of scale I guess, they usually have clinical professors…

Weed out courses do have various problems. Some of it is regulatory - certain public or public funded universities don't let you eliminate large portions of your cohort. Graduation rate is a part of many college rankings, so there's also an incentive to not fail. I don't think it's completely wrong. Failing a student after he or she sunk a ton of money into it is really not ideal. IMO it seems really easy to pass pro…

Two reasons:

1. Back when I was in CS, the department was much smaller than it was today. This was after the 80s programmer crash, and so they just didn't have enough professors or resources to teach as many students as were interested in being CS majors.

2. You are able to teach to a higher standard if you've filtered the students that enter your department. You can have one or two people fail OS rather than half the class. At some point, it is reasonable to see if the students are committed, and they get to prove themselves a couple of years after high schools, which worked better for people like me who weren't very accomplished until they get to college.

Re: Northeastern's redesign of the CS curriculum

#153

Earlier quoted context omitted.

At least when I went to school, intro CS was a weed out course for getting into the CS department in the first place, along with calculus based physics that potential engineer and physic majors also had to take. I think these days it’s a bit different in that many schools allow high schoolers to apply directly to the CS department? But then it would be a matter of scale I guess, they usually have clinical professors…

Are there "math weed out courses"?

Math isn't popular enough to have weed out courses, and math professors of higher division classes don't mind failing half the class. There isn't much of a drawback to letting as many people who want to major in math.

But intro STEM math is used as a weed out for other majors. You aren't going to get far in CS if you aren't able to ace your basic calculus classes.

Re: Northeastern's redesign of the CS curriculum

#154
post #46

Earlier quoted context omitted.

I graduated with a degree in CS. Checking back with my university they'd added a degree in Software Engineering. CS (traditionally) is more about algorithms, limits, growth. There's a bunch of complexity in even just understanding and calculating what a computer can do. The Software Engineering degree makes so much sense if you're studying about how libraries can be tied together, upgraded, unit/integration testing,…

sorry if this sounds dumb I don't have any formal education why is there a distinction? when i hear computer science i hear the study of computers that in my head means software, hardware, and theory it's like having doctors that study humans theoretically and others that do surgery

Computer science is designing a new video compression algorithm to be more efficient. Software engineering is taking that video compression algorithm and putting into an application users actually use.

Re: Northeastern's redesign of the CS curriculum

#155

Earlier quoted context omitted.

At least when I went to school, intro CS was a weed out course for getting into the CS department in the first place, along with calculus based physics that potential engineer and physic majors also had to take. I think these days it’s a bit different in that many schools allow high schoolers to apply directly to the CS department? But then it would be a matter of scale I guess, they usually have clinical professors…

They need to get rid of the concept of weed out courses. It's bad for learning. If you are paying 30-50K a year for an education, course availability should be a given. Don't use the bell curve as an excuse to deny students an education, or if you are going to use a threshold, use a fixed one, not one that limits by percentage of students. The fat cat admins and professors need to be fired. Too many schools take the…

A lot of schools these days weed out at the application level: if you have a great portfolio from middle school through high school, great! You have it made.

I sort of like the change to redeem yourself during the first two years of your university if you didn't have the ideal secondary school experience to get into a hot department of a hot university. CC can do that as well, I guess, but it is a much harder hill to climb.

Re: Northeastern's redesign of the CS curriculum

#156
post #83

Earlier quoted context omitted.

for non-majors isn't radical. "Stats for business" "PE for physicists" Why isn't "programming for sciences" not a thing?

>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.

Re: Northeastern's redesign of the CS curriculum

#157
post #56

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).

There's some irony here. These courses exist because years ago, CS departments made a shift towards "marketability" in their courses at the expense of "fundamentals". So they introduced Java to replace C++ because that's the language companies hiring new grads were looking for. And now OOP and Java are not skills that companies are looking for in new grads. But instead of acknowledging the facts, the departments are lumping Java+OOP in with "fundamentals" and getting rid of it.

I'm sure if we look back further, C++ displaced some other language (pascal?) for exactly the same reason. And likely the same for the language the proceed C++. I'm just not old enough to have personal experience here.

Re: Northeastern's redesign of the CS curriculum

#158

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…

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…

Your head is stuck in FAANG land.

Re: Northeastern's redesign of the CS curriculum

#159

Earlier quoted context omitted.

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.

I respectfully disagree Jtsummers. 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 int…

> Many cs grads go into bs jobs way under their potential (random government agencies, contractors.)

Why are those jobs deemed bs?

Re: Northeastern's redesign of the CS curriculum

#160

Earlier quoted context omitted.

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…

OO elevated encapsulation, inheritance and polymorphism to fundamental language features. Polymorphism especially has become ubiquitous in modern languages in the same way types 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 pr…

I'm comfortable being out on this limb! I think there were OO-skeptics even at the height of OO (call it the Ruby/Java crossover period; or, maybe, the point at which Norvig gave his patterns presentation, 5 years earlier) and I think the skeptical take looks pretty strong in retrospect.

Whatever you want to say about the OO inspiration of how Rust and Go are structured, they are both clear and deliberate rejections of the OO orthodoxy from that period. They both deliberately don't have classes. They both deliberately eschew inheritance. They both deliberately have less-granular, less-configurable "encapsulation" rules.

And: "encapsulation" is a term we only have because of class-based object-oriented programming. As a professional C programmer in the 1990s, I'd have gotten dinged on a message board by a C++ person if I claimed that I was "encapsulating" when I hid the structs for my timer library or my trie library behind a void pointer. We had abstract data types long before mainstream class-based OO, and then class-based OO claimed credit for the idea.

I also think, as you've alluded to here, mainstream OO has a lot of bad ideas that get people in trouble. The obvious one is animal->mammal->cat->tabby, but there's also the debacles that happen when people try to unify storage with the same inheritance ideas used by compute.

More than anything else though, I think these are the kinds of details you can just learn on the job. What's fundamental to programming? Ironically, it's a lot more of the stuff you get in a Scheme-based class --- and I'm saying this as someone who does not like Lisp. I think Python is a step in the right direction here.

Post reply on HN