{ "cells": [ { "cell_type": "markdown", "id": "dd0c99c6", "metadata": {}, "source": [ "Lecture 19 - jupyter notebooks\n", "----\n", "\n", "Things look a little different right now\n", "\n", "We're going to start by introducing a new programming environment: Jupyter Notebooks\n", "\n", "[Link to notes on Jupyter Notebooks](https://muzny.github.io/csci1200-notes/01/1/intro_jupyter_notebooks.html)\n", "\n", "There are a few things that are really nice about Jupyter Notebooks:\n", "- I can have text cells (like this one)\n", "- I can also have code cells (like the following one)" ] }, { "cell_type": "code", "execution_count": null, "id": "a3627442", "metadata": {}, "outputs": [], "source": [ "# this is a code cell\n", "# write python code as normal\n" ] }, { "cell_type": "markdown", "id": "c7121c1b", "metadata": {}, "source": [ "Awesome things about notebooks\n", "---\n", "\n", "- They are convenient ways to visualize data and graphs in the context of code\n", "- Cells can be used to help indicate what pieces of the code goes together sematically\n", "- Easy to mix text (notes) together with code" ] }, { "cell_type": "code", "execution_count": 4, "id": "a33c423c", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "\n", "plt.plot([1, 2, 3, 4], [2, 3, 0, 5])\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "5a1ba164", "metadata": {}, "source": [ "Confusing things about notebooks\n", "---\n", "\n", "- They do not __enforce__ top-to-bottom code execution\n", " - I can run cells in any order I want to\n", "- The kernel (your program's memory) *continuously runs*\n", " - This means that when you run a cell, any *variables* and *functions* defined are accessible in cells that you run in the future\n", "- they make keeping track of scope complex!" ] }, { "cell_type": "code", "execution_count": null, "id": "def4bed9", "metadata": {}, "outputs": [], "source": [ "# scope and continuous kernel examples" ] }, { "cell_type": "code", "execution_count": null, "id": "38bf7bb3", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "3f050f60", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7e19e14d", "metadata": {}, "source": [ "Prof. Felix's Notebook recommendations\n", "---\n", "- If you use them, always double check your work by doing \"Kernel\" > \"Restart & Run All\"\n", "- You can always also save your notebook as a .py file and run it \"normally\" if you'd like to\n", " - \"File\" > \"Download As\" > \"Python (.py)\"\n", "- If you save a notebook as `.html`, then that's an easy way to make it easy to show the contents of the notebook to people who don't have Jupyter Notebook installed.\n", " - Gradescope *does* know how to render `.ipynb` files\n", " - \"File\" > \"Download As\" > \"HTML (.html)\"\n", " \n", " \n", "__DO NOT USE JUPYTER NOTEBOOKS FOR HW 8 IN DS 2000__\n", "\n", "(Consult with your DS 2001 instructor for their preference if you are interested in using jupyter notebooks for your DS 2001 project.)" ] }, { "cell_type": "markdown", "id": "c92b8be9", "metadata": {}, "source": [ "Notebook structure\n", "----\n", "\n", "In general, you'd like your notebooks structured as follows:\n", "\n", "In each cell, from the top to the bottom\n", "1. Your header comment\n", "2. Your imports\n", "3. One function per cell (in general)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" } }, "nbformat": 4, "nbformat_minor": 5 }