Hi. I want to show you a little bit about the Jupyter Notebook System that we've built with Coursera into this course. It's a great feature. It lets you explore your assignments and your programming, the lecture content even, all within the web browser. I think it's really quite a wonderful addition to the degree, to our platform, and to your experience. So let's take a look. So this is what the Jupyter Notebook will look like when you log into it on Coursera. At anytime, you can get back to this screen by clicking on Coursera logo. This is called the tree or the directory tree and you can see here it's at slash, which means we're at the root of it. In this one, I've got three folders created and I've actually got a text file here, Readme markdown file. Now, if you want to create a new Jupyter Notebook, you'd just go over to the new button, click the little down disclosure triangle and you can create a folder, text file, a terminal, we'll talk about that, or a new Python three notebook. So let's go ahead and create a python three notebook. So this is the core of the Jupyter system, the Python three notebook. This single line here is called a cell. You can have two kinds of cells. You can have code cells and markdowns cells. So let's just say x equals five, print x to something simple. So we can just write our Python in here. Then you can run this cell by hitting the button up here. You can see we get the output right below the cell. You can move cells around as we can move them up or down. You can delete, cut, copy, and paste, and so forth cells. So it's really handy. What's happening underneath is actually all of the code that your writing is being sent to a virtual server that Coursera hosts and it's being run against a Python interpreter there. Now, after you run a statement, it's not like just finished running a program, that interpreter still exists, and so the state still exists. So if we've printed, for instance, X plus one, that interpreter still knows what the value of x was. So now we have six. Up here in the upper right-hand corner, you'll actually see a reference to your Python interpreter state. It tells you here that the Kernel is idle. Let's try something else for I in range, 0 and 1,000. Well, we won't do that. We'll just say M equals I times I, minus one and we'll just run this. Now, watch that little circle in the upper right as we run this. You see it very quickly, flashed black. That shows you that the interpreter is working. So if you're looking at your system wondering why nothing is responding, take a look at that interpreter working. In fact, why don't we do something really nasty here. So why don't we just say, for I, less than 100, I equals one. We'll just say I equal to one right above that and we'll run this cell. This a great example of some syntax error that comes up right here. All right. So this is an infinite loop, right? We can see here that the asterisk here, by the output, actually tells us that the kernel is running and we can see here the little black circle is filled in, showing that the kernel is running. If you get into this kind of state, you can just interrupt that kernel. It's like hitting Control C on the keyboards. You just say kernel, interrupt and it'll will just stop at anytime. Other things you can do, you can restart the kernel. It's just like restarting Python. So actually, if we restart the kernel and then we try and print x, we see that we get an error. You can clear the output, you can restart and run all, and so forth. There's lots of cell functions that you can do too. I'll often use this one cell, Run All Above. So I'll restart the kernel and then I want to run all of the content of my notebook up until this point. If you want to switch to a cell to markdown, you can do that and then this is just regular text with a few extras. So if you wanted a big heading and then you can do things like special text to bold. Then when you run that cell, it'll actually render what the text looks like. You'll see that in the notebooks throughout this course. Let's go back to the tree. In the tree, one of the other things you can do is actually open up a terminal and this is pretty powerful. So you now have a terminal, you're logged in as the user Jovian and this is just a Linux machine underneath. It's actually a virtualized Linux machine, a dockerized one. So you can do things like LS to take a list of the files system. You can do things like look. What is this Untitled Notebook? So if we wanted to look at that, cat Untitled and we can look. It's just a giant JSON string and so-forth. We can install new packages as well as needed. So you can use Conda or Pip to install new packages. Now, you probably won't have to use the terminal much, certainly not in this first course, but you should know it's there and be aware of its functionality. So go back to the tree. The last thing that I wanted to show you in just this quick overview of the notebook, is what an assignment might look like. So if you load this assignment here, so this is just a sample assignment, you'll see that there's actually a rendered blue button here that actually submits it to Coursera when you press it. So that's how you'll submit to the programming portion of the assignments. Now, we built into the assignments some unit tests to help you. So as you're doing an assignment, you can hit the validate button and it'll actually run some of those unit tests for you and give you an idea that right, there's a couple of cells here that needs some work. Of course, when you go in and submit the assignment, you're also given this URL to go back and to look at the status of the assignment. So that's a really quick overview of the Jupyter Notebooks System. Now, there's a lot of shortcuts key commands. There's plugins that you can get for Jupyter. You can absolutely install Jupyter on your home PC, or work PC, or wherever you're doing this course from. But I think using it in this capacity built into the course is really powerful. The folder, the storage for your Jupyter Docker instance is on a course-by-course level. But you can download those files just from that tree. So there's an option to download files and move them around to other courses as well. I hope you enjoy this added feature of the course in the Coursera product and look forward to hearing from you, what you think of it.