Of the half dozen or more MOOCs I've taken, this class is in the top two. MIT 7.00x, taught by Eric Lander, is the only one that is on the same level. This is the highest compliment that I can give; I loved 7.00x.
The prerequisites I recommend are an introductory DNA class (MIT 7.00x or equivalent), some programming experience, and (optionally) some formal exposure to algorithms. I do not think someone whose lifetime programming experience consists of completing a single introductory Python class will do well, though it is possible. You are allowed to complete the assignments in the language of your choice; I chose C++.
The material is presented as a collection of video lectures, and an "interactive text" that breaks the written material into many small, easy-to-digest pieces. I typically watched a video and then immediately dived into the corresponding text. On the rare occasion that I had trouble with the material, the discussion forums were a good place to get help.
You are graded on homework (programming assignments) and quizzes. The quizzes are easy if you read the material and do the assignments. The "heavy lifting" is the assignments, not so much due to their difficulty as to their quantity. There were 55 graded assignments, and at least a dozen optional assignments, some of which taught you how to approach the graded assignments. Each assignment asks you to perform some computational task on some data. You are provided with a tiny dataset which is useful for program development, and a practice dataset which is usually a good predictor of whether your program can handle the graded dataset. When you feel you are ready to be graded, you are given a unique dataset and 5 minutes to return the answer. If you fail to give the correct answer, you can try again, as many times as needed.
If this sounds like a lot of work, it is! But don't be scared of it. This class reaffirmed for me the truth of the saying, "you get out of it what you put into it". I got a whole lot out of it.