Live data from Hacker News

Northeastern's redesign of the CS curriculum

huntnewsnu.com

101–110 of 189 posts

Re: Northeastern's redesign of the CS curriculum

#101
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 as a field predates computers. Computer Science is the subsection of maths that answers "what is computable".

Dijkstra line sums it up well "Computer science is no more about computers than astronomy is about telescopes."

Re: Northeastern's redesign of the CS curriculum

#102

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?

Re: Northeastern's redesign of the CS curriculum

#103

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 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 methods without having a definite problem in mind seeks in the most part in vain."

Re: Northeastern's redesign of the CS curriculum

#104

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?

Re: Northeastern's redesign of the CS curriculum

#105
> The program design skills that our current curriculum emphasizes are “what distinguishes a garage programmer from a serious software developer,” in the words of the Fundies 1 textbook.

I lol:ed.

> The “code swap” at the end of the semester, where students are required to build upon other students’ code, is one of the assignments students struggle most with

Wow, sadism may be common in academia, but that is just on a whole different level! A few hours of waterboarding would be nicer.

There is exactly zero evidence indicating that Racket would be a better introductory language than Python, so why not go with what is popular? CS students are de facto expected to already know basic programming. So with Python you can jump straight to algorithms, you don't have to waste time with a foreign syntax and an esoteric interpreter.

Re: Northeastern's redesign of the CS curriculum

#106
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

Analysis is the key. You write a program to multiply matrices. That is software engineering. You analyze the program to figure out how much slower it becomes as the matrices becomes larger, how many times it must access ddr, how well-utilized the caches are, etc. That is computer science.

Re: Northeastern's redesign of the CS curriculum

#107
post #99

Earlier quoted context omitted.

But OO is a fundamental, even if it isn’t longer gospel. OO is important and if I’m three years of computer science there’s no time to teach it then you have to ask what you’d heck they are doing. OO is everywhere and it’s an important software concept and is the right solution for certain classes of problem.

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.

>> and object-oriented design is pretty out of fashion

OO isn't debunked and its not out of fashion.

All that's happened is that it's no longer gospel that "the only way to program is OO".

I write code that has all sorts of styles and approaches that fit the task at hand and sometimes the right tool for the job is OO.

I get the sense you're saying that OO has been proven to be hokum and no one should learn it or do it anymore and all that remains OO is the smoking ruin of 20 years of Java. That's not correct at all.

Re: Northeastern's redesign of the CS curriculum

#108
I read the article and got curious about Pyret. It turns out to be a very nice language, especially for teaching! Very clear and easy to read syntax, no weird bracket mania :D, it even forces programmers to write good formatted code (space surrounding operator!) and encourages the use of best practices (test first!).

I also like the fact that it is functional, invariant by default, and they are working on type checking.

Seeing this, I can't wait to hear about the students' experiences with the new curriculum.

Re: Northeastern's redesign of the CS curriculum

#109
Mixed feelings here.

There are two separate points. The first one, almost a bit hidden, seems to be a "keep the student numbers up" change: allow placing out with AP CS credit and so skipping the intro courses; making the curriculum easier; reducing the number of students who withdraw from some of the modules; removing the teamwork (code swap) exercise; rolling back on fundamentals and design principles. This is just the word of one TA, but it's big if true.

The second one is about the language change. Look - if you're as great a TA as you say, you can teach design in any language, it just works a bit differently. You can teach good design in python, though it's a lot harder than just teaching python. You can teach design in Java, at some point you'll realise that half the design patterns book is still relevant (the other half has been eaten by streams and lambdas). You can teach design in golang, the people who wrote it at google did think of this. Using a Lisp brackets-style language doesn't give you magical powers, and I doubt the full details of macros and whatever the racket equivalent of call/cc is are that accessible in a beginner course anyway. Even SICP has a JS edition these days.

Personally I think "OOP light" is where it's at: interfaces instead of subclassing, methods that can be called on objects, encapsulation and modularity, and a package-private option so you can unit test stuff but indicate to users that this is not part of the API. Immutable objects and collections are good for many things and need to be taught, but sometimes there's good reasons just to make something with internal state and a fixed set of methods to modify it, so you can reason inductively about its invariants. You can get this out of many languages and teach it properly if you really know what you're doing. And you need actual programming projects, not just exams or "write a 20 line program" midterms. You don't need racket for this.

Re: Northeastern's redesign of the CS curriculum

#110

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"?

Yep.

At my university, after the usual calculus/diff eq/lin alg sequence everyone in STEM takes, we had “intro to advanced mathematics” that was proof based, taught in the spring, and a pre-req for everything higher level (abstract algebra, real analysis, etc). Most math programs have a similar “first proofs” class as their “weed out” class.

Post reply on HN