Developing Developers (2015)

Perceptions of Northeastern’s CS Curriculum

  • Multiple commenters with direct exposure to Northeastern’s program report strong outcomes: good interns/co-ops, fast ramp-up, and lasting mental models for problem-solving.
  • Emphasis on systematic program design, simple teaching languages (Racket / student languages), and later transition to Java is widely praised for helping true beginners.
  • Some note that students with prior programming experience often dislike the early courses, while novices thrive.
  • There is concern that current administration is diluting this distinctive curriculum in favor of more conventional / “bootcamp-like” approaches.

Pair Programming, Debugging, and Teaching

  • Many see pair programming as valuable in moderation: great for onboarding, hard bugs, and teaching junior developers.
  • Several dislike full-time pairing, finding it exhausting, slower overall, or personality-mismatched.
  • Variants such as “pair thinking,” “pair debugging,” or one person driving while narrating thought process are described as especially effective for mentoring.

Mental Models, Functional Patterns, and Bootcamps

  • A recurring theme is that explicit mental models (e.g., thinking in terms of map/filter/reduce and data transformations) make everyday coding easier and less ad hoc.
  • Some tie this to the Racket/HtDP style of teaching; others push back, arguing that PL / FP enthusiasts overstate the importance of such abstractions relative to systems topics (OS, DBs, networks, architecture).
  • Bootcamp graduates are sometimes criticized for being tool/framework-driven and weak on core data-structure thinking, though others see this as more about missing conceptual grounding than innate ability.

Customer Focus and Methodologies

  • Several argue that “developing developers” must include close, recurring contact with users/customers to avoid building unused features and misaligned systems.
  • Strong domain models and schemas are seen as crucial outcomes of this contact.
  • Debate arises around Waterfall vs. Agile/Scrum:
    • Some praise Waterfall-style upfront requirements.
    • Others note that real Waterfall is often misunderstood, and most successful processes introduce feedback loops.
    • Scrum, especially “Scrum-as-practiced,” is heavily criticized as ceremony without substance.

Tools, Languages, and Learning Paths

  • Books are defended as a primary way to deeply learn programming; others find them less effective than hands-on work.
  • Several schools reported using Racket, Scheme, or other functional/Lisp-like languages to level the playing field and emphasize concepts over syntax, sometimes against administrative resistance.
  • Tangents on early BASIC and critical historical quotes highlight how poor early languages may have shaped bad habits, though some see those critiques as hyperbolic.

AI Assistants as “Pair Programmers”

  • Experiences with LLM-based pair programming are mixed to negative in this thread.
  • Autocomplete-style tools are widely seen as useful; full conversational coding and debugging with LLMs often lead to frustration, incorrect code, and extra overhead to supervise and correct the model.