Blog

Ryan Moscoe

Software Engineer | AI Prompt Engineer | Ninja

Fundamentals of Programming

Oops! Something went wrong. Please try again later.

March 11, 2026

Now that I've completed MIT's Introduction to Computer Science and Programming in Python on MIT OpenCourseWare, the next step in my Will Hunting Challenge is Fundamentals of Programming. The fundamental question of my Will Hunting challenge is "Can I really get an MIT education for $1.50 in late charges at the local library?" Of course, I have already determined the answer to that question is a resounding No, for a variety of reasons—not least of which, textbooks tend to be unavailable in public libraries. But so far, even though the literal answer is "no," I have been able to satisfy the spirit of the challenge by purchasing a used textbook and completing self-study materials, such as lecture videos and homework assignments on OpenCourseWare.

Fundamentals of Programming presents a new challenge, however: this course is not available on OpenCourseWare, and it has no textbook—so definitely no library late fees for this course! So why would I choose to complete this course for my Will Hunting Challenge? Simply put: the course is a requirement for the Computer Science major. And how will I go about it? It turns out the Fundamentals of Programming course has its own website, complete with general course information (essentially a syllabus), links to all the readings—which were authored by the course faculty—and links to all labs (homework assignments/projects). Lecture videos are not available, but for the Will Hunting Challenge, lectures are merely a bonus.

To prepare for Fundamentals of Programming, I've downloaded and read the syllabus, and I've created a spreadsheet to track my progress through the readings and the labs. I've also set up the environment on my computer with the tech I'll need—the latest version of Python (3.14), along with Pytest. I already had an IDE (VSCode). With those preparations complete, I'm ready to dive in.

March 11, 2026

Oops! Something went wrong. Please try again later.