Why does Northeastern Teach Racket to start a CS Education?

Racket Logo

So, if you head to Northeastern University and talk to some of the intro CS undergraduates, you’d hear some mixed reviews about “Fundies”. Some students will sing the class’s praises, swearing by the Design Recipe as being the reason they have gotten their co-op at Apple or a six-figure job ligned up right out of college. Still, others will say that this isn’t the best way to teach students.

For example, Joshua Gross, a Computer Science professor at CSUMB and a popular Quora user, when asked about his opinion on teaching functional programming first to college students, wrote that “The literature on teaching recursion before iteration says that it depends on the mathematical sophistication of the entering students, but that the outcome is really no different. I don’t love that course, but I get how it’s successful. I would not use a modern FP language (e.g., Haskell); Racket (and its parent, Scheme) were both created as teaching languages.”

Northeastern’s introductory practical computer science course, Fundamentals to Computer Science promises to teach students programming explicitly. The original creator of this idea, Professor Matthias Felleison, argues that most introductory computer science courses teach students to program implicitly, by mimicing their professors. But, this computer science program urges users to “think first, experiment later,” which means that this attempt at instruction will be beneficial to those who prefer a teaching approach, similar to high school.

Why the disparity between this program and others? Well, as mentioned before, there are many novel ideas in the literature surrounding programming pedagogy. I will talk, however, about why I believe that Northeastern’s process of teaching promotes programmers who are able to solve innovative problems in an efficient manner.