On Fundies

This is a lightly edited version of an email I sent to the NEU Khoury administration regarding the proposed changes to the introductory classes for computer science majors. There was a huuuuge backlash that I heard, even as an alum.

See the Save Fundies petition (that might not amount to anything) for more background information.

I did receive a response acknowledging that they received the email and stating that it would be forwarded to the Associate Dean, although they did not address the specific comments (which I suppose should be expected).


To whom it may concern,

I’m a recent Khoury grad so my opinion here might not matter as much to the process, but I was a PL TA and I have some friends who are still active students so I sat in onthe open house tonight (Nov 18) on the Khoury climate and possible future curriculum changes just to hear their and others’ opinions on the topics. I didn’t want to speak since I didn’t feel like it was my place in that specific setting (since I’m an alum), but I still wanted to share my thoughts with the admin. I asked where to write to to share my thoughts and was directed to this address, apologies if there’s somewhere else that would have been better. Also ccing the student ambassador I also spoke to briefly just in case.

I think that a lot of students are frustrated with having a hard time finding co-ops and feeling like a lot of classes don’t prepare them sufficiently. I can understand this frustration since I feel like a real differentiator that helps people stand out is having personal projects that are unique and different from others. I noticed this on one of my co-ops where they offered to have my help review the resumes for the next semesters’ co-ops, and I realized that a lot of the applicants had many of the same kinds of projects on their resumes that they list from their classes. One student mentioned that having some kind of mentorship program or even a summer program for aiding people to pick up their own unique projects would be an immense help. That many classes focus on abstract principles (which are important), but there’s some practical stuff that intro classes just don’t teach. CSAIL has this “missing semester” resource, and some of this could be baked into more of the intro classes (especially git, the shell, etc.). MIT also has IAP, where many students take time to explore ideas they’re interested in outside of their normal classes, and there’s many programs to aid them in this. A huge number of successful startups came out of projects that MIT students started during their IAP. Doing exactly obviously wouldn’t work at NEU without completely changing how the university’s calendar works. But potentially as a Summer I program something it could be helpful for students that want to take time with structured support for learning about their unique interests, which they might continue with to help them in finding a co-op that’s a good fit for them.

I also really want to emphasize that classes like Programming Languages are really really important for having an enriched understanding of what makes programming languages work. In particular, I took Prof. Eli Barzilay’s section and TAed for him in the 2 following semesters after I returned from co-op. He has the lesson plans and assignments in that class down to a science. The assignments really make sure that the student understands the concepts from the lecture. If you understand it you understand it. If you don’t, then with the “fill in the blanks and pass the tests” approach there’s only a couple of ways to do it wrong because the holes are narrow enough teaching the core idea from the lecture that the TA/tutor can guide you very easily and when out get it it clicks like a lightbulb. As a TA, it was really awesome and rewarding to see people figure out these problems in my office hours.

Several of the students tonight mentioned that they thought that the ideas of the design recipe are really important to teach and that the core ideas from F1/F2 should not be dropped. I concur with this. Perhaps reworking it around Pyret (which Prof. Ben Lerner is working on and is more like Python, which is becoming more important in industry) so that people feel more comfortable in languages like Python could be a good idea, but tossing the whole approach is not something students want. I don’t think students generally thought that they felt like their time was being wasted learning “irrelevant” topic they don’t need, they just felt that they needed more assistance to understand the ideas. I think Racket is a really great language for teaching what the design recipe intends to teach, but I can understand if people think it’s worth trying to teach the concepts in a more familiar-looking language.

They expressed frustration with F2 being taught half in a weird lispy dialect of Java that is meant to try to teach the same FP principles from F1, but in an alternate syntax to transition them towards approaching conventional Java with the design recipe. I tested out of F2 but obviously I had a ton of friends that took it that I helped with, although I didn’t personally experience it hands-on. I get what the class is trying to teach, but the syntax of Java has a lot of baggage that makes it really annoying to write in this style and gets in the way of understanding the principles. A lot of students acknowledged that yeah AP CS did not teach programming principles in an effective way and re-learning how to do that in our intro program was a huge help for them, and it’s important to preserve that in my opinion. It’s my opinion that it’s gradually becoming less important that every student knows Java out of college, and that Python could be a more generally-useful language due to its flexibility and rising prevalence, but I also think it’s vitally important that students understand the value of static type systems and how apply them effectively, so I’m not sure the best approach to take with the course design here.

What could be a useful approach is breaking them up into multiple tracks. If you have no programming experience, you could take F1 and F2 as separate classes in an evolved form, but still working on the same core design recipe principles. If you took AP CS you are put into some combination class that skips some of the preliminary lectures on the very basic ideas of syntax and bindings and basic Java concepts, but still forces students to learn to apply the design recipe. This would allow students to still get credit for their AP CS class, but preserving the core principles NEU used to have good success with. And perhaps standardizing some way of being able to test out of intro classes for the students that come into NEU with advanced skills already instead of having to informally convince the professor running the course that semester to let them skip with an informal test.

One particular remark that I thought was interesting that one student made was something along the lines of “Northeastern kids don’t really have the edge [in applying to co-ops], they did a few years ago”. Anxiety about finding a co-op was consistently a comment that students had. It feels like the co-op application process has really changed to how it was when I originally chose Northeastern as the university I wanted to earn my degree at, and seemingly not even for Northeastern’s fault. The way that it was pitched to me was that workplaces taking co-ops knew what they were getting into taking on a student and were willing to accept students that had some general knowledge and teach them the on-the-job skills. But it seems like in recent years (at least in Khoury) it’s shifted much more towards being more like a typical job application process, where companies expect already competent students and students regularly send out many dozens of applications. I don’t have the data, but it feels like the industry and economy has simply shifted (in part due to increased interest rates?) and it’s harder for companies to justify taking the 6 month gamble on someone that might turn out to be more trouble than they’re worth. I’m sure someone within NEU has the data to figure out what the trends are and see if this is actually what’s happening, but if this is it then perhaps the way Khoury approaches the co-op program should evolve.

Anyways, I hope that this longer-form perspective is useful for someone working on the new curriculum or Khoury programs. There’s also this other set of opinions on specific classes that I found interesting written by 2 active students. I’m not sure if it’s already been shared with the administration but I was told by one of the authors that they’d like it shared. Let me know if you have any other questions about my own experience.

Thanks, Trey Del Bonis


Articles Index

(This article is intentionally not listed on the main articles index.)