From 2b6e7ebf3022f97e1c13bbf6d94f5cfbbdab5ae4 Mon Sep 17 00:00:00 2001
From: Louis Oliphant <ltoliphant@wisc.edu>
Date: Tue, 11 Feb 2025 15:19:14 -0600
Subject: [PATCH] added lec 10 iterations 1

---
 .../10_Iteration1/Lec_10_Iteration1.ipynb     | 461 +++++++++
 .../Lec_10_Iteration1_Solution.ipynb          | 939 ++++++++++++++++++
 2 files changed, 1400 insertions(+)
 create mode 100644 s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1.ipynb
 create mode 100644 s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1_Solution.ipynb

diff --git a/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1.ipynb b/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1.ipynb
new file mode 100644
index 0000000..c85f107
--- /dev/null
+++ b/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1.ipynb
@@ -0,0 +1,461 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Warmup"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 1: Call can_serve different 3 times: use a positional argument, keyword argument, and default argument.\n",
+    "def can_serve(age=21):\n",
+    "    if(age >= 18):\n",
+    "        if (age <= 25):\n",
+    "            return True\n",
+    "        else:\n",
+    "            return False\n",
+    "    else:\n",
+    "        return False\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 2: Refactor the can_serve function.\n",
+    "#     e.g.: Write it another way, keeping the same behavior\n",
+    "#           Use the same print statements your wrote above to test it.\n",
+    "def refactor_can_serve(age=21):\n",
+    "    pass"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Warmup 3\n",
+    "# Consider the following code\n",
+    "\n",
+    "def refactor(x,y):\n",
+    "    if x:\n",
+    "        return True\n",
+    "    elif y:\n",
+    "        return True\n",
+    "    else:\n",
+    "        return False\n",
+    "    \n",
+    "print(refactor(True, False))\n",
+    "print(refactor(False, True))\n",
+    "print(refactor(True, True))\n",
+    "print(refactor(False, False))\n",
+    "\n",
+    "# what is the best way to refactor the body of the function ?\n",
+    "# A. return x and y\n",
+    "# B. return x or y\n",
+    "# C. return x != y\n",
+    "# D. return x == y"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Reminder\n",
+    "\n",
+    "- Conditionals can contain entire blocks of code, including **nested conditionals**\n",
+    "- It is common after getting code to work as intended to **refactor** the code to have the same behavior but to be more readable or execute faster."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Iteration\n",
+    "\n",
+    "## Readings\n",
+    "\n",
+    "* [Downey Ch 7](https://greenteapress.com/thinkpython2/html/thinkpython2008.html)\n",
+    "* [Python for Everybody, 6.1 - 6.3](https://runestone.academy/ns/books/published/py4e-int/iterations/toctree.html)\n",
+    "\n",
+    "## Learning Objectives\n",
+    "\n",
+    "After this lecture you will be able to...\n",
+    "\n",
+    "* Implement an iterative algorithm using a while loop\n",
+    "    - example: printing / counting\n",
+    "    - example: validating user input\n",
+    "    - example: performing an iterative calculation\n",
+    "* Trace iterative algorithms and determine their output\n",
+    "* Recognize common while loop errors\n",
+    "    - Infinite loops (when unintentional)\n",
+    "    - Off-by-one mistakes in the loop control variable\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## While Loop Syntax\n",
+    "\n",
+    "The `while` loop has the following syntax:\n",
+    "\n",
+    "```python\n",
+    "while CONDITION:\n",
+    "    #code to be executed if CONDITION is True (Body of loop)\n",
+    "#code after while loop\n",
+    "```\n",
+    "\n",
+    "If `CONDITION` is true then the indented block of code will be executed and flow-of-control will loop back up to the `CONDITION` again to check its value.  If it remains true, the indented block of code will be executed again.  This process will repeat indefinitely.  If the `CONDITION` is false the indented block of code will be skipped and the first line after the indented block will be executed.\n",
+    "\n",
+    "Try the example in the cell below and visualize it running using the debugger or in [the python tutor](https://pythontutor.com/render.html#code=n%20%3D%200%0Awhile%20n%20%3C%2010%3A%0A%20%20%20%20print%28n%29%0A%20%20%20%20n%20%2B%3D%201%0Aprint%28'Done!'%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false).\n",
+    "\n",
+    "In addition, we will be looking at the [slides](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-lecture-material/-/blob/main/s24/Common/10_Iteration-1/10_Iteration-1.pdf) that compare the **if statement** and the **while loop**.  Their syntax is very similar but their flow of control is different.  With an if-statement, the indented block of code will run at most once.  With a while-loop, the indented block may run over and over until the `CONDITION` is false."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example : Use the debugger to trace the execution of this code\n",
+    "\n",
+    "n = 0\n",
+    "while n < 10:\n",
+    "    print(n)\n",
+    "    n += 1\n",
+    "print('Done!')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example -- Counting\n",
+    "\n",
+    "When working with loops there are two common mistakes that are made:\n",
+    "\n",
+    "* **off-by-one** -- having the wrong logic that executes the loop once too often or once less than it should.\n",
+    "* **infinite loop** -- forgetting to include code in the body that will make sure that the condition will eventually become false.\n",
+    "\n",
+    "Follow along to see these common mistakes and the debugging techniques that you can use to find and fix these mistakes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example: Countdown Timer\n",
+    "# The code should prompt for a number, loop from that number down to 1 then print blast off\n",
+    "\n",
+    "from time import sleep\n",
+    "\n",
+    "count = 0\n",
+    "count = input(\"Enter in a time to countdown from: \")\n",
+    "count = int(count)\n",
+    "\n",
+    "# This loop handles the countdown\n",
+    "while count >= 0:\n",
+    "    print(count)\n",
+    "    sleep(1)\n",
+    "print(\"Blast Off!!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "**Example: Prime Numbers**\n",
+    "\n",
+    "A prime number, x, is a positive integer greater than 1 that is only divisible by itself and 1.  If a number is divisible by any other integers then it is not prime.  Let's write a function that checks if a number is prime.  We can do this by trying to divide it by all numbers from 2 to x-1.\n",
+    "\n",
+    "Finish writing the `is_prime()` function below and test it by calling different numbers that are prime and that are not prime.\n",
+    "\n",
+    "Some primes: 2, 7, 19, 29<br>\n",
+    "Non-primes: 6, 15, 30"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example: write a function to determine if an integer is prime\n",
+    "import math\n",
+    "\n",
+    "def is_prime(x):\n",
+    "    \"\"\" returns True if x is prime, false otherwise. Assumes x is an int\"\"\"\n",
+    "    # first let's make sure it is >1, otherwise return False\n",
+    "    if x <= 1:\n",
+    "        return False\n",
+    "\n",
+    "    # Now let's try dividing x by all numbers between 2 and x-1.  As soon as you discover that it is divisible by\n",
+    "    # any of these numbers you know it is not prime so return False\n",
+    "    # if you finish the entire loop and never returned False then it must be prime so return True\n",
+    "    divisor = 2\n",
+    "    while divisor <= x-1:\n",
+    "        # TODO: Finish function\n",
+    "        pass\n",
+    "\n",
+    "##TODO: call your function and see if it returns the proper value"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now that you have a working `is_prime()` function, let's use it to print out all the primes between 1 and 100.\n",
+    "\n",
+    "Write code in the cell below to loop through all values from 1 to 100 and call the is_prime() function on each of these values.  Print those values that are prime."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example: Print the prime numbers between 1 and 100\n",
+    "\n",
+    "# TODO: Write Code here\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example -- Validating User Input\n",
+    "\n",
+    "One common use of a loop is to check user input.  You setup a loop that repeats until a user types in a proper value.  Take a look at the code below to see one way to do this."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## A function which gets an integer in a specific range from the user\n",
+    "\n",
+    "def get_int(low=1,high=10):\n",
+    "    repeat = True\n",
+    "    while repeat:\n",
+    "        num = int(input(\"Enter an integer between \"+str(low)+\" and \"+str(high)+\":\"))\n",
+    "        if num<low or num>high:\n",
+    "            print(\"invalid input\")\n",
+    "        else:\n",
+    "            repeat = False\n",
+    "    return num\n",
+    "\n",
+    "val = get_int()\n",
+    "print(\"You entered\",val)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "The code in the cell below allows you to guess a random number between 1 and 100.  Run the code and see how it works.\n",
+    "\n",
+    "Now modify the code to keep track of how many guesses it takes to discover the hidden number and after the number is guessed tell them how many guesses it took."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from random import randint\n",
+    "\n",
+    "low = 1\n",
+    "high = 100\n",
+    "\n",
+    "hidden_number = randint(low,high)\n",
+    "guessed_number = False\n",
+    "##TODO: Create a count variable and start it at 0\n",
+    "\n",
+    "while not guessed_number:\n",
+    "    print(\"Guess my number.\")\n",
+    "    guess = get_int(low,high)\n",
+    "    ##TODO: A guess just happened so increment the count variable\n",
+    "    \n",
+    "    if guess == hidden_number:\n",
+    "        print(\"You guessed it!\")\n",
+    "        ##TODO: print out how many guesses it took\n",
+    "        \n",
+    "        guessed_number = True\n",
+    "    else:\n",
+    "        print(\"That is not it. Try again.\")\n",
+    "        if guess < hidden_number:\n",
+    "            print(\"you are too low\")\n",
+    "        else:\n",
+    "            print(\"you are too high\")\n",
+    "            "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "Finish writing the code to get 10 test scores (between 0 and 100) and print out the average score.  Use the `get_int()` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "\n",
+    "total = 0\n",
+    "count = 0\n",
+    "\n",
+    "while ##TODO -- Write the CONDITION so loop runs 10 times:\n",
+    "    test_score = get_int(0,100)\n",
+    "    ##TODO update total and count\n",
+    "#TODO print out the average of total/count\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Example -- Finding the Maximum Value\n",
+    "\n",
+    "One way of looking for the maximum value of a function is to scan across a range of input values and see what the output from the function is and keeping the largest value seen.  The function $5-(x-2)^2$ is defined in the function in the cell below.  Run the cell so it is defined, then test it by printing input values and the associated output values in the cell below that. "
+   ]
+  },
+  {
+   "attachments": {
+    "graph.png": {
+     "image/png": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![graph.png](attachment:graph.png)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example 3a: define the function\n",
+    "def f(x):\n",
+    "    return 5 - (x-2)**2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# ... and test it!\n",
+    "print(\"x , y\")\n",
+    "print(-1,\",\",f(-1))\n",
+    "print(0,\",\",f(0))\n",
+    "print(3,\",\",f(3))\n",
+    "print(6,\",\",f(6))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example: Now write code to iterate over values from start_x to end_x in steps of delta_x\n",
+    "# printing out the x and y values\n",
+    "\n",
+    "start_x = 0\n",
+    "end_x = 5\n",
+    "delta_x = 0.1\n",
+    "\n",
+    "# TODO: Write Code Here\n",
+    "current_x = start_x\n",
+    "while current_x <= end_x:\n",
+    "    print(current_x,f(current_x))\n",
+    "    current_x += delta_x\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "Now write the code again, but this time keep track of the highest y value seen and just print out the x and y values for this maximum.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# TODO: finish this code\n",
+    "\n",
+    "start_x = 0\n",
+    "end_x = 5\n",
+    "delta_x = 0.1\n",
+    "\n",
+    "# TODO: Write Code Here\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Summary\n",
+    "\n",
+    "You learned the syntax for writing a **while** loop and you practiced using while loops to count, validate user input and perform some mathematical computations."
+   ]
+  }
+ ],
+ "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.10.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1_Solution.ipynb b/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1_Solution.ipynb
new file mode 100644
index 0000000..3ae3bef
--- /dev/null
+++ b/s25/Louis_Lecture_Notes/10_Iteration1/Lec_10_Iteration1_Solution.ipynb
@@ -0,0 +1,939 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Warmup"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "False\n",
+      "True\n",
+      "True\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Warmup 1: Call can_serve different 3 times: use a positional argument, keyword argument, and default argument.\n",
+    "def can_serve(age=21):\n",
+    "    if(age >= 18):\n",
+    "        if (age <= 25):\n",
+    "            return True\n",
+    "        else:\n",
+    "            return False\n",
+    "    else:\n",
+    "        return False\n",
+    "\n",
+    "print(can_serve(4)) # positional argument\n",
+    "print(can_serve(age=25)) # keyword argument\n",
+    "print(can_serve()) # default argument"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "False\n",
+      "True\n",
+      "True\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Warmup 2: Refactor the can_serve function.\n",
+    "#     e.g.: Write it another way, keeping the same behavior\n",
+    "#           Use the same print statements your wrote above to test it.\n",
+    "def refactor_can_serve(age=21):\n",
+    "    return age >= 18 and age <=25\n",
+    "\n",
+    "print(refactor_can_serve(4)) # positional argument\n",
+    "print(refactor_can_serve(age=25)) # keyword argument\n",
+    "print(refactor_can_serve()) # default argument"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "True\n",
+      "True\n",
+      "True\n",
+      "False\n",
+      "should have same values as above\n",
+      "True\n",
+      "True\n",
+      "True\n",
+      "False\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Warmup 3\n",
+    "# Consider the following code\n",
+    "\n",
+    "def refactor(x,y):\n",
+    "    if x:\n",
+    "        return True\n",
+    "    elif y:\n",
+    "        return True\n",
+    "    else:\n",
+    "        return False\n",
+    "    \n",
+    "print(refactor(True, False))\n",
+    "print(refactor(False, True))\n",
+    "print(refactor(True, True))\n",
+    "print(refactor(False, False))\n",
+    "\n",
+    "# what is the best way to refactor the body of the function ?\n",
+    "# A. return x and y\n",
+    "# B. return x or y\n",
+    "# C. return x != y\n",
+    "# D. return x == y\n",
+    "\n",
+    "def refactor2(x,y):\n",
+    "    return x or y\n",
+    "\n",
+    "print(\"should have same values as above\")\n",
+    "print(refactor2(True, False))\n",
+    "print(refactor2(False, True))\n",
+    "print(refactor2(True, True))\n",
+    "print(refactor2(False, False))\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Reminder\n",
+    "\n",
+    "- Conditionals can contain entire blocks of code, including **nested conditionals**\n",
+    "- It is common after getting code to work as intended to **refactor** the code to have the same behavior but to be more readable or execute faster."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Iteration\n",
+    "\n",
+    "## Readings\n",
+    "\n",
+    "* [Downey Ch 7](https://greenteapress.com/thinkpython2/html/thinkpython2008.html)\n",
+    "* [Python for Everybody, 6.1 - 6.3](https://runestone.academy/ns/books/published/py4e-int/iterations/toctree.html)\n",
+    "\n",
+    "## Learning Objectives\n",
+    "\n",
+    "After this lecture you will be able to...\n",
+    "\n",
+    "* Implement an iterative algorithm using a while loop\n",
+    "    - example: printing / counting\n",
+    "    - example: validating user input\n",
+    "    - example: performing an iterative calculation\n",
+    "* Trace iterative algorithms and determine their output\n",
+    "* Recognize common while loop errors\n",
+    "    - Infinite loops (when unintentional)\n",
+    "    - Off-by-one mistakes in the loop control variable\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## While Loop Syntax\n",
+    "\n",
+    "The `while` loop has the following syntax:\n",
+    "\n",
+    "```python\n",
+    "while CONDITION:\n",
+    "    #code to be executed if CONDITION is True (Body of loop)\n",
+    "#code after while loop\n",
+    "```\n",
+    "\n",
+    "If `CONDITION` is true then the indented block of code will be executed and flow-of-control will loop back up to the `CONDITION` again to check its value.  If it remains true, the indented block of code will be executed again.  This process will repeat indefinitely.  If the `CONDITION` is false the indented block of code will be skipped and the first line after the indented block will be executed.\n",
+    "\n",
+    "Try the example in the cell below and visualize it running using the debugger or in [the python tutor](https://pythontutor.com/render.html#code=n%20%3D%200%0Awhile%20n%20%3C%2010%3A%0A%20%20%20%20print%28n%29%0A%20%20%20%20n%20%2B%3D%201%0Aprint%28'Done!'%29&cumulative=false&curInstr=0&heapPrimitives=nevernest&mode=display&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false).\n",
+    "\n",
+    "In addition, we will be looking at the [slides](https://git.doit.wisc.edu/cdis/cs/courses/cs220/cs220-lecture-material/-/blob/main/s24/Common/10_Iteration-1/10_Iteration-1.pdf) that compare the **if statement** and the **while loop**.  Their syntax is very similar but their flow of control is different.  With an if-statement, the indented block of code will run at most once.  With a while-loop, the indented block may run over and over until the `CONDITION` is false."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0\n",
+      "1\n",
+      "2\n",
+      "3\n",
+      "4\n",
+      "5\n",
+      "6\n",
+      "7\n",
+      "8\n",
+      "9\n",
+      "Done!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example : Use the debugger to trace the execution of this code\n",
+    "\n",
+    "n = 0\n",
+    "while n < 10:\n",
+    "    print(n)\n",
+    "    n += 1\n",
+    "print('Done!')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example -- Counting\n",
+    "\n",
+    "When working with loops there are two common mistakes that are made:\n",
+    "\n",
+    "* **off-by-one** -- having the wrong logic that executes the loop once too often or once less than it should.\n",
+    "* **infinite loop** -- forgetting to include code in the body that will make sure that the condition will eventually become false.\n",
+    "\n",
+    "Follow along to see these common mistakes and the debugging techniques that you can use to find and fix these mistakes."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter in a time to countdown from:  10\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "10\n",
+      "9\n",
+      "8\n",
+      "7\n",
+      "6\n",
+      "5\n",
+      "4\n",
+      "3\n",
+      "2\n",
+      "1\n",
+      "Blast Off!!\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example: Countdown Timer\n",
+    "# The code should prompt for a number, loop from that number down to 1 then print blast off\n",
+    "\n",
+    "from time import sleep\n",
+    "\n",
+    "count = 0\n",
+    "count = input(\"Enter in a time to countdown from: \")\n",
+    "count = int(count)\n",
+    "\n",
+    "# This loop handles the countdown\n",
+    "while count > 0:\n",
+    "    print(count)\n",
+    "    sleep(1)\n",
+    "    count-=1\n",
+    "print(\"Blast Off!!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "**Example: Prime Numbers**\n",
+    "\n",
+    "A prime number, x, is a positive integer greater than 1 that is only divisible by itself and 1.  If a number is divisible by any other integers then it is not prime.  Let's write a function that checks if a number is prime.  We can do this by trying to divide it by all numbers from 2 to x-1.\n",
+    "\n",
+    "Finish writing the `is_prime()` function below and test it by calling different numbers that are prime and that are not prime.\n",
+    "\n",
+    "Some primes: 2, 7, 19, 29, 101<br>\n",
+    "Non-primes: 1, 6, 18, 30, 36"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "True\n",
+      "False\n",
+      "False\n",
+      "True\n",
+      "True\n",
+      "False\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example: write a function to determine if an integer is prime\n",
+    "import math\n",
+    "\n",
+    "def is_prime(x):\n",
+    "    \"\"\" returns True if x is prime, false otherwise. Assumes x is an int\"\"\"\n",
+    "    # first let's make sure it is >1, otherwise return False\n",
+    "    if x <= 1:\n",
+    "        return False\n",
+    "\n",
+    "    # Now let's try dividing x by all numbers between 2 and x-1.  As soon as you discover that it is divisible by\n",
+    "    # any of these numbers you know it is not prime so return False\n",
+    "    # if you finish the entire loop and never returned False then it must be prime so return True\n",
+    "    divisor = 2\n",
+    "    while divisor <= x-1:\n",
+    "        if x% divisor == 0:\n",
+    "            return False\n",
+    "        divisor +=1\n",
+    "    return True\n",
+    "\n",
+    "##TODO: call your function and see if it returns the proper value\n",
+    "print(is_prime(101))\n",
+    "print(is_prime(36))\n",
+    "print(is_prime(18))\n",
+    "print(is_prime(7))\n",
+    "print(is_prime(2))\n",
+    "print(is_prime(1))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Now that you have a working `is_prime()` function, let's use it to print out all the primes between 1 and 100.\n",
+    "\n",
+    "Write code in the cell below to loop through all values from 1 to 100 and call the is_prime() function on each of these values.  Print those values that are prime."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1 is prime? False\n",
+      "2 is prime? True\n",
+      "3 is prime? True\n",
+      "4 is prime? False\n",
+      "5 is prime? True\n",
+      "6 is prime? False\n",
+      "7 is prime? True\n",
+      "8 is prime? False\n",
+      "9 is prime? False\n",
+      "10 is prime? False\n",
+      "11 is prime? True\n",
+      "12 is prime? False\n",
+      "13 is prime? True\n",
+      "14 is prime? False\n",
+      "15 is prime? False\n",
+      "16 is prime? False\n",
+      "17 is prime? True\n",
+      "18 is prime? False\n",
+      "19 is prime? True\n",
+      "20 is prime? False\n",
+      "21 is prime? False\n",
+      "22 is prime? False\n",
+      "23 is prime? True\n",
+      "24 is prime? False\n",
+      "25 is prime? False\n",
+      "26 is prime? False\n",
+      "27 is prime? False\n",
+      "28 is prime? False\n",
+      "29 is prime? True\n",
+      "30 is prime? False\n",
+      "31 is prime? True\n",
+      "32 is prime? False\n",
+      "33 is prime? False\n",
+      "34 is prime? False\n",
+      "35 is prime? False\n",
+      "36 is prime? False\n",
+      "37 is prime? True\n",
+      "38 is prime? False\n",
+      "39 is prime? False\n",
+      "40 is prime? False\n",
+      "41 is prime? True\n",
+      "42 is prime? False\n",
+      "43 is prime? True\n",
+      "44 is prime? False\n",
+      "45 is prime? False\n",
+      "46 is prime? False\n",
+      "47 is prime? True\n",
+      "48 is prime? False\n",
+      "49 is prime? False\n",
+      "50 is prime? False\n",
+      "51 is prime? False\n",
+      "52 is prime? False\n",
+      "53 is prime? True\n",
+      "54 is prime? False\n",
+      "55 is prime? False\n",
+      "56 is prime? False\n",
+      "57 is prime? False\n",
+      "58 is prime? False\n",
+      "59 is prime? True\n",
+      "60 is prime? False\n",
+      "61 is prime? True\n",
+      "62 is prime? False\n",
+      "63 is prime? False\n",
+      "64 is prime? False\n",
+      "65 is prime? False\n",
+      "66 is prime? False\n",
+      "67 is prime? True\n",
+      "68 is prime? False\n",
+      "69 is prime? False\n",
+      "70 is prime? False\n",
+      "71 is prime? True\n",
+      "72 is prime? False\n",
+      "73 is prime? True\n",
+      "74 is prime? False\n",
+      "75 is prime? False\n",
+      "76 is prime? False\n",
+      "77 is prime? False\n",
+      "78 is prime? False\n",
+      "79 is prime? True\n",
+      "80 is prime? False\n",
+      "81 is prime? False\n",
+      "82 is prime? False\n",
+      "83 is prime? True\n",
+      "84 is prime? False\n",
+      "85 is prime? False\n",
+      "86 is prime? False\n",
+      "87 is prime? False\n",
+      "88 is prime? False\n",
+      "89 is prime? True\n",
+      "90 is prime? False\n",
+      "91 is prime? False\n",
+      "92 is prime? False\n",
+      "93 is prime? False\n",
+      "94 is prime? False\n",
+      "95 is prime? False\n",
+      "96 is prime? False\n",
+      "97 is prime? True\n",
+      "98 is prime? False\n",
+      "99 is prime? False\n",
+      "100 is prime? False\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example: Print the prime numbers between 1 and 100\n",
+    "\n",
+    "# TODO: Write Code here\n",
+    "counter=1\n",
+    "while counter<=100:\n",
+    "    print(counter,\"is prime?\",is_prime(counter))\n",
+    "    counter+=1"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Example -- Validating User Input\n",
+    "\n",
+    "One common use of a loop is to check user input.  You setup a loop that repeats until a user types in a proper value.  Take a look at the code below to see one way to do this."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 10: -1\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "invalid input\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 10: 7\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "You entered 7\n"
+     ]
+    }
+   ],
+   "source": [
+    "## A function which gets an integer in a specific range from the user\n",
+    "\n",
+    "def get_int(low=1,high=10):\n",
+    "    repeat = True\n",
+    "    while repeat:\n",
+    "        num = int(input(\"Enter an integer between \"+str(low)+\" and \"+str(high)+\":\"))\n",
+    "        if num<low or num>high:\n",
+    "            print(\"invalid input\")\n",
+    "        else:\n",
+    "            repeat = False\n",
+    "    return num\n",
+    "\n",
+    "val = get_int()\n",
+    "print(\"You entered\",val)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "The code in the cell below allows you to guess a random number between 1 and 100.  Run the code and see how it works.\n",
+    "\n",
+    "Now modify the code to keep track of how many guesses it takes to discover the hidden number and after the number is guessed tell them how many guesses it took."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 50\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "That is not it. Try again.\n",
+      "you are too high\n",
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 25\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "That is not it. Try again.\n",
+      "you are too high\n",
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 12\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "That is not it. Try again.\n",
+      "you are too high\n",
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 6\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "That is not it. Try again.\n",
+      "you are too high\n",
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 3\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "That is not it. Try again.\n",
+      "you are too high\n",
+      "Guess my number.\n"
+     ]
+    },
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 1 and 100: 2\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "You guessed it!\n",
+      "It took you 6 guesses.\n"
+     ]
+    }
+   ],
+   "source": [
+    "from random import randint\n",
+    "\n",
+    "low = 1\n",
+    "high = 100\n",
+    "\n",
+    "hidden_number = randint(low,high)\n",
+    "guessed_number = False\n",
+    "##TODO: Create a count variable and start it at 0\n",
+    "count = 0\n",
+    "\n",
+    "while not guessed_number:\n",
+    "    print(\"Guess my number.\")\n",
+    "    guess = get_int(low,high)\n",
+    "    ##TODO: A guess just happened so increment the count variable\n",
+    "    count += 1\n",
+    "    \n",
+    "    if guess == hidden_number:\n",
+    "        print(\"You guessed it!\")\n",
+    "        ##TODO: print out how many guesses it took\n",
+    "        print(\"It took you\",count,\"guesses.\")\n",
+    "        \n",
+    "        guessed_number = True\n",
+    "    else:\n",
+    "        print(\"That is not it. Try again.\")\n",
+    "        if guess < hidden_number:\n",
+    "            print(\"you are too low\")\n",
+    "        else:\n",
+    "            print(\"you are too high\")\n",
+    "            "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "Finish writing the code to get 10 test scores (between 0 and 100) and print out the average score.  Use the `get_int()` function."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 13,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdin",
+     "output_type": "stream",
+     "text": [
+      "Enter an integer between 0 and 100: 50\n",
+      "Enter an integer between 0 and 100: 60\n",
+      "Enter an integer between 0 and 100: 70\n",
+      "Enter an integer between 0 and 100: 80\n",
+      "Enter an integer between 0 and 100: 80\n",
+      "Enter an integer between 0 and 100: 75\n",
+      "Enter an integer between 0 and 100: 85\n",
+      "Enter an integer between 0 and 100: 80\n",
+      "Enter an integer between 0 and 100: 80\n",
+      "Enter an integer between 0 and 100: 90\n"
+     ]
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Average is 75.0\n"
+     ]
+    }
+   ],
+   "source": [
+    "\n",
+    "total = 0\n",
+    "count = 0\n",
+    "\n",
+    "while count < 10:\n",
+    "    test_score = get_int(0,100)\n",
+    "    count +=1\n",
+    "    total += test_score\n",
+    "#TODO print out the average of total/count\n",
+    "print(\"Average is\",(total/count))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Example -- Finding the Maximum Value\n",
+    "\n",
+    "One way of looking for the maximum value of a function is to scan across a range of input values and see what the output from the function is and keeping the largest value seen.  The function $5-(x-2)^2$ is defined in the function in the cell below.  Run the cell so it is defined, then test it by printing input values and the associated output values in the cell below that. "
+   ]
+  },
+  {
+   "attachments": {
+    "graph.png": {
+     "image/png": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![graph.png](attachment:graph.png)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Example 3a: define the function\n",
+    "def f(x):\n",
+    "    return 5 - (x-2)**2"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 15,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "x , y\n",
+      "-1 , -4\n",
+      "0 , 1\n",
+      "3 , 4\n",
+      "6 , -11\n"
+     ]
+    }
+   ],
+   "source": [
+    "# ... and test it!\n",
+    "print(\"x , y\")\n",
+    "print(-1,\",\",f(-1))\n",
+    "print(0,\",\",f(0))\n",
+    "print(3,\",\",f(3))\n",
+    "print(6,\",\",f(6))"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "0 , 1\n",
+      "0.1 , 1.3900000000000001\n",
+      "0.2 , 1.7599999999999998\n",
+      "0.30000000000000004 , 2.1100000000000003\n",
+      "0.4 , 2.4399999999999995\n",
+      "0.5 , 2.75\n",
+      "0.6 , 3.04\n",
+      "0.7 , 3.3099999999999996\n",
+      "0.7999999999999999 , 3.5599999999999996\n",
+      "0.8999999999999999 , 3.79\n",
+      "0.9999999999999999 , 4.0\n",
+      "1.0999999999999999 , 4.1899999999999995\n",
+      "1.2 , 4.359999999999999\n",
+      "1.3 , 4.51\n",
+      "1.4000000000000001 , 4.640000000000001\n",
+      "1.5000000000000002 , 4.75\n",
+      "1.6000000000000003 , 4.84\n",
+      "1.7000000000000004 , 4.91\n",
+      "1.8000000000000005 , 4.96\n",
+      "1.9000000000000006 , 4.99\n",
+      "2.0000000000000004 , 5.0\n",
+      "2.1000000000000005 , 4.99\n",
+      "2.2000000000000006 , 4.96\n",
+      "2.3000000000000007 , 4.909999999999999\n",
+      "2.400000000000001 , 4.839999999999999\n",
+      "2.500000000000001 , 4.749999999999999\n",
+      "2.600000000000001 , 4.639999999999999\n",
+      "2.700000000000001 , 4.509999999999999\n",
+      "2.800000000000001 , 4.359999999999998\n",
+      "2.9000000000000012 , 4.189999999999998\n",
+      "3.0000000000000013 , 3.9999999999999973\n",
+      "3.1000000000000014 , 3.789999999999997\n",
+      "3.2000000000000015 , 3.559999999999996\n",
+      "3.3000000000000016 , 3.309999999999996\n",
+      "3.4000000000000017 , 3.0399999999999956\n",
+      "3.5000000000000018 , 2.7499999999999947\n",
+      "3.600000000000002 , 2.439999999999994\n",
+      "3.700000000000002 , 2.109999999999993\n",
+      "3.800000000000002 , 1.7599999999999927\n",
+      "3.900000000000002 , 1.3899999999999917\n",
+      "4.000000000000002 , 0.9999999999999929\n",
+      "4.100000000000001 , 0.5899999999999936\n",
+      "4.200000000000001 , 0.1599999999999957\n",
+      "4.300000000000001 , -0.2900000000000036\n",
+      "4.4 , -0.7600000000000016\n",
+      "4.5 , -1.25\n",
+      "4.6 , -1.759999999999998\n",
+      "4.699999999999999 , -2.2899999999999965\n",
+      "4.799999999999999 , -2.8399999999999936\n",
+      "4.899999999999999 , -3.4099999999999913\n",
+      "4.999999999999998 , -3.9999999999999893\n"
+     ]
+    }
+   ],
+   "source": [
+    "# Example: Now write code to iterate over values from start_x to end_x in steps of delta_x\n",
+    "# printing out the x and y values\n",
+    "\n",
+    "start_x = 0\n",
+    "end_x = 5\n",
+    "delta_x = 0.1\n",
+    "\n",
+    "# TODO: Write Code Here\n",
+    "current_x = start_x\n",
+    "while current_x <= end_x:\n",
+    "    print(current_x,\",\",f(current_x))\n",
+    "    current_x += delta_x\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### You Try\n",
+    "\n",
+    "Now write the code again, but this time keep track of the highest y value seen and just print out the x and y values for this maximum.\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "MAX is: 2.0000000000000004 , 5.0\n"
+     ]
+    }
+   ],
+   "source": [
+    "# TODO: finish this code\n",
+    "\n",
+    "start_x = 0\n",
+    "end_x = 5\n",
+    "delta_x = 0.1\n",
+    "\n",
+    "# TODO: Write Code Here\n",
+    "max_x = start_x\n",
+    "max_y = f(start_x)\n",
+    "\n",
+    "current_x = start_x\n",
+    "while current_x <= end_x:\n",
+    "    current_y = f(current_x)\n",
+    "    if current_y > max_y:\n",
+    "        max_x = current_x\n",
+    "        max_y = current_y\n",
+    "    current_x+=delta_x\n",
+    "print(\"MAX is:\",max_x,\",\",max_y)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Summary\n",
+    "\n",
+    "You learned the syntax for writing a **while** loop and you practiced using while loops to count, validate user input and perform some mathematical computations."
+   ]
+  }
+ ],
+ "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.10.12"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
-- 
GitLab