Curriculum overhaul at Northeastern sparks debate on the future of computer science education

Skye Jacobs

Posts: 380   +10
Staff
The big picture: A debate surrounding Northeastern's computer science curriculum highlights the ongoing challenges in higher education about how to best prepare students for rapidly evolving technical fields. While Python is currently popular in the industry, the choice of programming language for teaching should be based on pedagogical merit rather than current trends, writes one student.

In a recent op-ed for The Huntington News, Derek Kaplan, a fourth-year Computer Science student at Northeastern University, presented a compelling argument about the future of computer science education at his institution. The piece comes in response to Northeastern's announcement of a complete overhaul of its computer science curriculum.

Kaplan makes the case that the rapidly evolving nature of the tech industry requires a focus on timeless principles rather than current trends and that an effective curriculum should emphasize fundamental principles that are widely applicable, enabling students to easily adapt to new technologies in their future careers. "A curriculum focused on current industry trends risks becoming obsolete before students even graduate," he noted.

Northeastern's current curriculum, particularly the "Fundies" courses, focuses on systematic program design and problem-solving skills. These courses teach a design recipe that provides a consistent formula for tackling unfamiliar problems, training students to reason about code "rather than to mindlessly write it," he said.

The "point of Fundies is … to teach program design skills that can be applied using any programming language… A student who does well in Fundies will have no difficulty applying the same skills to Python or any other language."

However, the proposed changes to the curriculum have raised concerns. The plan is to phase out core courses like Fundies 1, Fundies 2, and Object-Oriented Design in favor of new courses primarily teaching Python, which Kaplan sees as potentially misguided.

Racket, the language currently used in introductory courses, was chosen for its teaching-oriented features, which Python lacks. Kaplan also views as problematic the decision to allow students to place out of new courses with AP Computer Science credit, as AP courses do not teach the same systematic design skills as Northeastern's current introductory courses.

These changes suggest a shift away from systematic program design as a central aspect of the curriculum, which could leave students ill-prepared for advanced coursework and future careers. The Object-Oriented Design course, while challenging for many students, teaches essential skills such as working with code written by others and managing large software projects.

Kaplan also questions the motivations behind the curriculum change, suggesting that it may be driven by a desire to make the core curriculum easier and reduce the number of students withdrawing from certain courses.

"I know one professor who has been telling students that the college wants to reduce the number of students who withdraw from Fundies 2 and Object-Oriented Design. While this is an understandable sentiment, it would be a mistake to remove the most important parts of the curriculum to do so."

Finally, he notes that experienced teaching assistants could provide valuable input into the curriculum revision process. Their unique perspective, having both taken the courses and helped other students succeed, could help ensure that core principles are not compromised while allowing for beneficial changes.

"As a former teaching assistant, or TA, for Object-Oriented Design, I have seen many students struggle through the class. But I have also seen those same students become better programmers because of what they learn in that class."

Permalink to story:

 
The problem is that it’s highschool (not college) seniors making decisions on where to attend university and they don't understand why you wouldn’t learn the latest fad.
 
After a 30-year career as a software engineer, I have to agree with this guy Fundamentals of software design apply to any programming language. What sets programming languages apart are syntactical issues and the capabilities of the language. As long as I account for those, programming in any language is easy.

And if it is just to reduce the dropout rates, I have to wonder whether this university's CS degree is worth the paper its printed on.
 
Removal of what seems to be a good theory course in the Fundies feels like a very misguided decision as theory can be applied to any and all types of problem solving, in any language.

Reminds me of when our upper division Biochem Lab course was eliminated along with its requirement to graduate with a Biochem degree. The argument was you get that hands-on lab experience anyway from the lab you do your senior thesis in. I helped someone study for and write their labs up for the Lab course the last year it was taught but I never got to take it as I was a year behind in my course plan. Sure, I learned some lab techniques in the lab I eventually worked in, but I didn't learn nearly the scope of different techniques you did in the BioChem Lab course previously offered. Eliminated for cost reasons I assume, no surprise.
 
I concur. I had 30 years in IT before moving to oil and gas. Fundementals were preferred for new hires. Those with specialties in new tech were only helpful for the one or two customers on the bleeding edge of tech. Most companies move slowly forward for cost reasons.
 
I also agree with the student that the Fundies sounds like a better grounding in programming but if you want a decent job immediately on leaving college then doing a decent final year project in Python (or pick your industries language) is probably a better option. When I was at college we were doing LISP, Prolog and Forth. I think our department had a thing for dying languages.
 
15 years as a professional SE, I 100% agree with this guy. I learned Java in HS, straight C in college. Since then, I've had to work in over a dozen other languages. But the core principles are the same for *all* of them; that's what matters, not the syntax.
 
Kaplan makes a solid point: focusing on timeless principles like systematic program design prepares students for long-term success, not just for the current hottest language. Python might be great, but a curriculum built around it risks creating coders who know how to code but not why their code works.
 
Back