Hi, everyone!

I’m Vladyslav Siriniok, a young software engineer and entrepreneur from Kharkiv, Ukraine.

Like many other guys in tech I dropped out of my university after a second year of study. And I have no regrets about that.

Needless to say, that tech education (and not only tech) in the ex-USSR countries is barely useless and highly corrupt. If you live in the US or another developed country you will probably say “Yeah, I know what you feel, bruh, our universities are total shit too”. But believe me, you can’t even imagine how low is quality of education here. And honestly, I’ve always dreamed about graduating in some American university, like MIT or Stanford.

Fortunately, we’re all living in America. I mean, today, in the era of the Internet, anyone has an access to a world-class education. Massive online courses, online degrees, whatever.

So since I’ve got to know about MIT OCW I lived with a plan to complete MIT Undergraduate program in Computer Science with help of only MIT OCW materials. Later, I found an article written by Scott H. Young about his experience in learning the entire 4-year MIT curriculum for computer science, without taking any classes. It finally motivated and convinced me in achievability of such crazy goal.

And today I start a new life (finally)! Over the next 12-16 months, I’m going to learn the entire 4-year MIT curriculum for computer science with help of materials available on MIT OCW.

My Goals

  1. Obtain fluency in math.
  2. Improve my knowledge about software engineering and design.
  3. Prepare myself to the deep dive into studying AI.
  4. Improve my ability to read CS papers.
  5. Develop ability to write good essays and articles on computer science and tech topics in English.

My Curriculum for 6-3. Computer Science and Engineering

I designed my degree curriculum myself. Yes, MIT provides a pretty flexible curriculum, where the most of courses you can choose on your own. There are only few required classes and two lists with dozens of cources to choose. Also, I skipped humanities because I think MIT OCW is not the best place to take such courses and it’s don’t correlate with my goals.

I had used the latest MIT curriculum. Also, I used this catalog to get pre- and co-requirements for the courses.

Intro

6.001 Structure and Interpretation of Computer Programs

(Prereq: None) January 2018

Actually, new curriculum requires modern 6.0001 program. But I don’t want to learn the basics of Python, so I replaced this one with the legendary SICP course. There are two online versions of the book: original and modern.

6.01SC Introduction to EE and CS I

(Prereq: None; Coreq: Physics II (GIR)) May 2018

Math & Physics

Apart of the required classes, I’m going to take some additional courses in math (18.03SC, 18.06SC).

18.01SC Single Variable Calculus

(Prereq: None) February 2018

18.02SC Multivariable Calculus

(Prereq: Calculus I (GIR)) March 2018

8.01L Physics I: Classical Mechanics

(Prereq: None) May 2018

Also, I want to read The Feynman Lectures on Physics.

8.02 Physics II: Electricity and Magnetism

(Prereq: Physics I (GIR), Calculus I (GIR)) June 2018

6.042J Mathematics for Computer Science

(Prereq: Calculus I (GIR)) June 2018

18.03SC Differential Equations

(Prereq: None. Coreq: Calculus II (GIR)) October 2018

18.06SC Linear Algebra

(Prereq: Calculus II (GIR)) November 2018

6.041SC Probabilistic Systems Analysis and Applied Probability

(Prereq: Calculus II (GIR)) July 2018

Foundation

6.004 Computation Structures

(Prereq: Physics II (GIR)) August 2018

6.005 Software Construction (or 6.031 if available)

(Prereq: 6.01; Coreq: 6.042J) August 2018

6.006 Introduction to Algorithms

(Prereq: 6.042[J]; 6.01) September 2018

Additional

6.034 Artificial Intelligence

(Prereq: 6.001) July 2018

6.803 The Human Intelligence Enterprise

(Prereq: 6.034) August 2018

6.050J Information and Entropy

(Prereq: Physics I (GIR)) July 2018

6.033 Computer System Engineering

(Prereq: 6.004; 6.005 or 6.009) September 2018

6.814 Database Systems

(Prereq: 6.033; 6.046[J] or 6.006) October 2018

6.045J Automata, Computability, and Complexity

(Prereq: 6.042J) November 2018

6.172 Performance Engineering of Software Systems

(Prereq: 6.004, 6.006; 6.005 or 6.031) November 2018

6.035 Computer Language Engineering

(Prereq: 6.004; 6.005 or 6.031) December 2018

6.207J Networks

(Prereq: 6.041SC) December 2018

Rules on Exams

I’m going to imitate the MIT’s examination rules to get my self-assessments right. Here are some of them:

  1. I will write the exams under the same time and material constraints (no looking at the questions or solutions beforehand, no notes or forbidden things). If the time constraints not specified I will try to pass exam in default 3 hours.
  2. I have to get a grade on final exams of at least 80%.
  3. I will grade the papers myself, comparing them to the actual MIT solutions. I’ll place both on Google Drive, so anyone would be able to double-check my grading methods.

F.A.Q.

1. How much I gonna work during the challenge? It depends. I don’t have plenty of time, but I want to study at least 12-18 hours per week.

2. Do you have any plans to get an actual degree (from MIT or other college)? No, and it is not a point of the challenge. I rather have dreams than plans. But if you live in the US and you’re interested in getting a DIY degree, as fast as possible, then you can follow this article up.