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.