I'm hoping you don't have to... I hope you don't have to travel far to get here. Unbelievable. But anyway, let me just set something up here. Okay. Good. Thank you. Good morning. All right. Let's set up the board here. Let me show your screen. Window. Here we go. Okay. It's good enough. All right. So today is a review. It's a review day. Okay. Side video. Snow day. Today is a review day. Students will ask questions or short topic names. You know, it's basically things that you would like me to go over by typing into the chat. I'm going to avoid the phone, the microphone. So please avoid the microphone. It just makes it a little disruptive. But if you could just simply type your questions. In a moment, I'll be... If you have comments, I'll be reading in the chat. I'll be typing into chat. Okay. All questions will be copied into these notes. And hopefully, hopefully, hopefully I'll give you the right solutions. And their answers as well. These notes will be emailed to the students later today will be, how do I spell that? Okay, will be emailed to the students, I think I have a different setting, to the students later today. Okay, let me just change the setting. I think there's a beeping setting here. Let me shut that off. This button, and this button, and close that. Yep. Okay. Very good. All right, so the setting is off. Now, good. Okay, so does anyone have... Well, let's open up. Hopefully I have it here. Do I have it here? I wanted to have it here. Let's open it up. Okay. The syllabus. Let's get the syllabus open. So that way you could... If you have any questions, you should also get the syllabus open. I don't think I could show multiple files. So the topics, the lectures that we have is till... Till the notion of reduction. That's what we did last. Okay? The CARP-21 themselves, except for the... I guess the definition of satisfiability will go in both directions. We'll be in both this quiz and the next quiz as being part of CARP-21. But basically up to the notion of... We demand determinism. We also did the notion of reduction. Okay. Good. Ali, you wanna... You can ask whatever you want. Sure. It's open to anything you want. It'd be best... Can I go over the project requirements? Oh. Okay. I see two people asked that. All right. Let me open it up. Okay. If you want that, I'll do that. Sure. But if... If along the way someone asks about the material, that takes precedence and I will... And we'll switch. One second. Let me... Sure. Let me... One second. Let me open it up. Now, so I have two files. Okay. So I was asked about the... Let me write that down. I was asked about project requirements. So there are two documents. A... Let me just call it A. Requirements. And B. Submitting. How to... Submitting. Uploading. Uploading the project when you're done. Upon completion. So they're... They're... They're related, obviously. They're both about the project. See, the requirements is about a summary of features or a summary of concepts for the project. The summary of details about the project. The submitting is targeting... It's more... The way I do the submission process, the submission protocol is more like a... It incorporates an assessment. So you don't have a separate assessment. This is the assessment. And in it, I ask you, the student, to identify where in the code are your features. And in some cases, in some aspects, I also ask you to give some statistics from a code called C-Lock. C-Lock by a fellow named Daniel. I don't know if that's the first... I forget if that's his first or last name. That's who maintains it. It's a very nice program. It's been around for a number of years. And this program counts... Basically, that's what C-Lock stands for. Counts lines of code. So it will... And it has embedded the knowledge of Java. And it will count how many blank lines, how many... How many blank lines, how many code lines, how many comment lines. It gives a statistic. And it's freely available. The link is in the requirements file. Here it is. Yep. Where did I mention it? In... Well, it's there anyway. Oh, it may not... It may not be in the requirements. It's in the submitting file. Because it's not about... It's not the program. You don't use C-Lock in your program. C-Lock will be the statistical analysis of your program. Okay, so C-Lock... C-Lock is in... Described... Described in the... Submitting file... Submitting document. Submitting protocol document. Not in requirements. Since it is a statistical... It's a statistical count of your code. And not part of your code. I guess that's one aspect that you should... So you have to read both documents. All right, anyway. So one of the... There are two... There are a number of concepts here. Overall, we're dealing with the notion of membership. Okay, we're using hash tables to store different records about membership. Okay, so that's the basic idea. It basically is an elaborated... In essence, the project is an elaborated set implementation. In essence, the... Or, you know, you may call it database, but database is like a set in some sense. In essence, the project is an elaborated set membership, you know, program or project. Okay. Set program code. I don't know what to call it. All right. So... But I wanted you... In addition to... See... Sometimes when I assign codes, I'm more interested in you learning new features of projects and coding. Some things different than you may not have in other classes than just implementing a topic in the class itself. So phase three will deal with Turing machines. So Turing machines, you know, of course, are related to this... You know, to theory. Classically, Turing machines, Turing automata. So that's... That's clear. This one... This project is involving notions of this... Of this theory class, but I wanted to make it a little bit more practical. So I wanted you to get some interesting programming experience. So the issue has to do with command line. You could do that in... It depends how you code. If you code in an environment, so then all codes have these command lines, right? Where you could type in something about the code word-wise. So usually the screen is split up. Or you could request a window console. It's also known as... All right? Command line... Equals window... A separate window. Also known as a console. In Windows... In Windows PCs. In PC Windows. From the run bar. I don't know what to call it. It's next to the Windows icon on the bottom left. Which says type here to search. But it's also... That type here to search. Isn't just a search bar. It's a command bar. So you could say cmd.exe. And you'll get command prompt. From the run bar. Search bar. On the bottom left of screen. So then type cmd.exe. And you will get a console. It also years ago was called a terminal window. The interfaces... The screens were called terminals. Anyway... And eso. So it's historic. All right, so I wanted you to get a little bit of experience from doing things from the command line. And as you know, in Java and in C++, in C-based languages, the main method receives parameters, inputs, from the command line. Right? That's the same command line, right? That's argc, argv. Right? Argc, argv. We're arguments. Arguments is just a fancy name. Arguments are parameters from the command line. From the command line, sometimes from the system environment. That's possible, but usually from the command line. Sometimes from system environment. But usually they're from the command line. So anyway, so that is how you receive the inputs from the command line. And I want you to be able to process them. So this is a very famous... you may not be used to this, but this concept, and it uses the notion of what is called flags. It was introduced by Unix operating system. It's called flags. So you can have a command line and then you would say, for example, let me just copy here. So let's say you had... I'm copying this from the requirements folder, from the requirements... not folder... document. Why is this not doing what I want? Okay, give me one second. I have to redo this. Row height, let's say 15. That's not good. One second. One second. Merge in center. Wrap text. Okay. The tabbing is not working here. Hold on a second. Let's see if I can get this better. Not bad. Okay. Not bad. Anyway, cmd. So let's get rid of that. I mean, that's not... that is the command line. So I'll put that separately. So let's imagine you have a command line, right? Your main terminal command, cmd, like I said, cmd.exe. If you happen to do it that way. And you run it using Java. Java, and let's call... and I said to call the file membership. So there are a number of flags. Minus first name. So, well, okay. The minus... the flags here... the minus is automatic. Using the notion... using the notion of Unix flags. Which traditionally... introduced... uses... uses... user defined flag names... Introduced... preceded by a minus. Okay. So the flags here... are as follows. So you have first name. You have last name. You have ID. You have age. Whether you live in New York. Output file. So if you notice... why am I doing all these different types? Because I wanted you to be able to parse... to test... your skill in parsing different types. So first name... first name is a character string. Last name, of course, is just to make it complete. ID would be a number, but could be a string. A string of digits. Age is clearly a number. New York is a Boolean. Output files... and the last two deal with... name of file. Right? A specific... name of a special file. They should be separate, different. And I want you to teach... to work with the file... the file... API. The file class. Okay? And then the flags here... all introduced... by a minus... In Excel, minus is a funny thing. Anyway, by minus... and the... and the argument... parameter... is set... by equal... assignment. Okay? Ouch, I'm gonna keep hitting the wrong button. Sorry. All right? Okay. Everything is due whenever the project is due. Okay, according to the syllabus... the calendar says what? The calendar currently says March 12th. What's February 24th? Did I misread you? What is due on the 24th? Absolutely nothing. So I... Jaskaran, you'll have to elaborate... because I'm not familiar. Did I say something was due on the 24th? The calendar says this is due March 12th. Now, let's see. Okay, so that's the basic idea. And then you write some data... to test your system. Okay? You input... You make a file. The input file is basically first name, last name, ID, age, lives in New York. You know, all that information. And that's how you enter it. And then you have a few extra requirements in terms... Oh, yeah. And you want to store the data in a hash table. I want you to test hash table. Okay? And store... Read in... The... The... The... The... The... The sequence of data... From... A... Read in any further sequence. Because I just want you to test the command line. Any further sequence... Of data from an input file. From the input file. Okay. From an input file... Named... Initial... As we say... Initial... Well, whatever. Whatever you want. You name it. And from the... You give it the name. Uh... From an input file. Store data... Into a hash table. Or hash map. Whichever hash version... Uh... You want to use. That's fine. Um... And then lastly... Um... I don't know. There's a... I think that's the basic idea. You have to output something to... You are required... Oh, no. What happened? Oh, no. Shoosh. Hello. I... I have no idea what happened. Uh... This... My... My... I guess the... Due to the weather... The... Um... My... Internet connection stopped. So I apologize. But we're back on track. Let me... Oh, I have to... Um... Okay. Uh... Give me one second. Let's open up the screen. Anyway, those... That's the basic idea for the... Um... For the... What you call... For the... Uh... Here it is. Okay, good. We have it. Let me share. Yeah, let's share. Anyway, does that answer your question? That's the basic idea for the... Uh... For the requirements of the project. Okay? So, uh... Extra data. Extra data. Let me... You know, let me save the file. Cause that's what's messing us up before also. Let me save it. Uh... Content. Hi, Professor. Um... Do you mind just clarifying the deadlines really quick? I just wanted to double check that... The project is gonna be due for March 12th, you said. Yes. So the only thing that's due this week is going to be the paper selection. Is that correct? Oh, okay. I don't have it in front of... Let me just... I'm trying to save the notes. Um... And I use, uh... Old-fashioned Windows operating system here. Uh... Give me one second. Let me just save the file. And I'll open up the range of dates for you or the syllabus itself. Give me two seconds. Uh... I apologize. I'm happy to answer that. I just want to make sure that we have a hard copy of this set of notes. Okay. Let me just set it here. All right. Okay. Good. Now, uh... So let's open the syllabus. Uh... Let me open the syllabus again. What's going on here? One second. Oh, here it is. Okay, good. Uh... Spring. Content folder. Okay. Syllabus. It's up. It's up and running. So let's double check that itself. So under deadlines. Uh... Let's see here. What did you say? Paper selection? Okay. Let me check. Uh... Yes, I believe on the... I think that's the February 26th. The syllabus... The syllabus says February 26th. Brightspace says the 24th? Uh... No. For the paper, it's the 26th. But for the project, Brightspace said the 24th. That's why I got confused. It did? Oh, so that's why I asked you to... Not just you. I remember I wrote in the email, email me if there are any inconsistencies. So that's an inconsistency. So tell me again, what is Brightspace... I don't want to get out of the virtual classroom. Otherwise, I would check for us right now. But clearly... Um... So what you've... Uh... You're saying Brightspace... Brightspace says what? For the... Um... For the... What you call it? For the... Requirements? Uh... On the 24th, Brightspace says what? Brightspace says the project is due part one on the 24th. Really? Yeah. It can't be. It's March 12th. For sure? Okay. Do me a favor. Email me and I'll make sure to take care of it. It's March 12th, the project. Okay. Email me what you think Brightspace... No... No screenshots. I... Avoid them because of security. Uh... You never know. Anyway, whatever. Don't... Don't send me screenshots unless I request them. I trust the students. Just say in text what it says and I will take care of it. Okay? I apologize if there was an inconsistency. I'm not... I just don't want to touch the virtual classroom right now. Okay? So just email me and I will email you back this afternoon and the entire class. But I'll make sure. Okay? Okay? Is that okay? Okay. Whatever. Hope it is. All right. So back to this last request. Extra data will be... But thank you. Thank you for bringing it to my attention. And then whoever asked it before also unless it's the same person. Extra data will be read in from an input file from the input file. Whichever one you... Whichever name you gave it in line 20. Of course, reference line 20 and 28 above. Okay. Should be lines. Okay. Where you gave the name... 20... Yeah. Where you gave the names of the input and output files. Oh, yeah. One more advantage. I forgot to mention. Okay. What I wanted you to test with this command line is the following. The... Your program... Your code... The student code... The student project code... Should be able to parse... These... Flags... In any order. That was one of the... Extra innovations that the Unix flag had. I gave an order. But you... You do not need to follow that order. In fact... You could. But you should test it. Your program... Should just read the minus. And then... Figure out which... Flag it is. And associate... And then assign the values. Don't assume... That the user is going to input these flags... In that particular order. So don't... Assume a particular order. From the user... From the user... From the user command line. Again... Of course... Reference... Above... Line... 20. Okay. All right. I think that... Pretty much goes through every detail of the project. And... Okay. Good. So that... Lauren and Ali... Hopefully that helped you. I think that gives you everything. There may be a few more details. The submission protocol... Just adds... One more... One or two more features. You know what? Okay. For consistency. Since you asked. Let's take a peek for a second. Projects. Phase one. Submission protocol. Complete code. Okay. The C-lock I mentioned to you. Um... Um... One second. All right. So there were... There were one or two little small details. About how to do it. You have to read also the... About what I want. And the output file... Ah, yes. Um... Persistence. Okay. So there are one or two more details in the submission protocol. Um... So... One second. Uh... The... Submission protocol file... Do... Does add... A few more details to the above. Okay. So one we mentioned. C-lock. So I want you to... Uh... Uh... Uh... So... Um... Again... To... Download... To... To... Use... A statistical... Code... Freely available. Uh... Use a statistical analysis code. Uh... Use a tool. Okay. Use a tool. Freely available. Uh... That... Uh... That... Um... Conducts basic statistics... Analysis of your code. Uh... Such as... Number of blank lines. Uh... Number of... Uh... Comment lines. Number of code lines. And that's maybe a few other features, but basically that's the main thing. Uh... Another thing here is persistence. A very important concept. Which can be implemented in Java in many ways. Uh... Pers... The concept of persistence is the following. Uh... The... The notion of persistence is after... After... After the... Uh... After the code has completed. After the... The execution... The run time of your code. Execution of code. Is completed. What happens... To the... Uh... What happens... To the... What happens to the... The data... Stored... In... Your storage structure. Which here is a hash table. Uh... For... For... This project... Is a hash table. Or hash structure. Uh... Or hash structure. Uh... Again, because Java actually gives, I think, three different types of hash structures. And you can use any of them that you want. Um... So that's the question. What happens to it? Persistence... Uh... Uh... Uh... Make sure... That... The... Structure... Lives on... Beyond... Uh... Execution of your code. So that... When you... Uh... Run the code a second time. Uh... You have the option... Of... Reading in... The structure from the get-go. Okay? So it... The... The... And in some sense this... You could... So... Java does provide keywords and abilities to... To do persistence. Um... Otherwise you would have to... Uh... Play games with the... Uh... With the output file. And... The point is... You don't want to lose your data. And you want to store your data so that way it could... Uh... Keep on going. You don't have to start from... You... Your inputs don't have to start from scratch. Um... Uh... In the extra. Uh... That's the main two. Uh... Uh... Key... Key uniqueness... Of hash table... Of hash table storage. You have to make sure that... Uh... You know... You have a basically... A unique ID... For... Uh... That's true. That... The last time that happened to me was... Uh... 30 years ago. Wow. I've been teaching here for a while. Uh... Literally. That last time that happened was 30 years ago. Uh... When... When I was in the classroom, I was taking attendance. Um... Uh... And... Uh... They had the exact same name in the class. Anyway, I don't know the case here. I'm not gonna mention the name. I... Or I don't know if this is the class. In one of my classes, I noticed two students have exactly the same name. Anyway, it's very interesting. So, you need uniqueness. So, in addition to this information, perhaps you wanna store... Um... Uh... In case... Two members... Have the same name. Right? Remember, we're implementing membership, which is sets. So, in sets, you can't have duplicates unless it's an ordered set. Well, one way you could... You get around that here is by giving it a unique internal inventory number. In case two members have the same name, assign their data file, their data file, or data object, uh... With a unique, uh... Membership ID. Key. Okay? So, that's how... You know... The notion in database is of a key. K-E-Y. That's called... In database, that's called a key. Um... And then the other thing... One other idea here... I don't remember. You have to read it. Uh... Okay. Uh... Wrapping... Wrapping... Wrapping an object. It's like... That's sort of obvious. Uh... Uh... Wrapping... Uh... The output file. Okay. That concludes our discussion of the project. So, hopefully... You have a bunch to read up on. And hopefully, um... That's helpful. I really do hope that that's helpful. Um... All right. And please do ask questions... How many questions are on the quiz? Excellent question. Um... Anthony, that's a really good question. The issue simply is... That, um... Uh... Uh... The issue simply is that I've not made up the quiz yet. So, I don't know. It, uh... It will take up the class time. Um... So, let me write that down. Uh... I was asked how many questions... Uh... On the quiz. Answer. I don't know yet. Since the quiz has not been written yet. Uh... Since the quiz has not yet been written. Uh... Hopefully, it will be on time. By Wednesday morning. Uh... Quiz is... Just to remind you... Is Wednesday morning... During... Uh... Regular class time. But I also add... And I add... Five more minutes at the end. Um... Something which students have noticed already. Something I... I... I... Mentioned in... In some of these files... Of my... Information files. Uh... Is... Do not trust... Do not assume... That the... Brightspace clock... Is consistent with your clock. You know... I had... I had a student who submitted... Who swore up and down... They submitted on time... And then Brightspace... Uh... Said no... It's 12 already. Uh... But their clock says... No... It's not 12. Well... I feel bad... But sorry... Uh... As I say in the syllabus... And mentioned a number of times... Technology reasons is not acceptable. If you... If you were to say that... And that ruling was given by the IRS... Believe it or not... Because... And they realized... As... As... As... More and more tax returns are being returned... Are being processed online... And they're encouraging this... To... To... To say... The government should save money... They don't have to process the paperwork... Um... They... They realized... That... Uh... What are we gonna do with a... An innocent... Uh... You know... You know... Person paying taxes... And... Uh... The reason that the... It was filed late... Deals with the... Uh... Uh... Technology issues... And the IRS said... Sorry... We have to make a ruling... That... Technology is not... An excuse for lateness... I know... You... Students don't like that... Um... But... There's nothing we could do... You have to do it early enough... To guarantee... Your technology works... So if you submit at the last minute... And something differs... Than you expect... Um... And then... Uh... Sorry... But there has to be a... A... A solid rule across the board... Do not assume that the bright space clock... Is in sync with your clock... Uh... And... Likewise... Uh... Time yourselves... Okay... I don't remember if it was bright space... It may have been the previous... Uh... System called Blackboard... Uh... Where... It actually told you... How many... How many minutes you had left... And it was wrong... Well... It wasn't wrong in that... There was an error in its code... It was wrong in the sense that... Um... That... Uh... It wasn't doing what the students thought... They... That you... That it was meant to do... Alright... Do not assume that it's in sync... Okay... So that's... In terms of that... Um... So... Oh yes... So the point is... It should take the class time... So I try to... Um... So... Um... The number of questions... Um... I try to estimate... Uh... How long it would take a student to answer... In other words... How many minutes... Would it... Would a given question... So it's... The question is what... The issue is what type of questions... If I have true-false... Okay... So for example... If the... If the quiz... Are all... True-false questions... Uh... Then there will be many more... Questions... Than if... Uh... Than if multiple-choice... And... That and multiple-choice... Um... Will have more... And multiple-choice questions... Uh... Will be more... Then if there are fill-ins, which doesn't give you any hint, and you have to figure it out yourself, right? The point is the type of question, so the amount of time to answer the question is not the same. Anyway, so that I don't know what to answer you. So that's the best I could do, all right? Everything is done. Good question. Ali and I owe you a question from before. Let me answer your first question. There are three files. In the project file folder, I don't know what you mean three files. There are three full... well, it could be three files. There are also three folders, subfolders, for phase one, two, and three. But Ali, if you're referring to within... again, I don't want to touch the virtual classroom. I don't want to go back into... maybe I can. Hold on. You know something? One second. Let me see. Maybe it won't affect you. I'm using another tab. To go into Brightspace itself. Yeah, so... okay, you don't mean... I checked. There are one, two, three, four, five, six, seven, eight. So, Ali, they're not three. They're eight. Not that you're wrong, except those aren't files. Those are folders. And that's phase one, phase two, and phase three, due respectively, March 12th, April 12th, May 12th. All right? But if you click on phase one, Ali, you'll see eight files. And those are six tutorial files about command line, about persistence, hash table, whatever I give you there. And then the two files I mentioned above, which are the requirements file and the submission protocol. All right? So, Ali, that should answer your previous question of what the files are for. And now your current question. Let me just see quickly. Oh, yes. Good question. Excellent question about how you do the exam. Okay. So, let's remind you. I don't know. Remind you or say, if not, maybe it's the first time. So, either way, regardless, reminder, the exam is done solely on Brightspace under the quizzes folder or menu tab. All right? And then you'll look for quiz one or something that sounds similar. And then you'll look for quiz number one. You click it and it will provide you with each question one at a time. I think I emailed you about this last night. With each question one at a time. The exam will not allow for a student to go back to a question once students advanced to next question. And that's a security measure that's built into the system. Also, for security. Also, the order the students do the questions is randomly selected by Brightspace. So, and finally, since questions come from a pool, or probably, but typically, come from a pool of questions, while each student's exam or quiz is made from the same pool, in the same pool, Brightspace will randomly choose which question so that it could be that each student had different questions. And that's also a security measure. But it's randomly done by Brightspace. So, everything different questions on their exam. But they should be the pools that I do. The pool formation that I use generally has a theme. So that even if two students questions are different. Their underlying structure or question structure is similar. Okay, so, you know, I'll give you an example. For example, let's say we were in algebra, and I want you to solve an equation for x. So, I would write... I would write a... Okay, let me give you an example. For example, if we learned how to solve for x in an equation, which we didn't, but it's not us. But if we did, then I would write a script that generated a thousand such equations and computed the correct x for each of these. And then these thousand equations, the script will become a pool of one thousand different questions. But in essence, they are asking the same thing. It depends how I create the pool. All right, good. That was a good question. Hopefully, Ali, that answers you. Can you put the... Oh, it's just to conclude? Yeah, since you asked me. Again, all of the answers will be entered by the student into Brightspace. Okay, so that's that. No emailing. No emailing. Well, except for questions. If you have questions, I'm going to monitor. So no need to email me your quiz answers. I will be monitoring the class designated email only. ACS722projectsqc at gmail.com. And if you have a question during the quiz from your Q-mail, then I will respond and I'll have that open the whole time. All right, so that's Ali's question. Now Serun's question. In the first 10 minutes, we emailed the class... Yes. Oh, yes. Correct. Except for that point. That is correct. So for another security reason... Okay. Let me put that separate. Thank you very much for reminding me and asking that question, Serun. For security reasons, and even if you don't understand it, trust me, it is. For security reasons, a student cannot enter the quiz unless I manually set a flag. How would I say that? I manually input them. Input their names. Well, it's not as archaic as that, but it's something like that. I manually input their names into the quiz. It's not exactly like that, but you can think of it that way. I don't want to have to explain all the settings I need to do. But it's basically that. There are names into the quiz roster list. Therefore, within the first 10 minutes of the quiz, i.e. till 7.55 a.m., the student must email me from Qmail. And since I said I'm only monitoring the class designated email from Qmail only to class designated email that present for a quiz. And then, and then I will enter them, enter the student, enter the quiz, upon which, that's the key part also, upon which the student must start quiz. Okay, so the Brightspace system records when student started quiz to the second. It really does. To the second. Now it's the hour, minute, and second that the student started the quiz. You must start quiz. If student does not start quiz, not just email me, start quiz within the first 10 minutes, so even if you email me but you did not start quiz within the first 10 minutes, their name will be removed from quiz roster. In one second. I need you to start, for security reasons, I need you to start the quiz within the first 10 minutes. Okay? All right, Samron. That answers that question, and thank you. I don't know if I wrote it as clear in the email, but that was the intent. It's not just... There's one issue in that I want you to say that you're present. But the other issue is I need you to start the quiz within the first 10 minutes. I've had cases of students cheating in the past. I'm sorry. And one of the ways they cheated was they would wait till their friend finished the exam and then start the exam. And that is not acceptable. You have to start, and it monitors when you answered each question, so I'll know who's playing games. The system likewise records the exact moment to the second that each question was started and how long the students spent on that question. So, again, if I see a long break, that in the past is a high flag for cheating. I know. Obviously, there is a rare situation once in a blue moon for a person who has to do something, understandably. I'm just telling you. It doesn't mean that I'm going to necessarily call you up and tell you, hey, did you cheat? If I feel it's necessary, I will. But I'm telling you that statistically, that's a flag. Okay? Anyway, so if you can, be careful. All right. Any other questions about the quiz? Oh, Anthony asks, are there topics on the quiz to focus on? So, the topics are the topics that are in the syllabus. Day one, we did the difference between an algorithm and a process. I'm just reading the syllabus. I hopefully don't have to type it again because it's from the syllabus, but let me just remind you. So, we did the difference between an algorithm and a process and the role of the infinite loop. We talked about measures for analyzing an algorithm's complexity. What does order n mean? Does the base arithmetic make a difference? What heuristics... I summarized what heuristics analysis of algorithms uses to simplify this. Eventually, that led into the distinction by Jack Edmonds between polynomial and exponential. We talked about different categories of algorithms that are discussed in theory, which is decision versus optimization problems. We talked very briefly the role of randomness. We didn't really talk much. We talked a lot about the difference between deterministic and non-deterministic. And in that context of algorithms, we mentioned where does probabilistic fall. We mentioned about mathematical mappings of... Well, we did mathematical mappings for the deterministic and non-deterministic algorithms using the notion of a function or thereof. We talked about where does partial functions fit. And we also mentioned how partial functions... I think I gave an example of ten different key choices on the faceplate of a scientific calculator that are all partial functions. How do you deal with partial functions? How do automaton handle partial functions? We talked about exhaustive searches. I think we did it in slightly different order, but that's okay. Here it says lecture six. It may have been lecture five. I don't know. Anyway, mathematical structures and exhaustive searches. We went through nine or ten different mathematical structures. And based on discrete mathematics, we summarized what the size of the search space is about. The reason, again, for that lecture was a very, very important lesson. I think the overall theme was that Turing realized that non-determinism, as beautiful of a concept and an amazing fantasy of a machine that it is, you don't actually need it to solve the problem. Not technically, according to the theory, because you always could simulate it deterministically. And the question is, if you did that, what would be the alternative cost? So I do want you to get a sense of what that cost would be. So I used the mathematical structures that are typically found in most problems. It may not be 100% everything, but I think it does cover the most that are found. And I went ahead and explained mathematically how many there are in that search space. So if you were to do the exhaustive search and generate every member in that space, and then test out which one is the optimal for a given optimization function. So in a lot of cases, it will be exponential. In fact, all the structures we discussed, they were all exponential. And then we talked about the definition of reduction. And we mentioned about NP-hardened and NP-complete. What P equals NP means. P equals NP means. Just a phrase. Oh yeah, early on already, we distinguished between complexity and solvability. How long it takes versus whether theoretically it could be solved at all. And then we mentioned Cook's original problem is satisfiability. That's the...everything reduces...every NP-hard problem reduces to satisfiability. The ability to find inputs such that a Boolean predicate returns the output of true. And then reductions to show that from a problem that is hard to a problem that's not hard, that's not known to be hard, to show that that unknown problem is also hard. And that's called reduction. Okay, so hopefully...who asked that question? Anthony, I hope that answered your question. That's right. V-dash, that's correct. Let me add that to the notes. Good point. There is no...there is no virtual classroom. For reasons of efficiency of setting things up, note the Brightspace system sort of semi-automatically... Well, it's not completely automatically, but semi-automatically sets up a virtual classroom meeting for every Monday and Wednesday. Even when we don't have school, such as spring break. Likewise, there is technically listed a session on Brightspace for Wednesday. But do not enter it. The quiz is solely under the quizzes tab on Brightspace. And entering the virtual classroom. And entering the virtual classroom would yield...would encourage communication, which is forbidden during an exam. So do not enter it. So do not enter it. Okay, so that answers...I believe that answers your question. Good question. V-dash, the quiz present... No, Ali, you don't have to. Good question. You don't have to email me that you started. Good question. Again, what I wrote here on line...one second...on line 65. Brightspace will tell me afterwards. Afterwards, I will...in other words, I could always look it up. But I have the data. In other words, Brightspace will give the professor a report. It's actually called...it's a menu called Setup Report. And then View Report. And the report says when you...it gives me the data of every answer that you entered. It will say exactly the second...the minute...hour, minute, second that you answered it. It will give me all that information. Related to that, I should mention...okay, let me just finish the one or two questions. And then...okay, so Ali, that should answer. So you don't have to email me that you started. I will know that you started. Right, correct. Okay, good. What I wanted to mention to you is...yes, that I do not...good, good. Thank you. Thank you for the question. No. Give me two seconds, and I will be with you. I just want to write this one note before I forget it. Note. Yes. Yes. Do not use...or do not assume...better word, stronger word. Do not consider...do not consider any score that Brightspace may provide if it does, even if it does. In other words, I'm not sure the student...I'm never sure the student's view when they...how Brightspace appears to them. But so, I mean, I can't say it will or it won't. You'll find out. Even if it does. Even if it does. For...for the quizzes. For the quizzes or exams. Okay. Just to explain to you, and this really happened. The first time I did a quiz on Brightspace during the COVID situation, a student got the score...I think it was 22,400. Obviously, there were settings that were a little bit messed up. But anyway, I do not rely on and I do not use or consider the Brightspace score. Instead, I...the Brightspace provides me...with a file containing... every student's response...to every question. Every student's response...to every question. And as mentioned above, also...to the second...the moment... that the student...entered the question...or answered the question. Okay. I then grade manually the exam...the quiz or exam. And after all grades calculated, email the class with a listing of the grades. Based on grade code. So you are not to have shared that code, as I mentioned to you, with anyone else. Otherwise, email me as soon as possible. We'll have to reassign you. But please do not do that. I don't have to keep on changing grade codes. Anyway, so that...based on the grade code. So no one's going to know who has what. And only you will know. Okay. Yes. You had a question. Now I'm ready for you. Please. Yeah, go ahead. If you could type, it would be best. But if need be, then just say the question. Professor, a few minutes ago, right? Are we emailing you before the start of the class? The start of the quiz? Yes. Yes. So you are. You are. You're emailing me. That you're emailing me. You know, you cannot enter the quiz unless I manually enter you. Not just you. Any student. And I need you to email me from Q mail to the class designated email. Again, I'm the only one who logs into that email. And you are to email me that you are present for the quiz and ready to take the quiz. In which case, I then have to manually enter you into the quiz. And then you must start. This whole process has to happen within the first 10 minutes of the quiz. And then you must start the quiz again within that 10 minute period. Okay? So yes. V dash, I think. No, whoever it was. I apologize. Whoever's in there. There's actually more than one V dash in the class. But I believe so. Anyway, whoever asked the question. So thank you for the question. But that's the answer. Okay. Sorry. Any other questions? You could type me or ask me any questions. If anyone has a question, you want me to go over. Again, look at the syllabus topics and then see if you have a question or want to ask me about something. Still have another 10 minutes. So still can answer a few questions. Anybody have any questions? Oh, okay. Lauren. Yes. A reduction. Sure. Good question. Thank you. All right. Reduction. So reduction works as follows. So reduction is written as a less than or equal and in general. But in our case, there'll be a small P. Let me give a space here. Hold on. Let me, let me give some spaces so we could see better. Almost there. Okay. And then there's a small P. Sorry. Let me move the P over. P. And there's a P generally written, a small P written at the footnote of less than or equal. Generally, this is all one line. Anyway, there's an extra P here. And this reads as A reduces to B. Now, there's an irony here because the irony is that one, A is known to be hard, but B is not yet known. And simultaneously, not yet known to be hard. And simultaneously, B solves A's problem. Okay. So that's where the irony is. You say A reduces to B, but yet it's B that solves A's problem. If you don't think it's an irony, good. Don't worry about it. You don't have to agree with me to think it's an irony. I think it's an irony, but okay, maybe it's not. The point, though, is the fact is, okay, let's take out the word irony. It has nothing to do whether it's an irony or not. A is known to be hard, but B is not yet known to be hard. B solves A's problem. Okay. Now, let's ignore the P for a second. It's an important P, but let's ignore that. I'll add it in a second. But the conclusion of the process is that B is also as hard as A is. Okay. So we didn't know that B was hard. We reduce A to B, and now we conclude that B is also hard. Okay. Now, what's that P? So that was the asterisk, which I related to Levin's comment, which is the external piece of information. At what cost will A have to utilize the output from B's attempt to solve the problem? Meaning B and A do not have to solve A's problem, to solve the problem. The point is that B and A may be to you, the user, problems that have nothing to do with each other. It turns out that some genius realized that they're related. You know, there's a distinguished professor in Chicago, Sam Weinberger. Sam Weinberger, and it's related to theory. Sam Weinberger published a paper where he showed you could take Euclidean geometry and analyze the complexity of Turing machines. What? What? What? So, yeah, he's a super genius. But the point is, what is one thing got to do with the other? Right? You have geometry. Euclidean geometry. You have Turing machines, graph theory. What are they going to do with each other? He realized that there's a relationship, and that one could give you an insight to the complexity of the other. So, A reduces to B. B and A, A and B may have nothing to... To you and I, colloquially, may have nothing to do with each other. But some genius realized that they do. Karp realized that they're related. Right? Okay. Now, the problem is that B, the language that B talks and the language that A talks have nothing to do with each other. So, what is the cost of the translation? To utilize, to translate. There's a cost in translating whatever B says into some format that A could use. Maybe B solved A's problem, but B and A don't talk the same language. So, there's a cost. There's a cost for translating what B just answered you in order to use it, A, in order for A to use it. What's that cost? So, that's why the letter P is there. The... That's why the letter P is there. Okay? Which is that... What is that... Is that... We realize there's a cost, but that cost better not be too much. So, let me add a line. So, in the context of NP, if the cost of the translation, which is verification, as you know, or in Levin's... Notion, Levin's definition, the witness, the witness or certificate information. So, it's that extra piece of information you need. If that cost of using it is only polynomial, we're still good. So, then the conclusion is that B is also as hard as A is. That's the notion of reduction. Lauren, do you want to follow up? Or does that help you understand what reduction is? Or anyone else for that matter? But it's Lauren's question. She deserves the first go at it. Okay, great. Excellent. Good question. Thank you. Anyone else? We have time for one or two more. One or two more. For the purpose of this quiz, as I mentioned, you're not going to need to know the CARPS paper. So, on the next quiz, I'll ask you who reduces to whom using page 96 in CARPS paper. I just used that as a demonstration. We will spend two to three weeks on CARPS paper. But I'm going to give for you the practical approach to CARPS paper. So, I think you'll enjoy it a lot. Students in the previous times that taught this course actually enjoyed it very much. They're very inspired by learning all these problems and realizing how complex they really are. Some of them seem trivial. Yet, CARPS shows they're hard. So, there's some surprises there. Yeah. One particular one comes to mind, but that's not for this week. All right. Any other... So, again, the only definition that you need to know for this class... for this exam is Cook. Just the satisfiability problem, which again, one more time, given a Boolean predicate, we're using input variables X1 through Xn. Find the values of X1 through Xn such that P, the predicate, P of X1 through Xn, equals true. That's called satisfying the predicate, finding where it's true. You don't have to find more than once. You just need to find one example of where it's true. Okay. We have time for one or two more. Does anyone have any more or less comments or questions that you would like me to answer? If anyone has less questions or comments, happy to answer. Of course, you can email me. I don't want you to think I'm throwing you into this exam. Just because we finished the review, you can't ask any more questions. You, of course, can email me and I will try in a timely manner to respond to all your questions. But please only to the class designated email, which is on line 61 on the screen. And you know that by now and not to the Q-mail. Anyone else? Just to save time because the class is almost finished. If you didn't have a chance to type the word present, please do so. You might as well do it now. And again, if you want, if anyone has one last question while they're doing that, please ask. And I think I could still squeeze in one more question. Or try to answer one more question if you have any. All right. If there are no more questions, then it's nine o'clock. So if you want to end the class, this is the end of class. Unless anyone has a last question. Otherwise, again, if you didn't have a chance, text present. And make sure to be on time or early. If you want to email me a minute or two before the quiz, that's also okay. You don't have to email me at... I know it's for the quiz on Wednesday. You don't have to email me at 745. You can email me a minute or two before. So I'll have the list of names and make sure to try to get you started as soon as possible. Okay. But I do have to manually enter you into the roster of the quiz. Okay. Okay. Thank you all. Thank you. And again, if you have any questions, just email me and I'll try to answer you in an expedient manner. Okay. Bye, all.