computer-science/FAQ.md
Joshua Hanson 73477a9619 README: Move CS50 before Nand2Tetris
Resolves #440: It has been decided to keep CS50 as required for
now, but moving it later in the curriculum to match its high
degree of challenge and very low-level orientation.

Resolves #463: It has been decided to retain CS50's dynamic
programming assignment due to the positive feedback it received
as well as the fact that the additional challenge of this problem
is acceptable now that the course is later in the curriculum.
2018-10-16 16:41:29 -04:00

6.1 KiB

Frequently Asked Questions

This page answers some questions that we frequently receive about the curriculum. If you have questions that aren't answered here, try asking through one of our community channels. If it seems important enough or we get asked that question a lot, we will probably add it here.

Alternatively, you could contribute an answer yourself.

Contents

Questions

Are Coursera courses free to access?

Some courses that require payment to access probably do exist on Coursera, but we don't put those on our curriculum. All Coursera courses that we put on the curriculum must, at minimum, be free to audit. For some courses, all course features are available for free; for others (especially those that are part of a specialization), you may only be able to access the lecture videos. (If you find the policies have changed for any courses on our curriculum, please tell us!)

Unfortunately, for some courses, Coursera's interface is very aggressive about convincing you that you have to pay.

You may see something like this on the course page:

Free Trial

When attempting to enroll in such a course:

  • Click the blue "Enroll" or "Enroll Now" button.
  • A pop-up will appear.
  • Do not click "Start Free Trial", unless you do want to pay.
  • Find the text that says "Audit this course" at the bottom.
  • Click Audit.

Audit this course

Does every resource in the main curriculum have to be free?

Yes, because we have to draw a line. As soon as we require paid resources in the main curriculum, we might as well tell people to pay half a million dollars to attend a university. We are an Internet-based community of learners, not a business, so free is the most sensible price and ensures that the only price you need pay is the price of Internet access.

At the same time, we recognize that education is scarce resource and therefore requires payment to instructors to make it sustainable in the long term. Therefore, we respect the business model of websites like edX, which make their materials free but with some paid add-ons, like official certificates or extra interaction with course instructors.

So we only require that the learning materials of a resource be free to access, not that every possible add-on be free. It would be ideal if graded assignments were always free but if we had this requirement, we would have to exclude any resource that doesn't have graded assignments at all. Plus, there are other ways to get feedback on your work, and OSSU is a do-it-yourself education.

In what order should I take the courses?

You have a few different options:

  • You can progress linearly from top to bottom of the page.
  • You can progress linearly through each individual section, but studying different sections in parallel.
  • You can design your own custom progression using the pre-requisites to guide you.

We have designed the curriculum to work for any of the above three styles.

Is it necessary to purchase the Verified Upgrade for edX courses?

If you just want to watch the videos, it is never necessary for any edX course on our curriculum.

CS50 doesn't use edX's grading system; it grades all assignments for free.

The Software Development courses have mostly free quizzes and assignments, but their Final Projects will only be graded by a human if you pay.

Why do you recommend skipping the second half of CS50?

The strongest and most useful part of CS50 is the part where they teach C. We are retaining this in the curriculum for now because it is one of the few chances the student has to play with manual memory management in a (relatively) low-level language. By learning C, students will also have a much easier time getting through the following course, Nand2Tetris.

That being said, feel free to finish CS50 if you like it and want to.

Why doesn't the curriculum cover/ignore topic X?

We have several goals that we have to balance:

  • Ensure students learn the timeless principles of computer science in the best possible way, pedagogically speaking.
  • Ensure students are given sufficient knowledge of today's systems to be employable in the near future.
  • Ensure students are exposed to enough cutting-edge knowledge that they won't be left behind when technology changes, which it always does.
  • Keep the curriculum brief enough that it can be completed in a reasonable amount of time.

Therefore, not everything can be included, but we strive to be eclectic so that students are both employable and well-armed for change.

Why is the curriculum missing some pre-requisites?

The curriculum assumes two things:

  • You are reasonably fluent in English.
  • You have gotten through a standard high school curriculum that included physics and pre-calculus.

Without these assumptions, the curriculum would be out of control with trying to fill in your knowledge gaps. But those who for whatever reason didn't get all the way through high school math and physics are in luck: you can find the content you need on Khan Academy.

Of course, if you find that the curriculum is missing a pre-requisite for a course that isn't part of a normal high school curriculum, please let us know!