From 0b1a6704b2e57b3afe43a1008568a85e333ebf6b Mon Sep 17 00:00:00 2001
From: parksjr5 <jruthsmi@umich.edu>
Date: Tue, 28 Jun 2022 11:02:12 -0400
Subject: [PATCH] adding Big O file

---
 BigO_C++.ipynb | 422 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 422 insertions(+)
 create mode 100644 BigO_C++.ipynb

diff --git a/BigO_C++.ipynb b/BigO_C++.ipynb
new file mode 100644
index 0000000..9bdd99d
--- /dev/null
+++ b/BigO_C++.ipynb
@@ -0,0 +1,422 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fc73d74c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "#Install answercheck in current director\n",
+    "from urllib.request import urlretrieve\n",
+    "urlretrieve('https://raw.githubusercontent.com/colbrydi/jupytercheck/master/answercheck.py', filename='answercheck.py')\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3c2a4f39",
+   "metadata": {},
+   "source": [
+    "# Big O Notation\n",
+    "Quantifying the efficiency of a program by looking at the amount of time it takes to run and memory space it takes up."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2b78245b",
+   "metadata": {},
+   "source": [
+    "**_Optional_** Motivating picture: \n",
+    "\n",
+    "![Hour glass clock](https://pixabay.com/photos/hourglass-time-hours-clock-620397/)\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "71e867d9",
+   "metadata": {},
+   "source": [
+    "## Description\n",
+    "We write many different algorithms when programming. As we run these programs more often and with larger amounts of data, it is important to be able to compare the efficiency of these programs with one another. Big O allows us to do this. There are two aspects of code Big O considers: Time and Space. \n",
+    "\n",
+    "Big O looks at the amount of time it takes a program to run. It also looks at the amount of memory space a program requires."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "58ec20e8",
+   "metadata": {},
+   "source": [
+    "## Self Assessment"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "6b6725f1",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 1:</span>** Let's say you have a linear algorithm. Type its correct Big O notation."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "9c50d3cc",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "7bc902d2",
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "O(N)\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "b0bcbd50",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "from answercheck import checkanswer\n",
+    "checkanswer.vector(x,'2cab95d1b144d663bad1ce5c51020ae0')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "38dd8bfb",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 2:</span>** What type of algorithm has a higher Big O value? (It requires more time and/or space than the others)\n",
+    "\n",
+    "1. Linear\n",
+    "2. Exponential\n",
+    "3. Quadratic\n",
+    "4. Binary Search"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "0a7bd8a8",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "62bf095a",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "2\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "67a669f6",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 3:</span>** What type of algorithm has to have an ordered container to be used?\n",
+    "\n",
+    "1. Linear\n",
+    "2. Exponential\n",
+    "3. Quadratic\n",
+    "4. Binary Search"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "3b5de69d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f5fb293c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "4\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "49395163",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 4:</span>** If a program has multiple pieces of code with different run times, what Big O notation is used to represent the entire program run time? \n",
+    "\n",
+    "1. The largest run time from the code\n",
+    "2. The minimum code run time from the code\n",
+    "3. An average of all the code chunk run times\n",
+    "4. The sum of all the code chunk run times"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "1ccb15b6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "cd1ea9c4",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "1\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "c12a3b73",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 5:</span>** What type of Big O example is the following code? (Answer in all lowercase text)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4ac7afad",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "valList = [1,2,3,4,5]\n",
+    "listSum = 0;\n",
+    "for x in valList:\n",
+    "    listSum += x\n",
+    "\n",
+    "print(listSum)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "ac0e0202",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4b5e2b4c",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "linear\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "99f869f7",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Question 7:</span>** What type of Big O example is the following code? (Answer in all lowercase text)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "4e79ed15",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "valList = [1,2,3,4,5]\n",
+    "listSize = len(valList)\n",
+    "print(listSize)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "fbdbbc87",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "## Put your answer here"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "f6628cdd",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "##ANSWER##\n",
+    "constant\n",
+    "##ANSWER##"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "5d237ca9",
+   "metadata": {},
+   "source": [
+    "## Training Materials\n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "1b047470",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Read the following website:</span>** <br/> An introduction to what Big O notation is and a few types of notation you should be familiar with: <br/> <br/> https://towardsdatascience.com/introduction-to-big-o-notation-820d2e25d3fd"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "72ca96bc",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Watch the following video:</span>** <br/> Reviewing Big O notation, expanding on what you previously read, and going over examples of Big O notation:<br/>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "6ff70742",
+   "metadata": {
+    "scrolled": true
+   },
+   "outputs": [
+    {
+     "data": {
+      "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAgICAgICAgICAgGBwgIBwcHBwgICAgICAgICAgICAgIChALCAgOCQgIDRUNDhERExMTCAsWGBYSGBASExIBBQUFBwYHDwgIDxsVEhQdHhkbHh8cFxseGB4cGx4fGR0dHRkeGh0eHh8dHxsdGh0fHx8dHh0ZGhUYHR0eFxcVHv/AABEIAWgB4AMBIgACEQEDEQH/xAAdAAEBAAMAAwEBAAAAAAAAAAAACAYHCQIEBQMB/8QAWBAAAQQBAgEIBQcFCwkFCQEAAQACAwQFBhESBwgTGCExlNUUQVFUVQkiMmFxgZEVI0JSYiQzQ3WCkpOhsbTCJTVTcnOys8HDJjZ0oqM0RGODhJWktdIW/8QAGwEBAAIDAQEAAAAAAAAAAAAAAAUGAgMEAQf/xAA2EQEAAQMCAgYJAQkBAAAAAAAAAQIDEQQFITEGEkFhscETIkJRcYGRofDxFBUjMmJykrLRFv/aAAwDAQACEQMRAD8AjJERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgmZFTPUq1V7/p/wAZkfLk6lWqvf8AT/jMj5cgv9ERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERARFA/LfzktbVcvcgrl2EqV7lmvUhfioHvmigk6MSSSZCB5keW8Lj0fC0dIOzuQXwi516f54GsK3D6Q/HZADbi9LoCJzh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\n",
+      "text/html": [
+       "\n",
+       "        <iframe\n",
+       "            width=\"100%\"\n",
+       "            height=\"360\"\n",
+       "            src=\"https://www.youtube.com/embed/__vX2sjlpXU?cc_load_policy=True\"\n",
+       "            frameborder=\"0\"\n",
+       "            allowfullscreen\n",
+       "        ></iframe>\n",
+       "        "
+      ],
+      "text/plain": [
+       "<IPython.lib.display.YouTubeVideo at 0x7f5f00d7ba00>"
+      ]
+     },
+     "execution_count": 1,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "from IPython.display import YouTubeVideo\n",
+    "YouTubeVideo(\"__vX2sjlpXU\",width=\"100%\", height=360, cc_load_policy=True)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "59d22056",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Click on the link below:</span>** <br/>\n",
+    "You do not need to read the entire article; rather, look at the first couple of Big O notations. These provide good code examples for each notation and an explanation of *why* they fall under a certain Big O notation.<br/><br/>\n",
+    "https://developerinsider.co/big-o-notation-explained-with-examples/"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9812391f",
+   "metadata": {},
+   "source": [
+    "&#9989; **<span style=\"color:red\">Click on the link below:</span>** <br/>\n",
+    "**TIP:** In C++, you can see how complex different algorithms are by looking at their documentation. The function you are going to look at is the \"copy\" function. In C++, this function will copy the string (AKA text) from one container to another. <br/> <br/>\n",
+    "https://cplusplus.com/reference/string/string/copy/\n",
+    "<br/><br/>\n",
+    "Scroll down on the page to where it says \"Complexity\". Ask yourself the following questions: <br/>\n",
+    " - *What type of Big O search is this?* <br/>\n",
+    " - *What would be the notation?* <br/> <br/>\n",
+    "Then, click on the following link below and compare the \"at\" functions Complexity to that of the \"copy\" function. <br/><br/>\n",
+    "https://cplusplus.com/reference/string/string/at/"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "44b461a0",
+   "metadata": {},
+   "source": [
+    "---\n",
+    "\n",
+    "Written by Jessica Parks, Michigan State University  \n",
+    "As part of the Data Science Bridge Project \n",
+    "    \n",
+    "<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\"><img alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc/4.0/88x31.png\" /></a><br />This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc/4.0/\">Creative Commons Attribution-NonCommercial 4.0 International License</a>."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "6452d221",
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "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.8.8"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
-- 
GitLab