Live data from Hacker News

Northeastern's redesign of the CS curriculum

huntnewsnu.com

61–70 of 189 posts

Re: Northeastern's redesign of the CS curriculum

#61

I haven't seen many CS curricula start bottom-up with things like digital logic, yet the best programmers I've worked with all started around there and then went upwards --- many of them were self-taught, and although I realise that introduces some selection bias, I have also worked with others who were self-taught but started with some HLL instead, but they didn't have quite the same performance.

> I haven't seen many CS curricula start bottom-up with things like digital logic

That's how we did it in Slovenia (Uni of Ljubljana). You start with discrete math and bool algebra, and you learn how transistors work in physics, then you learn about digital circuits and write some assembly, after that it kinda feels like two parallel branches. One set of professors teaches you the math of it all, the other set teaches you how all that math works in practice.

It's a really good curriculum.

Yes yes you also have programming classes in parallel with the digital logic and the math and the assembly. Gotta make sure folks can get those all important part-time jobs and feel like they're learning something useful. It's common, or at least was back then, for students to have jobs in industry while they are studying CS. I honestly think having a job and getting to apply what you're learning makes it stick more ... even if it leads to abysmal completion rates (average 7.5 years to graduate when I was there).

Re: Northeastern's redesign of the CS curriculum

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

I once asked a professor about this and the answer I got was interesting.

Basically Java and OO and Design Patterns are taught upfront because it turned out this was a huge stumbling block for a lot of people. Bigger than for instance C and pointers. Like it just doesn't click for a lot of people and they end up struggling a lot the rest of the major

So it's not that these are the most crucial concepts, but you want people to "fail fast" and have a sense if they'll succeed in the major within the first year

Re: Northeastern's redesign of the CS curriculum

#63

I went to Caltech when they were contemplating similar things in the CS curriculum, although the normal curriculum was less radical than Northeastern's seems to be. There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything. Teaching algorithm design in that class is not particularly useful to a biologist who ju…

> There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything. Why doesn’t the CS department have a different intro class for CS majors and non-CS majors. That’s a common practice in the mathematics, physics, etc. departments. (To have harder intro classes for the students majoring in your department vs those who…

Costs. They don't want to have two courses teaching largely the same concepts when one will do. Short sighted, but that's how they roll.

Re: Northeastern's redesign of the CS curriculum

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

If you are going to teach OO in Java, I fail to see why teaching design patterns is so awful.

Re: Northeastern's redesign of the CS curriculum

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

If you are going to teach OO in Java, I fail to see why teaching design patterns is so awful.

I mostly point it out as a reason why teaching OO as a fundamental is a bad idea in the first place.

Re: Northeastern's redesign of the CS curriculum

#66
post #62
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).

I once asked a professor about this and the answer I got was interesting. Basically Java and OO and Design Patterns are taught upfront because it turned out this was a huge stumbling block for a lot of people. Bigger than for instance C and pointers. Like it just doesn't click for a lot of people and they end up struggling a lot the rest of the major So it's not that these are the most crucial concepts, but you want…

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.

Re: Northeastern's redesign of the CS curriculum

#68

I went to Caltech when they were contemplating similar things in the CS curriculum, although the normal curriculum was less radical than Northeastern's seems to be. There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything. Teaching algorithm design in that class is not particularly useful to a biologist who ju…

> There is a tension here that is being understated which is that people of every major now take the intro-level CS class because programming is integral to everything. Why doesn’t the CS department have a different intro class for CS majors and non-CS majors. That’s a common practice in the mathematics, physics, etc. departments. (To have harder intro classes for the students majoring in your department vs those who…

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 run these classes because they demand full time attention.

Re: Northeastern's redesign of the CS curriculum

#69
post #62
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).

I once asked a professor about this and the answer I got was interesting. Basically Java and OO and Design Patterns are taught upfront because it turned out this was a huge stumbling block for a lot of people. Bigger than for instance C and pointers. Like it just doesn't click for a lot of people and they end up struggling a lot the rest of the major So it's not that these are the most crucial concepts, but you want…

This makes sense. You might not immediately need to design a complex hierarchy, but you'll encounter them pretty early in a lot of languages standard libraries.

Re: Northeastern's redesign of the CS curriculum

#70

i'm a dropout just do horrible coding for fun can anyone explain why CS programs are adamant about not teaching on the job skills? like databases, web, embedded, security plus theory

In our pretty dynamic fast moving industry, it is more important to learn how to learn technologies, rather than learn the technologies directly. No one wants to be a specialist in 20 year old outdated tech late in their career. Having a strong foundation in how CS tech generally works allows you to move between different tech stacks fairly quickly.
Post reply on HN