OSSU-computer-science/FAQ.md

8.6 KiB
Raw Blame History

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 a 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!

Why is the Firebase OSSU app different or broken?

The OSSU curriculum and ecosystem have been collaboratively built by many individuals. The Firebase app was one such contribution. When it was written, it was with the intention of helping future OSSU students.

Unfortunately, the app has not been updated in many years. It does not reflect updates to the curriculum, it contains links to courses that no longer exist, and it has known bugs that prevent students from logging in.

It is our hope that the creators of the Firebase app can bring the app up to date. Until that time, the firebase app should be considered a deprecated product that is no longer supported.

What is a good course to learn this particular language?

OSSU focuses on finding the best courses to learn computer science topics, and isnt focused on finding language specific courses. If you are looking to learn a particular language or framework there are two great resources to check.

  1. Hackr.io allows users to submit and upvote learning resources for topics such as Python or the Java Spring Framework.
  2. Most languages have a community on reddit. When you find the communitys page, check to see if there is a wiki or sidebar with resources. For example, see /r/python. Note that the sidebar content can be different depending on whether you use www.reddit.com or old.reddit.com.

Why require experience with a sizable project before the Software Engineering courses?

Software engineering tries to solve the problem of dealing with large programs. Building a sizable program before taking the SE courses will help you understand what SE is trying to solve. We recommend the Jack-to-VM-code compiler project from the nand2tetris course because it's the first project in the curriculum that is complex enough to see value in a SE course. That said, any sizable project will do and can come from outside of the OSSU curriculum. The idea is that you've done some large enough project where the pieces started to feel unmanageable. This experience will expose pain points and lead to a better understanding of SE.