Skip to content ↓

Please note:

The MIT Welcome Center and Admissions Office will be closed for winter break December 23 through January 4. We will reopen on Monday, January 5, 2026.

MIT blogger Alex M. '21

I Finally Finished Intro Programming by Alex M. '21

...it took 2.5 years

At MIT, the one-semester intro programming class, 6.00, can be broken into two six-week halves, 6.0001 and 6.0002. My first attempt at getting credit for 6.0001, by taking an advanced standing exam, didn’t go so well.

email sent to me to tell me I got an F on the 6.0001 are

Like many MIT freshmen, I liked being good at things, and I liked being ahead of my peers, so this came as a disappointment. I resolved to take 6.0001 the normal way and exact my revenge on the placement test that had wronged me. I took it freshman fall on Pass/No Record, and I passed. The freshman credit limit prevented me from taking 6.0002 that fall.

screenshot of transcript: pass 6.0001 in fall 2017

6.0002 is actually not required for the computer science major, and I was a comp sci major for my first ~2 years at MIT, so I didn’t take it freshman spring either. Instead, I took 6.042, a discrete math class.

Sophomore fall, still a computer science major, I took four computer science classes, none of which were 6.0002. One of the four was 6.009, the second class in the programming sequence.

Sophomore spring, I took 6.031, the third class in MIT’s programming sequence, which is also, in fact, not 6.0002. I also switched majors to aerospace engineering. I had a long list of requirements to complete to graduate on time. This list included 6.00, or alternatively, 6.0001 and 6.0002.

When my advisor asked me to make a graduation plan, at the start of my junior year, I  scheduled 6.0002 for senior fall.

screenshot of graduation plan

However, 6.0002, like doing my taxes, seemed like something to avoid for as long as possible. I considered trying to substitute another class I’d already taken. I considered pushing it to the last six weeks of senior spring. I considered just begging my department to let me off the hook. I had finished a computer science minor by accident! Isn’t that enough? Would the 6.0002 lecturers even let me take it, considering I had already taken more advanced programming classes (6.009 and 6.031)? It didn’t seem fair.

Junior fall, as planned, I did not take any programming classes. Instead, I tried to catch up on aerospace requirements that I had missed out on taking earlier.

Junior spring, I did not plan on taking any programming classes. I wanted to do research and learn about space. I was also looking forward to a fun and eventful spring rowing season.

But then, everything changed. With no rowing and no access to campus, my plans were destroyed, and I found myself with unexpected free time in the second half of the semester. I could have, of course, dedicated this time to reading the news and feeling sad, an art I had mastered during spring break.

However, a specter was haunting my graduation plan, the specter of 6.0002. Swayed by the promise of pandemic PE/NE grading, I reluctantly decided to spend the last six weeks of my junior year writing basic Python scripts in my parents’ basement.

transcript screenshot: pass 6.0002 in spring 2020

And I passed! My junior year is over. My plans for the spring semester may have been wildly derailed, but at least I can say with confidence that I have finally, after two-and-a-half years, mastered programming in Python at an introductory level.