1 00:00:00,240 --> 00:00:03,940 So welcome to the supplemental material. So the video that you're going to see 2 00:00:03,940 --> 00:00:07,400 here is not something that you necessary need to listen to. 3 00:00:07,400 --> 00:00:10,988 This is essentially supplemental material to help you understand the assignment 4 00:00:10,988 --> 00:00:14,160 better, understand the process of submitting the assignments and so on, 5 00:00:14,160 --> 00:00:16,960 okay? So what we're going to do in this 6 00:00:16,960 --> 00:00:20,360 lecture, okay, is essentially looking at the basic infrastructure on, on how the 7 00:00:20,360 --> 00:00:24,353 assignments are structured. How you can submit them or you can test 8 00:00:24,353 --> 00:00:27,280 them, what is input output, and things like this. 9 00:00:27,280 --> 00:00:28,920 Okay? And we're going to start this by using a 10 00:00:28,920 --> 00:00:31,704 very simple assignment, which is completely, you know, it's like of a 11 00:00:31,704 --> 00:00:35,152 dummy assignment, like LO word for the assignment. 12 00:00:35,152 --> 00:00:37,745 That's right. So, so, essentially what we want to cover 13 00:00:37,745 --> 00:00:40,839 is, you know, the assessment architecture, okay? 14 00:00:40,839 --> 00:00:44,249 And we use a very simple name where the only thing that you will do is submit a 15 00:00:44,249 --> 00:00:49,040 screen name, and that screen name, you'll see why it's interesting. 16 00:00:49,040 --> 00:00:52,945 But it's going to be used later on, for various purposes, okay? 17 00:00:52,945 --> 00:00:56,129 So this, this is not even about optimization, right? 18 00:00:56,129 --> 00:01:00,088 It's just about using the infrastructure to actually submit a screen name. 19 00:01:00,088 --> 00:01:03,639 But this, this very same infrastructure is going to be used later on for actually 20 00:01:03,639 --> 00:01:07,953 submitting your assignment and showing you how you can test them. 21 00:01:07,953 --> 00:01:11,610 And how you can submit various different, different solutions at different times 22 00:01:11,610 --> 00:01:13,805 and things like this. Okay? 23 00:01:13,805 --> 00:01:17,655 So this is something here that will tell you how to use you know, the 24 00:01:17,655 --> 00:01:22,490 infrastructure for actually submitting assignment. 25 00:01:22,490 --> 00:01:25,481 Okay? So in NP-hard problems as you know, okay 26 00:01:25,481 --> 00:01:30,299 so you can take a huge amount of time trying to find high quality solutions or 27 00:01:30,299 --> 00:01:36,137 finding optimal solutions. But what is nice about them, at least for 28 00:01:36,137 --> 00:01:39,028 us when we are trying to assess the assess, the assessment, is that it is 29 00:01:39,028 --> 00:01:42,680 very easy for us if something is a solution, okay? 30 00:01:42,680 --> 00:01:46,164 So, if the assignment was a you know, the NFL schedule, we would be able to very 31 00:01:46,164 --> 00:01:50,020 quickly find out that this is a legal schedule or not. 32 00:01:50,020 --> 00:01:51,894 Okay? And we essentially exploit that 33 00:01:51,894 --> 00:01:56,830 information inside the infrastructure of these assignments in this class. 34 00:01:56,830 --> 00:01:58,940 All right? So, it's, you know, when you submit a 35 00:01:58,940 --> 00:02:01,820 solution, we'll be able to do a lot of checks, we'll be able to find out how 36 00:02:01,820 --> 00:02:06,060 good it is, if it's really a solutions or not, solution or not. 37 00:02:06,060 --> 00:02:08,600 Okay? So, this is assignment workflow, okay? 38 00:02:08,600 --> 00:02:11,078 For you guys, okay? So, what you are going to do Is the first 39 00:02:11,078 --> 00:02:14,970 thing you would have to do is to download essentially the assignment. 40 00:02:14,970 --> 00:02:16,712 Okay? So you're going to download a zip file, 41 00:02:16,712 --> 00:02:19,702 and then you'll start working with all the pieces that I'll, you know, located 42 00:02:19,702 --> 00:02:23,060 in that zip file. So typically once you have that, you will 43 00:02:23,060 --> 00:02:25,990 start coding your solution for a very particular problem. 44 00:02:25,990 --> 00:02:28,374 Okay? And then you will test this system 45 00:02:28,374 --> 00:02:32,212 locally on your machine. So you basically have this process where 46 00:02:32,212 --> 00:02:35,575 you don't interact with the infrastructure of Coursera the web site 47 00:02:35,575 --> 00:02:39,900 of itself to test your program, run them locally. 48 00:02:39,900 --> 00:02:43,260 Until you are happy with the quality of the solutions that you have. 49 00:02:43,260 --> 00:02:46,200 Once you have that, what you can do is submit your solution. 50 00:02:46,200 --> 00:02:49,899 And then you will need to use the, the Coursera infrastructure. 51 00:02:49,899 --> 00:02:53,611 And typically, what's going to happen there is that when you find a solver for 52 00:02:53,611 --> 00:02:57,323 a particular problem is good you will test it, run it locally and then you will 53 00:02:57,323 --> 00:03:02,207 submit that solution. And will have the solutions that you 54 00:03:02,207 --> 00:03:06,440 basically have produced. And you'll see the shape of these things. 55 00:03:06,440 --> 00:03:08,936 But essentially we'll be able to assess the quality of the solutions that you 56 00:03:08,936 --> 00:03:10,550 have and so on. Okay? 57 00:03:10,550 --> 00:03:14,580 And of course, you can run the processes and you're going to get a grade from the 58 00:03:14,580 --> 00:03:18,734 quality of the solution you will be able to say oh, this is terrible, other people 59 00:03:18,734 --> 00:03:24,899 are doing well, much better than I do. So I can go back and test and code 60 00:03:24,899 --> 00:03:28,867 mercury and resubmit and get a better version of the assignment and then get a 61 00:03:28,867 --> 00:03:34,770 new grade and then enter even more that process if you want to, okay? 62 00:03:36,350 --> 00:03:39,280 So, this is, this is the workflow that you can do, okay? 63 00:03:39,280 --> 00:03:41,420 So it gives you a lot of flexibility, right? 64 00:03:41,420 --> 00:03:43,260 So you don't have to work in a particular context. 65 00:03:43,260 --> 00:03:46,185 You can use the tools that you want, you can use your local environment and so on 66 00:03:46,185 --> 00:03:50,408 for developing the application. What we have to talk about is essentially 67 00:03:50,408 --> 00:03:53,557 all your test various things because will obviously will give you benchmarks to 68 00:03:53,557 --> 00:03:57,775 evaluate your programs. Also or you actually submit the solutions 69 00:03:57,775 --> 00:04:02,240 and and and how you can actually look at the quality of that solution. 70 00:04:02,240 --> 00:04:04,587 Okay? So this is essentially the first 71 00:04:04,587 --> 00:04:09,430 assignment which is essentially choosing a screen name for you. 72 00:04:09,430 --> 00:04:13,090 So, so what you do is you go to the Coursera you know, webpage, you find the 73 00:04:13,090 --> 00:04:18,500 programming assignments over there. Okay, and you start looking at them. 74 00:04:18,500 --> 00:04:20,359 Okay? So, and you will see here that you will 75 00:04:20,359 --> 00:04:23,299 have a first assignment which is the assignment 'Screen Name.' Ok, now a 76 00:04:23,299 --> 00:04:26,631 couple of things that are important here, you know never forget that you have your 77 00:04:26,631 --> 00:04:30,740 submission log in and your password log in. 78 00:04:30,740 --> 00:04:33,790 You will need them at some point later on when you are actually submit your 79 00:04:33,790 --> 00:04:36,566 solution, okay? We want to be sure that you are 80 00:04:36,566 --> 00:04:39,714 submitting the solution, okay? Then, the next thing that you need to do 81 00:04:39,714 --> 00:04:43,000 is to start looking at this assignment. What, what is it, you know that we, I 82 00:04:43,000 --> 00:04:46,440 will have to do, you know, this week. Okay? 83 00:04:46,440 --> 00:04:48,940 And so this is what you see a little bit when you go there. 84 00:04:48,940 --> 00:04:52,450 You know, you will see that you can download the assignments. 85 00:04:52,450 --> 00:04:53,970 Okay? So, this is what you see over there. 86 00:04:53,970 --> 00:04:55,880 You can click on that, get the assignment. 87 00:04:55,880 --> 00:04:57,920 Okay? And once you are ready to submit, you 88 00:04:57,920 --> 00:05:00,887 will go back to the previous page. Okay, you will click, well if you want to 89 00:05:00,887 --> 00:05:03,510 look at other assignments. Okay, so you can go back. 90 00:05:03,510 --> 00:05:06,360 and click on this particular link over there, okay? 91 00:05:06,360 --> 00:05:09,496 So the, the assignments will have an handout which contains all the 92 00:05:09,496 --> 00:05:13,892 information you need to do, okay? So once again, all the information you 93 00:05:13,892 --> 00:05:17,866 need to have is in that handout, okay? So you don't really need to listen to the 94 00:05:17,866 --> 00:05:21,080 videos, and there will be videos on many of the, of the lectures. 95 00:05:21,080 --> 00:05:24,104 They're just going to cover the concept, give you some more information, talk 96 00:05:24,104 --> 00:05:27,368 about the input output But typically all the information that you need is in these 97 00:05:27,368 --> 00:05:30,750 handouts, okay. Now there will be two things that you 98 00:05:30,750 --> 00:05:34,700 will see as well, okay. So, and they will be Python script, okay. 99 00:05:34,700 --> 00:05:38,385 And these Python script are going to help us, you know and then you will actually 100 00:05:38,385 --> 00:05:41,580 submit your work and test your work, okay? 101 00:05:41,580 --> 00:05:45,100 So typically you know, there will be one which will be called solver, and that 102 00:05:45,100 --> 00:05:49,880 particular script will be where your implementation is going to be, okay. 103 00:05:49,880 --> 00:05:53,650 That doesn't mean that you have to put it in writing, so we'll see what you can do 104 00:05:53,650 --> 00:05:57,072 But you know, at some point we have to modify that Python script in a very 105 00:05:57,072 --> 00:06:02,000 simple fashion to actually test your self, okay? 106 00:06:02,000 --> 00:06:04,773 So you can of use the [INAUDIBLE] extended library if you like JAVA, you 107 00:06:04,773 --> 00:06:08,090 can put in JAVA, if you like C, you can put in C. 108 00:06:08,090 --> 00:06:10,988 If you like you know, any languages you will be able to code it from python and 109 00:06:10,988 --> 00:06:13,980 do, and do the work in that particular language. 110 00:06:13,980 --> 00:06:18,060 And then bring back the solution inside python for submitting that. 111 00:06:18,060 --> 00:06:20,784 Okay? Now, we are very, very kind, okay, with 112 00:06:20,784 --> 00:06:25,206 you in the sense that the solver will contain you know, will, will basically 113 00:06:25,206 --> 00:06:30,638 have a parcel for all the inputs. It will tell you how to extract the 114 00:06:30,638 --> 00:06:34,830 various input. For the various from the various files. 115 00:06:34,830 --> 00:06:37,770 So that's going to be in that script already, and there will be one for every 116 00:06:37,770 --> 00:06:41,229 assignment that you have. So we will do a lot of the work for you, 117 00:06:41,229 --> 00:06:44,050 and then you of course can pass that information to each other. 118 00:06:44,050 --> 00:06:47,495 Like if you want to include it in java, okay And then afterwards we'll also have 119 00:06:47,495 --> 00:06:50,781 some code to actually output a solution in the format that we want, we need a 120 00:06:50,781 --> 00:06:55,210 specific format to evaluate to a solution, right? 121 00:06:55,210 --> 00:06:58,337 We need to know what you mean by, you know, the solution, so we basically 122 00:06:58,337 --> 00:07:03,305 impose the format of the solution, how you have to output the solution for us. 123 00:07:03,305 --> 00:07:06,025 Okay. And so once again you will code that show 124 00:07:06,025 --> 00:07:10,640 that basically that is showing you what to do and you can reuse that code. 125 00:07:10,640 --> 00:07:12,919 Okay. So that's the first script, this is the 126 00:07:12,919 --> 00:07:17,990 most important script as far, you know, putting yourself [UNKNOWN] the solution. 127 00:07:17,990 --> 00:07:20,660 Then you'll have another script which is called submit. 128 00:07:20,660 --> 00:07:23,675 And that's essentially a script which is going to run your solver and then submit 129 00:07:23,675 --> 00:07:27,065 the solution to ComShare and we'll be able to grade it. 130 00:07:27,065 --> 00:07:30,080 And then report a variety of information to you. 131 00:07:30,080 --> 00:07:32,352 Okay. So these two things, you know, are going 132 00:07:32,352 --> 00:07:35,540 to be, you know, your, your, your lifesavers. 133 00:07:35,540 --> 00:07:37,710 When you actually want to submit solution, okay. 134 00:07:37,710 --> 00:07:41,065 This allows you to you know, test your server locally you know, and get the 135 00:07:41,065 --> 00:07:44,600 input data, output the, output the solution. 136 00:07:44,600 --> 00:07:47,400 And this one is going to be the final submission when you are ready. 137 00:07:47,400 --> 00:07:51,330 Of course as I said many times already, you can submit multiple times, okay. 138 00:07:51,330 --> 00:07:54,670 And we see some of the process on how to do that Okay? 139 00:07:54,670 --> 00:07:57,146 And of course, as I've told you. You know, a lot of these benchmarks are 140 00:07:57,146 --> 00:07:59,010 going to come with a lot of data. Okay? 141 00:07:59,010 --> 00:08:02,172 That data is basically being you know, going to be a set of benchmarks on which 142 00:08:02,172 --> 00:08:05,500 you have to run your software. Okay? 143 00:08:05,500 --> 00:08:07,270 Now, this is typically your handout. Okay? 144 00:08:07,270 --> 00:08:11,240 So, it's going to be a lot of beautiful text explaining you what the problem is. 145 00:08:11,240 --> 00:08:15,796 In general, that text is very clear and should tell you exactly what is expected, 146 00:08:15,796 --> 00:08:18,830 what is the input/output. Okay. 147 00:08:18,830 --> 00:08:22,610 And, but of course there will be video to make sure that we also go over some of 148 00:08:22,610 --> 00:08:27,794 these things that you can see them visually, not only textually. 149 00:08:27,794 --> 00:08:30,532 Okay? so this is a little bit inside of what 150 00:08:30,532 --> 00:08:33,880 you see in this byte on script, and so in this particular case, you know, the 151 00:08:33,880 --> 00:08:38,602 assignment is going to be pretty easy. So this is what you will see all the 152 00:08:38,602 --> 00:08:41,506 time, and there will be this function, solve it, and that's typically where you 153 00:08:41,506 --> 00:08:43,960 will put the solver. Okay. 154 00:08:43,960 --> 00:08:47,458 Now, the first assignment is amazingly easy, okay, so the only thing that we are 155 00:08:47,458 --> 00:08:51,290 doing is basically putting a string name. Okay. 156 00:08:51,290 --> 00:08:53,864 So for putting this screen name in your first assignment you will have to look at 157 00:08:53,864 --> 00:08:56,765 this. Okay, this part of the this part of the 158 00:08:56,765 --> 00:09:00,150 solver and replace it by your screen name. 159 00:09:00,150 --> 00:09:03,480 So my favorite screen name is PVH. Okay, and that's what I did. 160 00:09:03,480 --> 00:09:06,720 I changed this line by that line and that's the extent of the first 161 00:09:06,720 --> 00:09:10,450 assignment, okay? Now, at this point, I have my solveIt, 162 00:09:10,450 --> 00:09:14,170 you know, this kind of completely fake solver, for the first, for the first 163 00:09:14,170 --> 00:09:16,400 assignment. Okay? 164 00:09:16,400 --> 00:09:20,176 And then I can test it, okay, I can take my code, okay, and test it, and you know, 165 00:09:20,176 --> 00:09:23,775 you run the script, you run the Python script, and what this is going to say is 166 00:09:23,775 --> 00:09:28,842 that, you know, you have submitted the beautiful. 167 00:09:28,842 --> 00:09:30,840 You know, screen name _PVH_. Okay? 168 00:09:30,840 --> 00:09:34,312 So this is how, this, you know, highlights how you will be able to You 169 00:09:34,312 --> 00:09:39,540 know, test your solvers locally later on for more complex assignment. 170 00:09:39,540 --> 00:09:42,740 You take this, run it, and essentially it's going to display your solutions and 171 00:09:42,740 --> 00:09:45,925 the value that we expect you to submit later on. 172 00:09:45,925 --> 00:09:49,585 Okay, so basically solver typically is going to parse the data, you know, do 173 00:09:49,585 --> 00:09:53,830 something, output the solution. Here the only thing that we did was 174 00:09:53,830 --> 00:09:56,001 outputting a screen name. Right? 175 00:09:56,001 --> 00:10:00,254 Okay? Now when we want, when you are ready to 176 00:10:00,254 --> 00:10:06,025 submit, so you use this other script, okay. 177 00:10:06,025 --> 00:10:08,806 Submit. And this is essentially what you see over 178 00:10:08,806 --> 00:10:11,236 there. So as soon as you start submitting, okay, 179 00:10:11,236 --> 00:10:14,855 at this point you are really submitting to the Coursera website. 180 00:10:14,855 --> 00:10:19,835 Okay, so what needs to happen is that Coursera will ask you for your login 181 00:10:19,835 --> 00:10:23,640 name, okay? And for also the pass, your, you, you 182 00:10:23,640 --> 00:10:27,471 know, your Coursera password, okay? So this is for identifying you, you will 183 00:10:27,471 --> 00:10:30,454 have to type those things. Remember, they were on the pages that 184 00:10:30,454 --> 00:10:33,618 I've showed you before, right? So this is where they were, okay, so 185 00:10:33,618 --> 00:10:36,998 these are the exactly the same password and log in names that I was referring to 186 00:10:36,998 --> 00:10:41,210 before and that you are using for entering the website. 187 00:10:41,210 --> 00:10:42,952 Okay. So this is essentially what you have to 188 00:10:42,952 --> 00:10:46,575 use when you are submitting, when you are submitting the assignment. 189 00:10:46,575 --> 00:10:48,925 Okay. So you, you connect and in this 190 00:10:48,925 --> 00:10:52,061 particular case what you're going to get, what your going to see essentially this 191 00:10:52,061 --> 00:10:55,379 script is going to identify you, run your server. 192 00:10:55,379 --> 00:10:58,564 And you see in this particular case that we all put the screen name And then this 193 00:10:58,564 --> 00:11:01,896 is essentially submitting that solution to the Coursera website, and then we can 194 00:11:01,896 --> 00:11:05,650 process that, and evaluate these solutions. 195 00:11:05,650 --> 00:11:08,530 Okay, so you can see here is that your submission has been accepted and will be 196 00:11:08,530 --> 00:11:11,370 graded soon. That's basically us telling you yes 197 00:11:11,370 --> 00:11:14,481 everything is fine though, you know, we'll grade your stuff as quickly as 198 00:11:14,481 --> 00:11:17,000 possible. Okay? 199 00:11:17,000 --> 00:11:20,465 So you can view, of course, once you have done that, you can start viewing the 200 00:11:20,465 --> 00:11:23,570 results, okay, of your assignment. Okay? 201 00:11:23,570 --> 00:11:26,537 You have this beautiful button, you know, in the Feedback column that you can click 202 00:11:26,537 --> 00:11:28,370 on. Okay? 203 00:11:28,370 --> 00:11:32,018 And You will get some you know, various kinds of message, in this case you get a 204 00:11:32,018 --> 00:11:35,495 nice message congratulating, congratulating you for actually putting 205 00:11:35,495 --> 00:11:38,687 the screen name, you know, and successfully submitting your first 206 00:11:38,687 --> 00:11:43,182 assignment, okay. Now for more, for other assignment is 207 00:11:43,182 --> 00:11:46,623 going to be more interesting, okay. And one of the things that you will see 208 00:11:46,623 --> 00:11:50,990 is something where You know, It's, it's what we call a leaderboard, okay? 209 00:11:50,990 --> 00:11:54,896 So basically, for every problem, you will be able to find out how good you are 210 00:11:54,896 --> 00:11:58,112 doing, okay? So essentially, for every problem, for 211 00:11:58,112 --> 00:12:00,606 every, for every problem that we, you know, you will be able to solve 212 00:12:00,606 --> 00:12:05,000 [INAUDIBLE] problems, homework, you know, assignments that you will have. 213 00:12:05,000 --> 00:12:08,136 Every week, you will basically see all the screen names of the various people 214 00:12:08,136 --> 00:12:11,880 and how good they are doing, okay? And that gives you a sense of how good 215 00:12:11,880 --> 00:12:15,096 your solutions are, okay? So sometimes some of the problems that 216 00:12:15,096 --> 00:12:17,900 we'll give you are really, really hard, okay? 217 00:12:17,900 --> 00:12:21,180 And you won't really be able to prove optimality. 218 00:12:21,180 --> 00:12:24,180 But you will want to find out how good your algorithm is compared to other 219 00:12:24,180 --> 00:12:28,890 people and that gives you a sense of how good your solutions have been so far. 220 00:12:28,890 --> 00:12:31,100 Okay? So you can look at these things and, and 221 00:12:31,100 --> 00:12:34,300 you can, and you can find out where you stand and whether, you know, you should 222 00:12:34,300 --> 00:12:39,366 do more work on improving your solutions. Or, you know, you are really the leader 223 00:12:39,366 --> 00:12:40,550 of the board. And. 224 00:12:40,550 --> 00:12:43,826 you know, you can rest on your laurel, until somebody actually improve your 225 00:12:43,826 --> 00:12:46,070 solutions. Okay. 226 00:12:46,070 --> 00:12:49,560 So basically at every time you will be able to see on every one [INAUDIBLE]. 227 00:12:51,115 --> 00:12:54,073 Okay? Now don't exploit this, don't submit 228 00:12:54,073 --> 00:12:57,412 completely wrong information, don't submit things that, you don't want to 229 00:12:57,412 --> 00:13:00,616 cheat. So this class is basically, you won't 230 00:13:00,616 --> 00:13:04,581 learn anything if you cheat, and this class is basically trusting you to do the 231 00:13:04,581 --> 00:13:09,303 right thing, okay? one of the things that this, so these 232 00:13:09,303 --> 00:13:12,516 things are very valuable in practice because on these problems as I told you 233 00:13:12,516 --> 00:13:17,690 you don't really know what to do. You know if you abuse the system, okay? 234 00:13:17,690 --> 00:13:21,130 So this is going to be essentially abusing all the students that are there. 235 00:13:21,130 --> 00:13:24,010 Of course we will find out at some point because we know exactly how these 236 00:13:24,010 --> 00:13:27,845 problems can be solved, but please you know, behave correctly. 237 00:13:27,845 --> 00:13:29,920 Okay? So, have fun. 238 00:13:29,920 --> 00:13:32,690 This is how the, you know, this is how the infrastructure has been set up. 239 00:13:32,690 --> 00:13:35,679 We've been working very, very hard, especially Carlton, in putting this 240 00:13:35,679 --> 00:13:38,234 together, okay. So make sure, you know, that you 241 00:13:38,234 --> 00:13:41,321 understand how to do it, and then, you know, you should have a very simple way 242 00:13:41,321 --> 00:13:45,240 of submitting and testing all these assignments. 243 00:13:45,240 --> 00:13:45,640 Thank you.