diff --git a/Ovingsforelesninger/OF4/tasks.ipynb b/Ovingsforelesninger/OF4/tasks.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..c2b13634894815220fac6bf75a9fb6ee15df99a3
--- /dev/null
+++ b/Ovingsforelesninger/OF4/tasks.ipynb
@@ -0,0 +1,473 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Øvingsforelesning 4 - TDT4110\n",
+    "\n",
+    "### Løkker"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Oppgave 1 - Repetisjon\n",
+    "\n",
+    "I denne oppgaven skal vi utvikle en funksjon som utfører konvertering fra Celsius til Fahrenheit. Deretter skal vi lage en graf som viser denne konverteringen over et temperaturområde fra -100C til 100C.\n",
+    "\n",
+    "$$F = \\frac{9}{5}C + 32$$"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eksempel 1  - Syntaks"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Dette er en \"tuple\". Vi skal se mer på det senere\n",
+    "sequence = (1, 3, 5, 7, 9, 11, 13)\n",
+    "for number in sequence:\n",
+    "    print(number)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eksempel 2 - `range()`\n",
+    "\n",
+    " - `range(stop)`\n",
+    " - `range(start, stop)`\n",
+    " - `range(start, stop, step)`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for i in range(5):\n",
+    "    print(i)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for j in range(5, 10):\n",
+    "    print(j)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for k in range(0, 20, 2):\n",
+    "    print(k)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "for i in range(4):\n",
+    "    print(\"ITGK\")\n",
+    "print(\"Ferdig!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 2\n",
+    "\n",
+    "Skriv et program som printer\n",
+    " 1. Alle tallene fra 0 til og med 10\n",
+    " 2. Alle tallene fra 10 til og med 20 bortsett fra 14\n",
+    " 3. Alle tallene fra 10 til og med 20 baklengs (20 -> 10)\n",
+    " 4. Alle partall fra 50 til og med 74\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "\n",
+    "Print tall mellom 0 og 1 med intervall på 0.1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 3\n",
+    "\n",
+    "Skriv et program som\n",
+    " 1. Summerer sammen tallene fra 4 til og med 20\n",
+    " 2. Finner produktet av tallene fra 2 til og med 10\n",
+    "\n",
+    "**Hint**\n",
+    "\n",
+    "Bruk en variabel som kan holde resultatet\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "\n",
+    "Summer opp partall og oddetall hver for seg"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Oppgave 4\n",
+    "\n",
+    "Lag et program som tar inn tre tall fra brukeren, og skriver ut alle tallene **mellom de to første** (første inklusiv, andre eksklusiv) som er **delelige på det tredje**\n",
+    "\n",
+    "**Hint**\n",
+    "\n",
+    "`a % b`\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "\n",
+    "Gjør det samme, men uten å iterere gjennom alle tallene mellom de to første"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eksempel - `while`-løkke\n",
+    "\n",
+    "Kjører kode **inntill en betingelse ikke lenger er oppfylt**"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "i = 0\n",
+    "# Printer \"Hello\" 5 ganger\n",
+    "while i < 5:\n",
+    "    print(\"Hello\")\n",
+    "    i += 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "i = 5\n",
+    "# Printer tallene fra 5 til 10\n",
+    "while i <= 10:\n",
+    "    print(i)\n",
+    "    i += 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "i = 0\n",
+    "while i < 4:\n",
+    "    print(\"ITGK\")\n",
+    "    i += 1\n",
+    "print(\"Ferdig!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 5\n",
+    "\n",
+    "Skriv et program som gjør følgende:\n",
+    " 1. Tar inn et tall fra bruker\n",
+    " 2. Summerer tallene fra 1 og oppover helt til summen overstiger tallet fra bruker\n",
+    " 3. Skriver ut et hvert regnestykke til konsollen på formen `a + b = c`\n",
+    "\n",
+    "**Ekstraoppgave:**\n",
+    "\n",
+    " - Topp ved det siste tallet før summen overstiger tallet fra bruker\n",
+    " - Gi en feilmelding dersom brukeren skriver inn et negativt tall og be om et nytt"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 6\n",
+    "\n",
+    "Lag en evig `while`-løkke som\n",
+    " 1. Tar inn tall fra brukeren\n",
+    " 2. Skriver ut kvadratet ($x^2$) og kvadratroten av tallet\n",
+    "\n",
+    " **Hint**\n",
+    "\n",
+    " $x^{1/2}$ eller [math.sqrt(x)](https://docs.python.org/3/library/math.html#math.sqrt)\n",
+    "\n",
+    " **Ekstraoppgave**\n",
+    "  - Dersom brukeren skriver \"avslutt\" skal løkken stoppe\n",
+    "  - Dersom brukeren skriver inn et negativt tall, ikke skriv ut kvadratroten\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 7\n",
+    "\n",
+    "Lag et program som gjør følgende:\n",
+    " 1. Tar inn et tall fra brukeren\n",
+    " 2. Sjekker om tallet er likt et annet tall som du har bestemt på forhånd\n",
+    "     - Dersom tallet er likt, skriver programmet ut \"Du vant!\"\n",
+    " 3. Hvis tallene **ikke** er like: Si om det innskrevne tallet er større eller mindre enn det hemmelige tallet\n",
+    " 4. Be brukeren om å skrive inn et nytt tall\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "     - Skriv at tallet er *mye* større/mindre hvis det er mer enn 10 i differanse\n",
+    "     - Gi brukeren 5 forsøk, og gi brukeren beskjed om hvor mange forsøk som er igjen"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 8\n",
+    "\n",
+    " - Skriv en `while`-løkke som ber om et tall fra bruker hver iterasjon og summerer tallene som er skrevet inn\n",
+    " - Gjør at programmet avsluttes dersom `-1` skrive inn (uten å legge -1 til i summen)\n",
+    " - Avslutt programmet dersom summen overgår 100 (men skriv ut siste summen)\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "\n",
+    "La brukeren bestemme tallet programmet skal avsluttes når summen overgår"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eksempel - tilfeldige tall\n",
+    "\n",
+    "Dokumentasjon om [random#randrange](https://docs.python.org/3/library/random.html#random.randrange) og [random#randint](https://docs.python.org/3/library/random.html#random.randint)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import random\n",
+    "\n",
+    "# Printer et tilfeldig tall mellom 1 og 10\n",
+    "rand_num_1 = random.randint(1, 10)\n",
+    "\n",
+    "# Printer et tilfeldig tall mellom 1 og 9\n",
+    "rand_num_2 = random.randrange(1, 10)\n",
+    "\n",
+    "print(rand_num_1, rand_num_2)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 9\n",
+    "\n",
+    "- Lag et program som printer et antall tilfeldige tall mellom to tall brukeren skriver inn. Antallet skal også være gitt av brukeren.\n",
+    "\n",
+    "**Hint**\n",
+    "```python\n",
+    "import random\n",
+    "\n",
+    "random.randint(1, 10)\n",
+    "```\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    " - Modifiser programmet til å printe ut hvor mange oddetall som ble laget til slutt\n",
+    " - Skriv ut gjennomsnittet av alle tallene"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 10\n",
+    "\n",
+    "Du skal ha Multiple Choice eksamen med 10 spørsmål, og lurer på om du klarer å gjette deg til å stå!\n",
+    "\n",
+    " - Lag et program som *10 ganger* gir deg sjansen til å gjette på et tall mellom 1 - 4 og lagrer det riktig svaret som en variabel med tilfeldig verdi før man gjetter\n",
+    " - Etter løkken, skriv ut hvor mange prosent riktig du hadde\n",
+    "\n",
+    "**Hint**\n",
+    "```python\n",
+    "import random\n",
+    "\n",
+    "random.randint(1, 10)\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 11\n",
+    "\n",
+    "Lag et program som\n",
+    " 1. Tar inn et heltall `max_rand_int` fra brukeren\n",
+    " 2. Tar inn et heltall `target` fra brukeren\n",
+    " 3. Genererer tilfeldige tall mellom 0 og `max_rand_int` helt til det genererer `target`\n",
+    " 4. Printer hvert genererte tall\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "\n",
+    "Utvid programmet til å til slutt printe hvor mange forsøk det trengte for å lage `target`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3.10.6 64-bit",
+   "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.6"
+  },
+  "orig_nbformat": 4,
+  "vscode": {
+   "interpreter": {
+    "hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}