fyi/wakefield/blog

Opinions from a third year CS student '25.

21 November 2024

Fundies Curriculum Changes

Context

Check out the relevant classes I’ve taken


I am not close with Dr. Felleisen or any faculty at Northeastern.
I have programming experience from middle and high-school.
I grew up around low-level computer science.
I didn’t perform very well in CS2510 or CS3800 for personal reasons </3


Opinion

I strongly agree that the current CS curriculum needs to be changed. I do not think trashing HTDP is the right angle for these changes.

Fundies 1, Fundies 2, and OOD developed my design skills to an elite level as rated by employers and friends at other universities. I attribute this mostly to great lecture style and teaching philosophy stemming from HTDP. Still, I felt that Fundies 1, Fundies 2, and OOD had not provided me with the practical skills to build and ship a functioning project on my own.

These practical skills came from two other classes: Computer Systems taught by Gene Cooperman and Networks & Distributed Systems taught by Alden Jackson. I did not attend these classes’ lectures!
Rather, I learned because submission frameworks were not provided to the students—-If you wanted to see if your project worked, you had to build and run it yourself.
Unfortunately, it seems that these practical skills were not really part of the curriculum. Instead, they were purely artifacts of good professors.

Switching the language of the fundies curriculum is nice. If students are free to learn and develop their knowledge on their own, there could be a large benefit. This is difficult to do in Racket—-where do you go for help? Who’s going to install racket to see some crummy app you made? How is Racket valuable to employers, parents, and prospective students? Getting Racket running outside DrRacket can be annoying, especially for students without much CLI experience. I can imagine this being the point of frustration for professors and TAs at Northeastern’s satellite campuses.

From this perspective, I completely understand the reasoning behind switching to Python. It’s very easy to make tangible stuff with python! However, this is beating around the bush. The problem is not just the language. Students are tasked with developing practical skills on their own through curiosity, or by necessity for higher level classes.
Additionally, Python is a scripting language. It is not suitable for
big software design—-the primary focus of Northeastern’s curriculum which has built many strong professionals and given us such a good reputation in industry. Starting students out on Python may make them hesitant to switch to more expressive languages in the future, limiting their potential as developers.

Racket is still very useful in some contexts. It is a fun language to learn with. I have enjoyed using it in Dr. Holtzen’s Programming Languages class, and frankly, that is where it belongs.


Stripping the early curriculum of its design-first roots in HTDP does not solve the core issue and will probably create a lot of unwanted problems downstream in the curriculum when students are unequipped to solve broad, complex design problems like the ones they face out in the real world.


Footnote

yes, I created a blog page specifically to jump on the bandwagon and share my opinion on this topic. I might use it later. Inspired by other students’ pieces on ari’s site. Go check her out.




Made with <3, using a fork I made of the Hacker theme for Jekyll. CC BY-NC 4.0