{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# CS 277 - Algorithms and Data Structures for Data Science\n",
        "\n",
        "**Lecture 1**\n",
        "\n",
        "*   Introduction(s)\n",
        "*   Course Logistics\n",
        "*   Introduction to Python\n",
        "\n"
      ],
      "metadata": {
        "id": "GH_6yXV5UXNE"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Welcome to CS 277\n",
        "\n",
        "I am Harsha Srimath Tirumala, the instructor for this semester's course on Algorithms and Data Structures.\n",
        "\n",
        "I am from India, my research interests are in theoretical computer science and my hobbies include watching/playing Football and Tennis.\n",
        "\n",
        "I have always dreaded programming - something you will no doubt witness at different points this semester.\n",
        "\n",
        "---\n",
        "\n",
        "\n",
        "Fun fact - My favorite football teams all won something of note this past season - Barcelona, Arsenal and Spain!\n"
      ],
      "metadata": {
        "id": "qZ7ri5JrTtSi"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Introduction\n",
        "\n",
        "This is a course about systematic problem solving.\n",
        "\n",
        "The problems we will deal with are computational problems. Our task will be to design algorithms to solve these problems in a systematic manner. We will also write programs in Python to implement these algorithms.\n",
        "\n",
        "Examples include -\n",
        "\n",
        "1. Optimal search through structured data\n",
        "\n",
        "2. Best sorting algorithm for a list of numbers\n",
        "\n",
        "3. Identifying all airports reachable from Champaign within 3 hops\n",
        "\n",
        "4. Establishing Linkedin connection degree (1st/2nd/3rd)\n",
        "\n",
        "5. Computing the cheapest flight route from Chicago to San Francisco\n",
        "\n",
        "6. Finding the minimum number of semesters to complete courses required for a degree\n",
        "\n",
        "7. Minimum edits needed to transform the word Champaign to China\n"
      ],
      "metadata": {
        "id": "2tAMXzRAJohK"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Course Learning Goals\n",
        "\n",
        "![Screenshot 2026-08-24 at 12.32.04 PM.png](data:image/png;base64,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)"
      ],
      "metadata": {
        "id": "yYrKnjd40i31"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Course staff\n",
        "\n",
        "\n",
        "\n",
        "*   Instructor - Harsha Srimath Tirumala\n",
        "\n",
        "*   Teaching Assistants - Atharva Bhatt, Anushka Gupta, Shashwat Gupta, Ethan Luo\n",
        "\n",
        "* Course Assistants - Anila Chundi, Jiawen Gong,\n",
        "Bhavika Kothari,\n",
        "Adarsh Krishnan,\n",
        "Steven Piotrowski,\n",
        "Youyou Wu\n",
        "\n",
        "\n"
      ],
      "metadata": {
        "id": "x_k8iztpU5ZT"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Electronic Bulletin board\n",
        "\n",
        "\n",
        "*   **Course Website** - General information, Course policy, Lecture notes, Lecture recordings\n",
        "\n",
        "https://courses.grainger.illinois.edu/cs277/fa2026/\n",
        "\n",
        "\n",
        "*   **Ed** - Announcements, online questions and discussion, contacting course staff\n",
        "\n",
        "https://edstem.org/us/courses/102969/discussion\n",
        "\n",
        "* **Prairielearn** - All assigned work\n",
        "\n",
        "https://us.prairielearn.com/\n",
        "\n",
        "* We will use the Massmail tool to send an email to all course participants in case of special notifications such as weather related cancellation, exam specifics etc.\n",
        "\n",
        "\n",
        "\n",
        "---\n",
        "\n",
        "Note - The course website is under construction and it may take a few days to get it up to date. Thanks for your patience.\n",
        "\n"
      ],
      "metadata": {
        "id": "BaNYVn93VZ_f"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Resources for class material\n",
        "\n",
        "**Prerequisites**\n",
        "\n",
        "STAT 207, Calculus. Prior programming experience in Python from STAT 207 and CS/STAT 107.\n",
        "\n",
        "**Textbooks**\n",
        "\n",
        "1. Algorithms by Dasgupta, Papadimitriou and Vazirani (MAIN)\n",
        "\n",
        "2. Data Structures and Algorithms in Python by Goodrich, Tamassia and Goldwasser (Coding reference)\n",
        "\n",
        "![DPVtext(image).jpg](data:image/jpeg;base64,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)"
      ],
      "metadata": {
        "id": "6LJKH4eKZRYx"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Grading policy\n",
        "\n",
        "Total score for the course (100) will be based on -\n",
        "\n",
        "*   Labs - 25%\n",
        "*   Homeworks - 25%\n",
        "*   Midterm exams - 33.33%\n",
        "*   Final exam - 16.67%\n",
        "\n",
        "\n",
        "Final Grades -\n",
        "\n",
        "* A : [93,100]\n",
        "* A- : [90,93)\n",
        "* B+ : [87,90)\n",
        "* B : [83,87)\n",
        "* C+ : [77,80)\n",
        "* C : [73,77)\n",
        "* C- : [70,73)\n",
        "* D : [60,70)\n",
        "* D- : [50,60)\n",
        "* F : [0,50)\n",
        "\n",
        "Note - These scores guarantee the respective letter grade. The final grading scheme (per instructor's discretion) may be more generous depending on factors such as unusual circumstances, diffculty of exams etc.\n",
        "\n"
      ],
      "metadata": {
        "id": "6qitZzDEeqIA"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Labs\n",
        "\n",
        "* Every week Labs are on Fridays 3:30pm to 4:45pm in DCL 1320\n",
        "\n",
        "*   Autograded programming and algorithm exercises on\n",
        "PrairieLearn\n",
        "\n",
        "*   Start working during Friday meeting and complete by\n",
        "Thursday the following week\n",
        "\n",
        "* Allowed to submit one lab upto a week late; required to inform\n",
        "us within 24 hours of the homework deadline.\n",
        "\n",
        "(more information on Course webpage)\n",
        "\n",
        "* Any lab can be submitted one day late for 90% credit\n",
        "\n",
        "* **Individual submissions**\n",
        "\n",
        "* Schedule on course webpage - expected to have 11 labs"
      ],
      "metadata": {
        "id": "z29Zpqujgsa0"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Homework\n",
        "\n",
        "* One homework every two weeks : Assigned on Monday and due\n",
        "two weeks later on Monday.\n",
        "\n",
        "* Allowed to submit one homework upto a week late; required to\n",
        "inform us within 24 hours of the homework deadline.\n",
        "\n",
        "* Any homework can be submitted one day late for 90% credit\n",
        "\n",
        "* Solved in **groups of size at most 3** on PrairieLearn\n",
        "\n",
        "* Homework schedule on course webpage - 6 in total\n"
      ],
      "metadata": {
        "id": "jpaV-otJhYiL"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Examinations\n",
        "\n",
        "* To be held at Computer Based Testing Facility\n",
        "\n",
        "* Tentative schedule (awaiting CBTF confirmation) -\n",
        "\n",
        "1. Midterm 1 (50 minutes) Oct 1 - Oct 4\n",
        "2. Midterm 2 (50 minutes) Oct 29 - Nov 1\n",
        "3. Final Exam (50 minutes + 50 minutes) Dec 11 - Dec 17\n",
        "\n",
        "During the slot for the final exam, **you can choose to retake either exam 1 or exam 2 (or neither)**.\n",
        "\n",
        "* Each exam only tests topics covered since previous exam.\n",
        "\n",
        "* No conflict exams unless there are extraordinary circumstances."
      ],
      "metadata": {
        "id": "kUzpAISUiUEF"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Course Overview\n",
        "\n",
        "* How to solve computational problems efficiently and\n",
        "communicate that your solution is effective and correct\n",
        "\n",
        "* Different algorithms can solve a computation problem with\n",
        "drastically different performance\n",
        "\n",
        "* Learn how to break a complex problem into subproblems, use\n",
        "abstraction to identify algorithmic solutions\n",
        "\n",
        "* Algorithmic paradigms: divide and conquer, dynamic\n",
        "programming, greedy, . . .\n",
        "\n",
        "* Not a programming class though you will be expected to write\n",
        "small snippets of Python code\n",
        "\n"
      ],
      "metadata": {
        "id": "UZH6qZpQ1n-v"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "# Introduction to Python and Recursion\n",
        "\n",
        "A good source for an overview on Python is chapter 1 of the textbook \"Data Structures and Algorithms in Python\" by Goodrich, Tamassia, and Goldwasser. This lecture is based on material in that chapter.\n",
        "\n",
        "## Identifiers and Assignment\n",
        "\n",
        "*Identifiers* are \"names\" of memory locations that store values that are used used byt he program during the computation.\n",
        "\n",
        "The *assignment* statement assigns a value to an identifier.\n",
        "\n",
        "For example, <code>temperature = 98.6</code> establishes <code>temperature</code> as an identifier and associates it with the object expressed on the right of the \"=\".\n",
        "* Identifiers are case sensitive. <code>temperature</code> is a different identifier than <code>Temperature</code>.\n",
        "\n",
        "## Built-in Classes\n",
        "\n",
        "### bool class\n",
        "\n",
        "**Values:** <code>True</code> and <code>False</code>\n",
        "\n",
        "**Operations:**\n",
        "* <code>a and b</code> evaluates to <code>True</code> exactly if **both** <code>a</code> and <code>b</code> evaluate to <code>True</code>\n",
        "* <code>a or b</code> evaluates to <code>True</code> exactly if **at least** one of <code>a</code> or <code>b</code> evaluate to <code>True</code>\n",
        "* <code>not a</code> evaluates to <code>True</code> exactly when <code>a</code> evaluates to <code>False</code>.\n",
        "\n",
        "### int class\n",
        "\n",
        "**Values:** -4, -2, 0, 1, 2, 5, ...\n",
        "\n",
        "**Operations:** + (addition), - (subtraction), * (multiplication), / (division), // (integer division), % (modulo), ** (exponentiation), ...\n",
        "\n",
        "### float class\n",
        "\n",
        "**Values:** 1.0, 0.5, -25.5, ...\n",
        "\n",
        "**Operations:** + (addition), - (subtraction), * (multiplication), / (division), ...\n",
        "\n",
        "### sequence classes\n",
        "\n",
        "**string:** any sequence of characters, \"hello\", `world'\n",
        "\n",
        "**list:** any sequence of objects, <code>[0,1,100], [\"hello\", 1.5]</code>\n",
        "\n",
        "**tuple:** immutable version of lists, <code>(0,1,100), (\"hello\",1.5)</code>\n",
        "\n",
        "**Other classes:** dict, set, ...\n",
        "\n",
        "**Operations:**\n",
        "* <code>s + t</code> *concatenates* <code>s</code> and <code>t</code>\n",
        "* <code>k * s</code>: concatenate <code>s</code> with itself <code>k</code> times\n",
        "* <code>s[i]</code>: <code>i</code>th element of <code>s</code>\n",
        "* <code>s[i,j]</code>: portion of <code>s</code> from <code>i</code>th element to <code>j</code>th element (not including the <code>j</code>th element)\n",
        "* <code>val in s</code>: checks if <code>val</code> is in sequence <code>s</code>\n",
        "* <code>val not in s</code>: checks if <code>val</code> is not in sequence <code>s</code>\n"
      ],
      "metadata": {
        "id": "Slv96BJU4G1n"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Input and Output\n",
        "\n",
        "**print:** outputs a sequence of characters on the console\n",
        "\n",
        "**input:** way to get information from the user. prints an optional prompt and then waits for the user to enter information."
      ],
      "metadata": {
        "id": "lElT5lNk4iTG"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# hello world\n",
        "print(\"Hello World!\")"
      ],
      "metadata": {
        "id": "QtGlDCH0UfFr"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# simple assignment and operations\n",
        "a = 5\n",
        "b = a\n",
        "print(\"a =\", a, \"b =\", b)\n",
        "\n",
        "b = 2\n",
        "print(\"a =\", a, \"b =\", b)\n",
        "\n",
        "print(\"a/b =\", a/b, \"a//b =\", a//b)\n",
        "print(\"a%b =\", a%b)\n",
        "\n",
        "s =\"cat\"\n",
        "print(s+s)\n",
        "print(2*s)\n",
        "print(s[0],s[1])\n",
        "\n",
        "l = [0, \"hello\", 1.5]\n",
        "print(l[2])\n",
        "print(l)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "qlcwvxoe4sBx",
        "outputId": "88e8a98b-3a7e-42ee-a307-be2ff00c80fa"
      },
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "a = 5 b = 5\n",
            "a = 5 b = 2\n",
            "a/b = 2.5 a//b = 2\n",
            "a%b = 1\n",
            "catcat\n",
            "catcat\n",
            "c a\n",
            "1.5\n",
            "[0, 'hello', 1.5]\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# understanding input\n",
        "a = input(\"What is a? \")\n",
        "b = input(\"What is b? \")\n",
        "print(\"a+b is\", a+b)\n",
        "\n",
        "a = int(input(\"What is a? \"))\n",
        "b = int(input(\"What is b? \"))\n",
        "\n",
        "print(\"a+b is\", a+b)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "tlB0AIcZ4wN8",
        "outputId": "c1de8ca4-d615-497e-c5e2-4b3fae33a6a8"
      },
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "What is a? 7\n",
            "What is b? 3\n",
            "a+b is 73\n",
            "What is a? 7\n",
            "What is b? 3\n",
            "a+b is 10\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "# swapping numbers\n",
        "a = 5\n",
        "b = 6\n",
        "print(a,b)\n",
        "\n",
        "a = 5\n",
        "b = 6\n",
        "a = b\n",
        "b = a\n",
        "print(a,b)\n",
        "\n",
        "a = 5\n",
        "b = 6\n",
        "a,b = b,a\n",
        "print(a,b)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "jNFIsfwH42Om",
        "outputId": "d7029660-b703-4075-aa44-c5b31a7067c1"
      },
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "5 6\n",
            "6 6\n",
            "6 5\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Control Flow\n",
        "\n",
        "Conditional constructs (also known as if statements) provide a way to execute a chosen block of code based on the run-time evaluation of one or more Boolean expressions. In Python, the most general form is\n",
        "\n",
        "```\n",
        "if <first-condition>:\n",
        "  <first_body>\n",
        "elif <second-condition>:\n",
        "  <second-body>\n",
        "elif <third-condition>:\n",
        "  <third-body>\n",
        "else:\n",
        "  <fourth-body>\n",
        "```"
      ],
      "metadata": {
        "id": "RRegz_GA4_ex"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# find maximum of 3 numbers\n",
        "a = int(input(\"What is a? \"))\n",
        "b = int(input(\"What is b? \"))\n",
        "c = int(input(\"What is c? \"))\n",
        "if a > b:\n",
        "  # a is greater than b\n",
        "  if a > c:\n",
        "    print(\"maximum is a and is equal to\", a)\n",
        "  else:\n",
        "    print(\"maximum is c and is equal to\", c)\n",
        "else:\n",
        "  # b >= a\n",
        "  if b > c:\n",
        "    print(\"maximum is b and is equal to\", b)\n",
        "  else:\n",
        "    print(\"maximum is c and is equal to\", c)"
      ],
      "metadata": {
        "id": "hnxSvzr85EBI"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Loops\n",
        "\n",
        "Loops allow one to execute a sequence of statements repeatedly. Python offers two forms of loops: ```while``` loops and ```for``` loops. General form of these loops is\n",
        "\n",
        "```\n",
        "while <condition>:\n",
        "  <body>\n",
        "\n",
        "for <elem> in <iterable>:\n",
        "  <body>\n"
      ],
      "metadata": {
        "id": "IPIJghr25Hd-"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# find the sum of the first 5 squares\n",
        "n = 0\n",
        "sum = 0\n",
        "while n < 100:\n",
        "  sum = sum + n*n\n",
        "  n = n+1\n",
        "\n",
        "print(sum)"
      ],
      "metadata": {
        "id": "Fm4sGjXc48eF"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# find the sum of the first 5 squares\n",
        "l = [0,1,2,3,4]\n",
        "\n",
        "sum = 0\n",
        "for i in l:\n",
        "  sum += i*i\n",
        "print(sum)"
      ],
      "metadata": {
        "id": "Ly9RU1Jk5Rzs"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# range\n",
        "n = int(input(\"What is n? \"))\n",
        "sum = 0\n",
        "for i in range(n):\n",
        "  sum += i*i\n",
        "print(sum)\n",
        "\n",
        "# range(n) = [0,1,2,3,...,(n-1)]"
      ],
      "metadata": {
        "id": "0qcukvaM5Xtx"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## break and continue\n",
        "\n",
        "**break:** immediate termination of the loop when executed within its body\n",
        "\n",
        "**continue:** causes the current iteration of a loop body to stop, but with subsequent passes of the loop proceeding as expected\n"
      ],
      "metadata": {
        "id": "axDWDBWP5adk"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "print(\"Running loop with break\")\n",
        "for n in range(10):\n",
        "  if (n == 5):\n",
        "    break\n",
        "  print(n)\n",
        "\n",
        "print(\"Running loop with continue\")\n",
        "for n in range(10):\n",
        "  if (n == 5):\n",
        "    continue\n",
        "  print(n)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Z18eynNw5ezc",
        "outputId": "c228eb00-0f63-430c-a622-8437e2702272"
      },
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Running loop with break\n",
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n",
            "Running loop with continue\n",
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n",
            "6\n",
            "7\n",
            "8\n",
            "9\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Mutable and Immutable Classes\n",
        "\n",
        "Assignments to variables with an immutable type, an assignment does not modify the existing object; instead it creates a new object and assigns the identifier to that value.\n",
        "\n",
        "In contrast, assignments to mutable types, modifies the existing object.\n",
        "\n",
        "**Immutable types:** bool, int, float, string, tuple\n",
        "\n",
        "**Mutable types:** list, dict, set"
      ],
      "metadata": {
        "id": "4scChOCb5hbq"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "a = 5\n",
        "b = a\n",
        "print(\"a =\",a, \"b =\", b)\n",
        "b += 1\n",
        "print(\"a =\",a, \"b =\", b)\n",
        "s = \"hello\"\n",
        "#s[1] = \"a\" # Will generate an error because strings are not mutable\n",
        "l = list(\"hello\")\n",
        "print(\"l =\", l)\n",
        "l[1] = \"a\"\n",
        "print(\"l =\", l)\n",
        "m = l\n",
        "print(\"m =\", m)\n",
        "m[3] = \"o\"\n",
        "print(\"l =\", l)\n",
        "l[3] = \"l\"\n",
        "l += \"o\"\n",
        "print(\"m =\", m)\n"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "dilhWgUI5kBT",
        "outputId": "5bc01bb9-dd0a-4d96-d5d6-8f6346498010"
      },
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "a = 5 b = 5\n",
            "a = 5 b = 6\n",
            "l = ['h', 'e', 'l', 'l', 'o']\n",
            "l = ['h', 'a', 'l', 'l', 'o']\n",
            "m = ['h', 'a', 'l', 'l', 'o']\n",
            "l = ['h', 'a', 'l', 'o', 'o']\n",
            "m = ['h', 'a', 'l', 'l', 'o', 'o']\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Functions\n",
        "\n",
        "A *function* serves as a self-contained, reusable block of code designed to perform a specific, defined task. The take inputs and produce an output which is the result of the computation."
      ],
      "metadata": {
        "id": "CFW0LUQZ5mg8"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Function to compute the sum of squares\n",
        "def sum_of_squares(n):\n",
        "  sum = 0\n",
        "  for i in range(n):\n",
        "    sum += i*i\n",
        "  return sum\n",
        "\n",
        "print (sum_of_squares(5))"
      ],
      "metadata": {
        "id": "aqA-neXv5pI6"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Scope and Namespaces\n",
        "\n",
        "Scope refers to the region of the program where a variable is defined. Variables assignments within the body of a function, are local to that function call."
      ],
      "metadata": {
        "id": "DSC-2HNG5r-a"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "g = 2\n",
        "x = 2\n",
        "\n",
        "def foo (x):\n",
        "  print(\"g =\",g)\n",
        "  print(\"x =\", x)\n",
        "  y = x + 1\n",
        "  print(\"y =\", y)\n",
        "  return x\n",
        "\n",
        "def bar (x):\n",
        "  print(\"y =\", y)\n",
        "  return y\n",
        "\n",
        "foo(1)\n",
        "#bar(0)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3VnEjhLl5vSZ",
        "outputId": "15bc5d34-9f14-48a8-98f6-0ac953d75fb3"
      },
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "g = 2\n",
            "x = 1\n",
            "y = 2\n"
          ]
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1"
            ]
          },
          "metadata": {},
          "execution_count": 4
        }
      ]
    }
  ]
}