Skip to content

Online student's survival guide

justheuristic edited this page Apr 6, 2018 · 7 revisions

Here you can find some advice for online students from both YSDA and around the world.

What do i need to know/have?

The course assumes that you know

  • algebra, calculus (vectors, matrices, basic integrals)
  • probability (Bayes theorem, expectation, variance)
  • optimization (gradient descent)
  • basic machine learning (linear models, decision trees)
  • coding for data science (python, numpy, sklearn)

If you're "not sure" about some of them, it's most likely okay: you'll be able to grasp the missing concepts as you go through the course.

Do i need to install something?

Yes, the up-to-date instructions are listed here. If you have any questions, please ask them in the same issue.

For Windows users we recommend using docker (using this guide).

How do I learn?

Course materials are listed in the syllabus. The materials themselves are in the ./week* folders, e.g. week0.

In each week folder you will find course materials and assignment description in the readme (see text below the files list).

In materials tab you will find both video and reading versions of the topics, required for the practical assignment and following weeks. There are usually some form of bonus materials, but you can safely ignore them unless you feel interested.

Each week also contains homework description (usually the last paragraph). This section contains information on where to find seminar and homework assignments.

Will there be course certificates? / Can I submit notebooks for grading?

Unfortunately, both answers are no.

However, most assignments result in you making an objectively working artefact (e.g. training a small neural net to play CartPole or building a trading bot) that, if accomplished as a github project, will do your CV the same good as a MOOC community certificate if not more.

If a reinforcement learning agent objectively works and has great performance, no amount of comments from teaching assistant can undo that :)

We are a small team and we couldn't possibly check up all homework submissions even if we quit sleeping for weeks. For this reason, we made homework grading as objective as we could so that you would know exactly how well you did

What if I have questions about the course / problems in the assignments

  • We have a chat room where one of the instructors will appear every other day (see readme). You can also create an issue on github.
  • There's a great sub-reddit by Berkley's cs294
  • You can also ask questions about RL or even technical problems in reinforcement learning communities like this OpenAI chat
  • Technical questions concerning particular frameworks are usually resolved faster if asked in dedicated chats/forums of those frameworks themselves.

Is it legal to do X?

The course is on MIT license, which reads "Do whatever the croak you want but if you break a leg, we aren't responsible".

  • Teaching the course, even without mentioning us (we would appreciate the mention though);
  • Building a MOOC of it on your favourite platform;
  • Using certain code in your course / project / current job;
  • Applying for a local high school science fair with a thing you did as a bonus assignment;

We won't complain, and in many cases, we'd even appreciate it.

How can I help the course?

There are many ways you can contribute to the course, here's a few common ones

  • Pull-request urls to great learning materials to the ./week*/README.md files;
  • Spot bugs and create issues or better - resolve them and submit pull-requests;
  • Translate assignments to different frameworks and versions (tensorflow, pytorch, rllab, py2/3 compatibility, etc) via pull-requests;
  • Answer questions and give advice in the chatroom if you happen to know the answer;
  • If (and only if) you genuinely believe the course is worth sharing, share it with other communities that you think may benefit from it.

(there may or may not be a CONTRIBUTING.md file with more information)