[MUSIC]
In this video, I want to go over how grading will work in this course.
All of this information is detailed elsewhere.
So in that sense, you could consider this video optional.
But I think that it's helpful to highlight key points,
I've also learned that people are less likely to miss key details if there
is a video that goes over some of the information.
I also don't consider grades to be a major focus in these online courses and
I hope that's true for you as well, but I know these things matter to people.
And so, I want to have a clear policy and make sure everyone understands it.
The key issue in this video, of course is what the policies are, but
I also tried to give a bit of rationale to justify why that can help things make
a little more sense.
And also, let me acknowledge that there are trade offs and
no perfect policy that's going to be the best fit for
whatever ones trying to get out of this course.
So for each homework, you will first, submit it to an auto-grader.
A computer program that will look at your assignment.
Run it on test cases, analyze what language features you're using and
assign a grade.
And we do this in a more strict fashion that in many of the MOOCs out there.
So the basic thing is too pass, you need too get 80%.
I actually think that is a reasonable bar.
I hope that you will continue trying until you get a hundred percent and
fix things up, but that is the way it works.
If we ever change that 80% threshold, I may not rerecord this video,
but I think its in about the right place.
And then the strict thing is that we're only
going to let you submit at most once per day.
Now, why are we doing that?
I'll explain more on the next slide, but
it really means you need to do the whole homework together.
So what we don't allow you to do in a sort of reasonable way is just do the first
problem and then see how you're doing, and then just the next little problem, and
see how you're doing.
And I know that some of you will prefer that, but there are good pedagogic reasons
to make it more like things on a traditionally university campus.
Well, the homework is do it in the end of the week and
you do your best job as you can and everything and then you submit it.
Now, the worst part is with this policy is when you make a tiny little mistake that
causes your code to not compile.
Or if you upload the wrong file, then you're going to have to wait til the next
day to submit what you meant to submit in the first place.
And that's a casualty of this policy and I apologize in advance for
it, but there's not a good easy way to fix that.
And I guess all I can really say is well, you'll only have to wait a day.
So this is a stricter policy than most MOOCs, but
it's actually still much more lenient than the new traditional university course.
You get to keep submitting every day, if you want to.
Although I really encourage you to do the assignment,
really try to be confident you have everything right and then submit it.
And then if you want to try again to do better, well then, of course,
that opportunity's available to you.
I should also point out that this MOOC also used to have a much stricter
policy where you could only submit twice and then that was it.
But in the more modern model that you can continue in the MOOC,
learning until you can master the material and finish.
Of course,
having a hard limit where you can never submit again doesn't make any sense.
And so, once per day is actually a pretty lenient policy
compared to where things used to be.
So, what I'm really going for here is unlike a lot of online courses where
you're just trying to get through a tutorial and move on to the next thing.
I don't want you to keep twiddling and changing little things, and
using the auto-grader as a substitute for
your own understanding of the material, and your own testing of the programs.
I understand that can convenient.
That it can be frustrating to put a lot of time in on homework and then when you go
to the auto-grader, have it tell you lots and lots of things are wrong.
But I truly believe,
the best way to learn this material is to focus on the assignment and
think to yourself about how the pieces fit together and is everything correct.
And we give you a lot of help in the assignment,
the types the functions should have, example test cases.
So, you can do that reasoning on your own and
then the auto-grader can be just a sanity check when you're done.
That's the idea.
And if we let you just use the auto-grader as much as you wanted, it'd be much,
much easier to get everything right.
Basically, you would just fix things one at a time until you happen to pass all
the test cases and I think that's not the way to learn the material in the course.
Now I want to say, there is no perfect policy.
This grading policy is not perfect.
There's trade-offs here and it's just sort of the best compromise.
I need to pick one policy for everyone and that's what we've come up with.
A few details and other parts of the course,
that was the main auto-grader policy.
So first of all, we have some challenge problems on the homework.
They are not worth very much credit.
They're just a few percent bonus, if you will.
And I would love to take someone who turn in the homework.
Got everything right and got the challenge problems right and
give them say, 104% out of a 100%.
Now at the time I'm recording this video, the Coursera platform doesn't let me give
more than 100% the way we're doing the auto-grading infrastructure.
So unfortunately, I can't give you more than 100%.
You'll get it in your text feedback, you should feel very good about getting it.
But in terms of your official course score and course record,
it'll max out at 100% and maybe we can fix that sometime in the future.