So welcome to the supplemental material. So the video that you're going to see
here is not something that you necessary need to listen to.
This is essentially supplemental material to help you understand the assignment
better, understand the process of submitting the assignments and so on,
okay? So what we're going to do in this
lecture, okay, is essentially looking at the basic infrastructure on, on how the
assignments are structured. How you can submit them or you can test
them, what is input output, and things like this.
Okay? And we're going to start this by using a
very simple assignment, which is completely, you know, it's like of a
dummy assignment, like LO word for the assignment.
That's right. So, so, essentially what we want to cover
is, you know, the assessment architecture, okay?
And we use a very simple name where the only thing that you will do is submit a
screen name, and that screen name, you'll see why it's interesting.
But it's going to be used later on, for various purposes, okay?
So this, this is not even about optimization, right?
It's just about using the infrastructure to actually submit a screen name.
But this, this very same infrastructure is going to be used later on for actually
submitting your assignment and showing you how you can test them.
And how you can submit various different, different solutions at different times
and things like this. Okay?
So this is something here that will tell you how to use you know, the
infrastructure for actually submitting assignment.
Okay? So in NP-hard problems as you know, okay
so you can take a huge amount of time trying to find high quality solutions or
finding optimal solutions. But what is nice about them, at least for
us when we are trying to assess the assess, the assessment, is that it is
very easy for us if something is a solution, okay?
So, if the assignment was a you know, the NFL schedule, we would be able to very
quickly find out that this is a legal schedule or not.
Okay? And we essentially exploit that
information inside the infrastructure of these assignments in this class.
All right? So, it's, you know, when you submit a
solution, we'll be able to do a lot of checks, we'll be able to find out how
good it is, if it's really a solutions or not, solution or not.
Okay? So, this is assignment workflow, okay?
For you guys, okay? So, what you are going to do Is the first
thing you would have to do is to download essentially the assignment.
Okay? So you're going to download a zip file,
and then you'll start working with all the pieces that I'll, you know, located
in that zip file. So typically once you have that, you will
start coding your solution for a very particular problem.
Okay? And then you will test this system
locally on your machine. So you basically have this process where
you don't interact with the infrastructure of Coursera the web site
of itself to test your program, run them locally.
Until you are happy with the quality of the solutions that you have.
Once you have that, what you can do is submit your solution.
And then you will need to use the, the Coursera infrastructure.
And typically, what's going to happen there is that when you find a solver for
a particular problem is good you will test it, run it locally and then you will
submit that solution. And will have the solutions that you
basically have produced. And you'll see the shape of these things.
But essentially we'll be able to assess the quality of the solutions that you
have and so on. Okay?
And of course, you can run the processes and you're going to get a grade from the
quality of the solution you will be able to say oh, this is terrible, other people
are doing well, much better than I do. So I can go back and test and code
mercury and resubmit and get a better version of the assignment and then get a
new grade and then enter even more that process if you want to, okay?
So, this is, this is the workflow that you can do, okay?
So it gives you a lot of flexibility, right?
So you don't have to work in a particular context.
You can use the tools that you want, you can use your local environment and so on
for developing the application. What we have to talk about is essentially
all your test various things because will obviously will give you benchmarks to
evaluate your programs. Also or you actually submit the solutions
and and and how you can actually look at the quality of that solution.
Okay? So this is essentially the first
assignment which is essentially choosing a screen name for you.
So, so what you do is you go to the Coursera you know, webpage, you find the
programming assignments over there. Okay, and you start looking at them.
Okay? So, and you will see here that you will
have a first assignment which is the assignment 'Screen Name.' Ok, now a
couple of things that are important here, you know never forget that you have your
submission log in and your password log in.
You will need them at some point later on when you are actually submit your
solution, okay? We want to be sure that you are
submitting the solution, okay? Then, the next thing that you need to do
is to start looking at this assignment. What, what is it, you know that we, I
will have to do, you know, this week. Okay?
And so this is what you see a little bit when you go there.
You know, you will see that you can download the assignments.
Okay? So, this is what you see over there.
You can click on that, get the assignment.
Okay? And once you are ready to submit, you
will go back to the previous page. Okay, you will click, well if you want to
look at other assignments. Okay, so you can go back.
and click on this particular link over there, okay?
So the, the assignments will have an handout which contains all the
information you need to do, okay? So once again, all the information you
need to have is in that handout, okay? So you don't really need to listen to the
videos, and there will be videos on many of the, of the lectures.
They're just going to cover the concept, give you some more information, talk
about the input output But typically all the information that you need is in these
handouts, okay. Now there will be two things that you
will see as well, okay. So, and they will be Python script, okay.
And these Python script are going to help us, you know and then you will actually
submit your work and test your work, okay?
So typically you know, there will be one which will be called solver, and that
particular script will be where your implementation is going to be, okay.
That doesn't mean that you have to put it in writing, so we'll see what you can do
But you know, at some point we have to modify that Python script in a very
simple fashion to actually test your self, okay?
So you can of use the [INAUDIBLE] extended library if you like JAVA, you
can put in JAVA, if you like C, you can put in C.
If you like you know, any languages you will be able to code it from python and
do, and do the work in that particular language.
And then bring back the solution inside python for submitting that.
Okay? Now, we are very, very kind, okay, with
you in the sense that the solver will contain you know, will, will basically
have a parcel for all the inputs. It will tell you how to extract the
various input. For the various from the various files.
So that's going to be in that script already, and there will be one for every
assignment that you have. So we will do a lot of the work for you,
and then you of course can pass that information to each other.
Like if you want to include it in java, okay And then afterwards we'll also have
some code to actually output a solution in the format that we want, we need a
specific format to evaluate to a solution, right?
We need to know what you mean by, you know, the solution, so we basically
impose the format of the solution, how you have to output the solution for us.
Okay. And so once again you will code that show
that basically that is showing you what to do and you can reuse that code.
Okay. So that's the first script, this is the
most important script as far, you know, putting yourself [UNKNOWN] the solution.
Then you'll have another script which is called submit.
And that's essentially a script which is going to run your solver and then submit
the solution to ComShare and we'll be able to grade it.
And then report a variety of information to you.
Okay. So these two things, you know, are going
to be, you know, your, your, your lifesavers.
When you actually want to submit solution, okay.
This allows you to you know, test your server locally you know, and get the
input data, output the, output the solution.
And this one is going to be the final submission when you are ready.
Of course as I said many times already, you can submit multiple times, okay.
And we see some of the process on how to do that Okay?
And of course, as I've told you. You know, a lot of these benchmarks are
going to come with a lot of data. Okay?
That data is basically being you know, going to be a set of benchmarks on which
you have to run your software. Okay?
Now, this is typically your handout. Okay?
So, it's going to be a lot of beautiful text explaining you what the problem is.
In general, that text is very clear and should tell you exactly what is expected,
what is the input/output. Okay.
And, but of course there will be video to make sure that we also go over some of
these things that you can see them visually, not only textually.
Okay? so this is a little bit inside of what
you see in this byte on script, and so in this particular case, you know, the
assignment is going to be pretty easy. So this is what you will see all the
time, and there will be this function, solve it, and that's typically where you
will put the solver. Okay.
Now, the first assignment is amazingly easy, okay, so the only thing that we are
doing is basically putting a string name. Okay.
So for putting this screen name in your first assignment you will have to look at
this. Okay, this part of the this part of the
solver and replace it by your screen name.
So my favorite screen name is PVH. Okay, and that's what I did.
I changed this line by that line and that's the extent of the first
assignment, okay? Now, at this point, I have my solveIt,
you know, this kind of completely fake solver, for the first, for the first
assignment. Okay?
And then I can test it, okay, I can take my code, okay, and test it, and you know,
you run the script, you run the Python script, and what this is going to say is
that, you know, you have submitted the beautiful.
You know, screen name _PVH_. Okay?
So this is how, this, you know, highlights how you will be able to You
know, test your solvers locally later on for more complex assignment.
You take this, run it, and essentially it's going to display your solutions and
the value that we expect you to submit later on.
Okay, so basically solver typically is going to parse the data, you know, do
something, output the solution. Here the only thing that we did was
outputting a screen name. Right?
Okay? Now when we want, when you are ready to
submit, so you use this other script, okay.
Submit. And this is essentially what you see over
there. So as soon as you start submitting, okay,
at this point you are really submitting to the Coursera website.
Okay, so what needs to happen is that Coursera will ask you for your login
name, okay? And for also the pass, your, you, you
know, your Coursera password, okay? So this is for identifying you, you will
have to type those things. Remember, they were on the pages that
I've showed you before, right? So this is where they were, okay, so
these are the exactly the same password and log in names that I was referring to
before and that you are using for entering the website.
Okay. So this is essentially what you have to
use when you are submitting, when you are submitting the assignment.
Okay. So you, you connect and in this
particular case what you're going to get, what your going to see essentially this
script is going to identify you, run your server.
And you see in this particular case that we all put the screen name And then this
is essentially submitting that solution to the Coursera website, and then we can
process that, and evaluate these solutions.
Okay, so you can see here is that your submission has been accepted and will be
graded soon. That's basically us telling you yes
everything is fine though, you know, we'll grade your stuff as quickly as
possible. Okay?
So you can view, of course, once you have done that, you can start viewing the
results, okay, of your assignment. Okay?
You have this beautiful button, you know, in the Feedback column that you can click
on. Okay?
And You will get some you know, various kinds of message, in this case you get a
nice message congratulating, congratulating you for actually putting
the screen name, you know, and successfully submitting your first
assignment, okay. Now for more, for other assignment is
going to be more interesting, okay. And one of the things that you will see
is something where You know, It's, it's what we call a leaderboard, okay?
So basically, for every problem, you will be able to find out how good you are
doing, okay? So essentially, for every problem, for
every, for every problem that we, you know, you will be able to solve
[INAUDIBLE] problems, homework, you know, assignments that you will have.
Every week, you will basically see all the screen names of the various people
and how good they are doing, okay? And that gives you a sense of how good
your solutions are, okay? So sometimes some of the problems that
we'll give you are really, really hard, okay?
And you won't really be able to prove optimality.
But you will want to find out how good your algorithm is compared to other
people and that gives you a sense of how good your solutions have been so far.
Okay? So you can look at these things and, and
you can, and you can find out where you stand and whether, you know, you should
do more work on improving your solutions. Or, you know, you are really the leader
of the board. And.
you know, you can rest on your laurel, until somebody actually improve your
solutions. Okay.
So basically at every time you will be able to see on every one [INAUDIBLE].
Okay? Now don't exploit this, don't submit
completely wrong information, don't submit things that, you don't want to
cheat. So this class is basically, you won't
learn anything if you cheat, and this class is basically trusting you to do the
right thing, okay? one of the things that this, so these
things are very valuable in practice because on these problems as I told you
you don't really know what to do. You know if you abuse the system, okay?
So this is going to be essentially abusing all the students that are there.
Of course we will find out at some point because we know exactly how these
problems can be solved, but please you know, behave correctly.
Okay? So, have fun.
This is how the, you know, this is how the infrastructure has been set up.
We've been working very, very hard, especially Carlton, in putting this
together, okay. So make sure, you know, that you
understand how to do it, and then, you know, you should have a very simple way
of submitting and testing all these assignments.
Thank you.