Well, it's time for you to show what you've learned in this course. That's right, it's final project time. The specifications for the project are available on the course site and you should study them carefully because that's what actually defines the assignment. In this video, I'm going to just give you a brief introduction to show you what a successful final project should look like. You don't really have to watch it, but it'll make it easier for you to understand the project's specs when you read them. The task is to visualize data related to the COVID-19 pandemic, also known as the Coronavirus disease, also known as SARS-CoV-2. I don't know why it has so many names, but whatever you call it, it scared the dickens out of me. The database is from Johns Hopkins University and we're providing it to you via a mat-file. When you load that file, it'll create a cell array in the variable named covid_data. The contents of that variable are detailed in the specs. When you start your application, this is what you should see. There are two lists boxes here. The first one on the left contains a list of countries and the second one shows a list of the states or territories of the selected country, if it has any. If the database has no states or territories for the selected country, then the second list box contains only one choice called all. The first option in the country's list is global, which means the sum of all countries data, and it's highlighted. That's what's plotted when the app comes up first. The plot is actually a bar chart, which is why it looks like a bunch of blue vertical lines. By the way, the data that we provide you doesn't include this summation. You'll have to write code to calculate it. As you can see from the horizontal axis here, the data is plotted from January 1st of this year to now, which for me is August 1st. The total is at 18 million. If I select a country from the first list, let's say, Argentina, the plot immediately changes to show the data for Argentina. If you look up here, you can see that the plot title just changed to cumulative number of cases in Argentina. In fact, whenever the user changes what's being plotted, the tittle changes to describe it. Oh, my gosh. That's a steep curve. They're at almost 200,000 cases. I don't think I'm going to Argentina anytime soon or really anywhere. I'm just going to sit tight right here in Tennessee. Come to think of it, let's check Tennessee. I'll scroll down here in the first list and click on United States. One click is all you need, it's not a double click. See how these names showed up in the second list, that happens for just a few countries that have states, regions, or provinces, or territory's included in the database. Every one of those countries has an all, also, which means the sum of everything in the list. It's always the default. The graph shows that sum for the United States to be at 4.5 million. But I want Tennessee, so I'll scroll down and click that there. Jeez, that's a really steep climb too. But it had only a little less on 100,000 cases. Argentina has twice that. So like I said, I'm glad. I'm sitting here. I just thought of something. Let me check something here. I got another computer open to check something. Yeah, that's what I thought. There's almost seven times as many people in Argentina as in Tennessee, but only twice as many cases. So I am 3.5 times more likely to get it here than if I was there. I've always wanted to see Buenos Aires. Looking at Tennessee is getting me depressed. Let's look at something else. Let's see how New York is doing. Well, there are over 400,000. But at least in the Empire State, they bent the curve some. Let's stay here and try the other widgets. There are two sets of radio buttons here. Data to plot is set to the default, which is cases, which actually means confirmed cases. And option is set to cumulative, which is its default, and a slider widget sets the number of days to average over for the plot. It's at its default, which is one, which really means do not average. If I change that, you can see that the plot changes a bit. Let's select deaths, instead of a bar chart, this time we get a red line, and the title says deaths instead of cases. If we select the option Both, we get both plots in the same figure. We even implemented one of MATLAB's cool plotting features here, which is to have different vertical scales for the two plots. The left scale over here in blue is for the case count, and the right scale over here in red is for the death count. If you don't remember how to make two y axis scales for two plots, or how to make horizontal labels for the dates it look like this, it might be because we didn't tell you how to do either one of these things. We haven't even shown you how to set up lists boxes for goodness sake. What kind of teacher tests you on things that he didn't teach you? Well, it's a kind of teacher that wants you to be able to succeed after the class is over. So how are you going to figure these things out? Well, for one thing, you can search for Plot in MATLAB documentation and look for likely links and the section at the bottom labeled to see also. You can scroll through the component library and the App Designer. You can search on the MATLAB central website, and like we've said three or four times, there's that other way. I don't want to give it away, it starts with a G and it ends with oogle. You know, there's just no way that two courses can cover everything in something is enormous as MATLAB. They're too many built-in functions in classes and widgets and options. Every time a new version of MATLAB comes out, more of them will show up. We've taught you 99 percent of what you need to do for the problems in these courses. But when we kick you out of a nest, we want to see you fly. When you fly, you have to find answers on your own. That's an important part of a programmer's life, and in this project, you get to practice that part. Back to our app. Let's select Daily down here as our option. When you look at the database, you'll see that it doesn't have the daily numbers, only the cumulative numbers. So when the user selects daily, like I just did, you have to have your app compute the daily values from the cumulative data in order to update the plot. This daily plot looks very raggedy because there is a lot of variation even in a state as big as New York from one day to the next. Here's where averaging helps a lot. Let's move the slider to seven to see what it looks like when you average over a week. Averaging reduces the fluctuations a lot. This average is calculated for the day of the plot position and the previous six days, and if we slide over to 15, it's averaged over the current plot position and the previous 14 days. Note also that your program needs to enforce that the slider values are integers. Read the project specs carefully. The GUI is of course an important part, but an equally important requirement is to use object-oriented programming, including transforming the data provided in a cell array into a set of objects. Each country and state must have its own object containing its own data. The object associated with countries that have states or regions associated with them, must contain the objects corresponding to these states or regions. As for the country objects, you can store them in a vector, or you can have a single root object that contains the global data and all the countries as children. That's up to you. This app does a lot to help the user visualize the data for the pandemic that we're all living through. But the program itself doesn't have to be that big. Aakash wrote the code for this app. He wrote about 250 lines, not counting, the lines automatically generated by the App Designer. The class definition that stores the data is about 80 lines of code, including the processing the cell array to create the objects. The rest is related to the GUI. You'll probably spend more time on the plotting than anything else because we have quite a few options for what the plot and how to plot it. For a novice programmer, even for a programmer who's mastering MATLAB as you are, this is a challenging project and requires you to use a number of the new concepts that you learned in the latter part of this course. When I coach you, I have a confident that you can do it, and that you can do it well.