Live data from Hacker News

Northeastern's redesign of the CS curriculum

huntnewsnu.com

71–80 of 189 posts

Re: Northeastern's redesign of the CS curriculum

#71
post #19
post #5

15 years after MIT made the same switch from Scheme to Python. Since CS at MIT seems to be fine, so will CS at NEU.

"Everything will be OK" - people will succeed in any system. Nobody will ever compare the outputs of the two systems, so nobody will ever know. Let me instead suggest that one question we should ask is: What kind of students will be successful in the new system? What kinds of students will not? One interesting thing aspect of the former curriculum is that (IMO) it provides an entry for students who are not entering w…

I don't know how much I buy the "leveling the playing field" argument. In my computer architecture class, we learned Sparc assembly. Very few people had encountered much assembly, and definitely not Sparc. At first, it was level, but people with more programming experience quickly adapted since it wasn't actually that different.

Re: Northeastern's redesign of the CS curriculum

#72

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…

This exists already at Northeastern. They have a data science major and minor with a much more 'practical' intro sequence that teaches in Python. I actually TA'd for it, and many of the students were business or life sciences majors going for a data science minor. It even came with a 1-credit practicum geared towards specific domains, which students could choose from.

That uses to be called CIS. When I was at Harvard they still took the algorithms class. Yeah, it was the ezmode version, but it still covered stuff like how to build a hash table and a trie.

Re: Northeastern's redesign of the CS curriculum

#74

It's funny, my friends and I all entered CS around the same time (2010-2013) and I remember thinking it was weird for NEU to be using Racket. Clearly it's successful, and has proven itself to be a great place to start a CS career. I always advocated a C based language, like C or C++. That's where my program (not NEU) began and I hated it but am grateful. We eventually moved onto Java. Later courses through my 3rd yea…

I'm seeing many undergrads write LLM code that they don't even understand. It's a travesty. Can't remember the exact saying, but it went like: "AI creates short development times and super long debugging"

Re: Northeastern's redesign of the CS curriculum

#75

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

It's stunning to work with fresh out of college cs grads and... having to take 10 minutes to explain how git works, why we use source control, and then every day fielding questions about git, merges, and fixing merge conflicts etc as the get up to speed. I realize there is a learning curve as someone fresh out of school but also there should be some basic job training using free versions of tools like git and sql. The average student is only going to get a shadow of the relevance if they're learning pure theory with no context.

Re: Northeastern's redesign of the CS curriculum

#76

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.

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 to use this instrument well is very useful for people in the field, but it is incidental to the field itself.

Even the distinction between "high-level" and "low-level" languages is meaningless from a CS perspective, as it essentially presumes a target language on a target architecture (with the target "low-level" language) that is treated as normative and "real", but again, that is an implementation concern wrt the instrument. From the CS perspective, compilation is just translation from one language to another.

So I dare say that a CS curriculum that starts with digital logic is not really a CS curriculum, but an electronics engineering curriculum. This is the lesson here.

Re: Northeastern's redesign of the CS curriculum

#77
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 step one towards getting a phd and doing research and design of actual tools like compilers, understanding how the CPU sees and asks for data stored in memory, efficient algorithms to do XYZ, it's highly relevant for stuff like embedded computing where you're often working with severe hardware constraints and possibly with a real-time os.

Software Engineering is the study of how to efficiently build software, typically on a medium to large team.

Re: Northeastern's redesign of the CS curriculum

#78
post #5

15 years after MIT made the same switch from Scheme to Python. Since CS at MIT seems to be fine, so will CS at NEU.

History says otherwise.

Before the current curriculum was implemented, a good portion of students were having difficulty finding jobs and co-ops. After the switch, employers were very eager to hire these students.

The change is not a mere "switch to Python" (which itself is not nothing). It is the replacement of a good curriculum with something mediocre.

Also, I don't know how MIT is doing after the switch.

Re: Northeastern's redesign of the CS curriculum

#79
post #75

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

It's stunning to work with fresh out of college cs grads and... having to take 10 minutes to explain how git works, why we use source control, and then every day fielding questions about git, merges, and fixing merge conflicts etc as the get up to speed. I realize there is a learning curve as someone fresh out of school but also there should be some basic job training using free versions of tools like git and sql. Th…

These are tools! You don't go to university to learn how to use git. Besides, tools that come and go. You can pick these up along the way. You can make their use a part of coursework, but this is not what you go to university to study!

That's the point. CS curricula are supposed to teach you deep skills and principles, not how to fiddle around with git.

Re: Northeastern's redesign of the CS curriculum

#80

It's funny, my friends and I all entered CS around the same time (2010-2013) and I remember thinking it was weird for NEU to be using Racket. Clearly it's successful, and has proven itself to be a great place to start a CS career. I always advocated a C based language, like C or C++. That's where my program (not NEU) began and I hated it but am grateful. We eventually moved onto Java. Later courses through my 3rd yea…

None of what you talk about is computer science, it's applied programming.

Computer science is to programming in the same way that astronomy is to navigation.

How can a student "understand" LLMs without the background knowledge of computer science?

Programming courses can teach how to use LLMs, in the same way it can teach how to use Python, Java, language-de-jour.

Post reply on HN