In this course, we are going to introduce AI Platform Notebooks, an extremely useful tool for prototyping machine learning solutions. We will start by describing in detail some of the benefits of AI platform notebooks. We will then discuss how notebooks can be tied into other GCP services. Standard software development tools are not very efficient for writing code for data analysis and machine learning. Data analysis and machine learning coding often involve looking at plots, repeatedly executing small chunks of code with minor changes, and frequently having to print output. Iteratively, running whole scripts for this task is burdensome. These were some of the issues that motivated the development of notebooks. Notebook environments seamlessly integrate commentary, plots, and code. Rather than having a script that performs a piece of analysis, notebooks chunk individually executable pieces of code in cells. Have you used Google Docs before? How is it different from documents edited in a desktop editor? Have you filed taxes online? How's the experience different from doing your taxes in a desktop program? There are a lot of benefits, but one key aspect is collaboration. You do not have to email documents back and forth. When I first started doing scientific research, collaborating on a single result was painful. I would write some code and create a graph, then I would snapshot and create an image file, put it in a doc, create a PDF, and send it to my collaborator. A few hours later, my colleague would say, "Looks great. But could you add one more year's data? It looks sparse." I would go through the process all over again. Why? Because the PDF I would send was not editable. Roundtrips took a long time. Enter notebooks, I would write a code, create the graph, write some commentary, and send the notebook link to my colleague. This way when my colleague wanted to add one more year of data, she would simply edit the cell, look at the new graph and say, "See, it looks a lot better." That was great. We now had a better notebook for the next step. There's one problem with traditional notebooks. Who runs the server that host those pages? Whose machine? If it's mine and my machine goes to sleep, then my colleague can't work. When your notebook is hosted in the Cloud, you can develop together quite easily. Just as Google Docs are available even when your computer isn't on, so do our AI platform notebooks. To share an AI platform notebook within a project, other users can simply connect to the VM and using the provided URL. Another way to share notebooks is through revision control system such as Git. Spinning up an AI platform notebook can be done in one click. You may have heard of Jupyter Notebooks. Jupyter Notebooks are basically synonymous to AI platform notebooks. The provided Python environment has a standard machine learning libraries pre-installed. AI platform notebooks uses the latest open source version of the industry standard JupyterLab. You can easily change hardware including adding and removing GPUs. This is a convenient feature when you are prototyping machine learning systems since it's hard to know in advance what resources allocation you will need. Also for training deep learning models, this is useful since you can prototype on the cheaper CPU machines before moving to train models on the much more expensive GPU instances. When you initially set your notebooks hardware, you can use any GCE Compute. Note that, notebook instances are treated in the same way as standard GCE instances living in your projects. If you start an AI platform notebook and then in the GCP console, navigate to VM instances under Compute Engine you will see your notebook instances there. How do AI platform notebooks work? As we mentioned before, AI platform notebooks run the latest version of JupyterLab, which in this case is hosted on Compute Engine. That accounts for the hardware and libraries. For collaboration, the notebooks are integrated with Git, so you can version your notebooks. As we will see in the next section, notebooks also provide connectors to and fro example, BigQuery so that you can easily pull data into your notebook.