diff --git a/lectures/lecture1/lab/1_intro_til_jupyter.ipynb b/lectures/lecture1/lab/intro_til_jupyter.ipynb similarity index 100% rename from lectures/lecture1/lab/1_intro_til_jupyter.ipynb rename to lectures/lecture1/lab/intro_til_jupyter.ipynb diff --git a/lectures/lecture1/lab/lab-1.md b/lectures/lecture1/lab/lab-1.md new file mode 100644 index 0000000000000000000000000000000000000000..c4a82ca903be392287d91e088de457cdd503615f --- /dev/null +++ b/lectures/lecture1/lab/lab-1.md @@ -0,0 +1,14 @@ +# Lab-1 + +## Læringsutbytte + +* Komme i gang med jupyter (skjønne forskjellen mellom markdown, python, html) +* Kunne skrive enkel Python program som inneholder: kommentar, kode som skriver til skjerm og leser fra tastatur. +* Kunne definere variabler +* Kunne konvertere mellom enkle datatyper + +## Læringsaktiviteter + +* [Introduksjon til Jupyter](intro_til_jupyter.ipynb) +* [Tall- og Typekonvertering](tall_og_typekonvertering.ipynb) +* [Variabler](variabler.ipynb) diff --git a/lectures/lecture1/lab/3_tall_og_typekonvertering.ipynb b/lectures/lecture1/lab/tall_og_typekonvertering.ipynb similarity index 100% rename from lectures/lecture1/lab/3_tall_og_typekonvertering.ipynb rename to lectures/lecture1/lab/tall_og_typekonvertering.ipynb diff --git a/lectures/lecture1/lab/2_variabler.ipynb b/lectures/lecture1/lab/variabler.ipynb similarity index 100% rename from lectures/lecture1/lab/2_variabler.ipynb rename to lectures/lecture1/lab/variabler.ipynb diff --git a/lectures/lecture1/notes/codes/1_intro_til_jupyter.ipynb b/lectures/lecture1/notes/codes/intro_til_jupyter.ipynb similarity index 100% rename from lectures/lecture1/notes/codes/1_intro_til_jupyter.ipynb rename to lectures/lecture1/notes/codes/intro_til_jupyter.ipynb diff --git a/lectures/lecture1/notes/codes/3_tall_og_typekonvertering.ipynb b/lectures/lecture1/notes/codes/tall_og_typekonvertering.ipynb similarity index 100% rename from lectures/lecture1/notes/codes/3_tall_og_typekonvertering.ipynb rename to lectures/lecture1/notes/codes/tall_og_typekonvertering.ipynb diff --git a/lectures/lecture1/notes/codes/2_variabler.ipynb b/lectures/lecture1/notes/codes/variabler.ipynb similarity index 100% rename from lectures/lecture1/notes/codes/2_variabler.ipynb rename to lectures/lecture1/notes/codes/variabler.ipynb diff --git a/lectures/lecture1/notes/slides/1_introduksjon.pdf b/lectures/lecture1/notes/slides/introduksjon.pdf similarity index 100% rename from lectures/lecture1/notes/slides/1_introduksjon.pdf rename to lectures/lecture1/notes/slides/introduksjon.pdf diff --git a/lectures/lecture2/lab/5_aarstider.ipynb b/lectures/lecture2/lab/aarstider.ipynb similarity index 100% rename from lectures/lecture2/lab/5_aarstider.ipynb rename to lectures/lecture2/lab/aarstider.ipynb diff --git a/lectures/lecture2/lab/1_funksjoner_og_kalkulasjoner.ipynb b/lectures/lecture2/lab/funksjoner_og_kalkulasjoner.ipynb similarity index 100% rename from lectures/lecture2/lab/1_funksjoner_og_kalkulasjoner.ipynb rename to lectures/lecture2/lab/funksjoner_og_kalkulasjoner.ipynb diff --git a/lectures/lecture2/lab/lab-2.md b/lectures/lecture2/lab/lab-2.md new file mode 100644 index 0000000000000000000000000000000000000000..27401679e524704a9cf9319ab5377560f3f09ca7 --- /dev/null +++ b/lectures/lecture2/lab/lab-2.md @@ -0,0 +1,15 @@ +# Lab-2 + +## Læringsutbytte + +* Kunne skrive enkle matematiske uttrykk i Python +* Lære å definere funksjoner i Python +* Kunne sette opp logiske uttrykk +* Lære å bruke if-setningen i Python. + +## Læringsaktiviteter + +* [Funksjoner og kalkulasjoner](funksjoner_og_kalkulasjoner.ipynb) +* [Logiske operatorer og uttrykk](logiske_operatorer_uttrykk.ipynb) +* [Valg](ulike_typer_if_setninger.ipynb) +* [Årstider](aarstider.ipynb) diff --git a/lectures/lecture2/lab/2_logiske_operatorer_uttrykk.ipynb b/lectures/lecture2/lab/logiske_operatorer_uttrykk.ipynb similarity index 100% rename from lectures/lecture2/lab/2_logiske_operatorer_uttrykk.ipynb rename to lectures/lecture2/lab/logiske_operatorer_uttrykk.ipynb diff --git a/lectures/lecture2/lab/3_ulike_typer_if_setninger.ipynb b/lectures/lecture2/lab/ulike_typer_if_setninger.ipynb similarity index 100% rename from lectures/lecture2/lab/3_ulike_typer_if_setninger.ipynb rename to lectures/lecture2/lab/ulike_typer_if_setninger.ipynb diff --git a/lectures/lecture2/notes/codes/1_funksjoner_og_kalkulasjoner.ipynb b/lectures/lecture2/notes/codes/funksjoner_og_kalkulasjoner.ipynb similarity index 100% rename from lectures/lecture2/notes/codes/1_funksjoner_og_kalkulasjoner.ipynb rename to lectures/lecture2/notes/codes/funksjoner_og_kalkulasjoner.ipynb diff --git a/lectures/lecture2/notes/codes/2_logiske_operatorer_uttrykk.ipynb b/lectures/lecture2/notes/codes/logiske_operatorer_uttrykk.ipynb similarity index 100% rename from lectures/lecture2/notes/codes/2_logiske_operatorer_uttrykk.ipynb rename to lectures/lecture2/notes/codes/logiske_operatorer_uttrykk.ipynb diff --git a/lectures/lecture2/notes/codes/moduler_og_pakker.ipynb b/lectures/lecture2/notes/codes/moduler_og_pakker.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..b21ffb71aed5d8ff134682721fe7e92c27d81014 --- /dev/null +++ b/lectures/lecture2/notes/codes/moduler_og_pakker.ipynb @@ -0,0 +1,150 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Moduler" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.141592653589793\n", + "16.0\n" + ] + } + ], + "source": [ + "# Moduler\n", + "\n", + "import math\n", + "\n", + "print(math.pi) # printer ut verdien av variabelen pi som ligger i modulen math\n", + "print(math.pow(4,2)) # printer 4*4 = 16" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.141592653589793\n", + "16.0\n" + ] + } + ], + "source": [ + "import math as m\n", + "\n", + "print(m.pi) # printer ut verdien av variabelen pi som ligger i modulen math\n", + "print(m.pow(4,2)) # printer 4*4 = 16" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "3.141592653589793\n", + "16.0\n" + ] + } + ], + "source": [ + "from math import pi, pow\n", + "\n", + "print(pi) # printer ut verdien av variabelen pi som ligger i modulen math\n", + "print(pow(4,2)) # printer absolutt verdien, dvs. 10.\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pakker" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[<matplotlib.lines.Line2D at 0x203a7cdbe10>]" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGdCAYAAACyzRGfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABEfElEQVR4nO3deZRU5Z0//vetvZfq6o3eFxoEmrXpbhYRMEYZCCGICtEkmhi3zGTIYjiZyXDOTJxMMpLkTPJ1kng0LolOJo76AxFXXIiyKIj2wr7a0PTeNE1XVW+13t8fVbcAhaaXqnrurft+ndPnhKbt+qRsuz71PJ/n/UiyLMsgIiIiihOD6AKIiIhIX9h8EBERUVyx+SAiIqK4YvNBREREccXmg4iIiOKKzQcRERHFFZsPIiIiiis2H0RERBRXJtEFfFYwGERrayvsdjskSRJdDhEREQ2DLMtwu90oKCiAwTD02obqmo/W1lYUFxeLLoOIiIhGoampCUVFRUN+jeqaD7vdDiBUfFpamuBqiIiIaDhcLheKi4sjr+NDUV3zoWy1pKWlsfkgIiLSmOGMTHDglIiIiOKKzQcRERHFFZsPIiIiiis2H0RERBRXbD6IiIgorth8EBERUVyx+SAiIqK4YvNBREREccXmg4iIiOJqxM3Hjh07sHLlShQUFECSJLz88suX/L0sy/jpT3+K/Px8JCUlYcmSJThx4kS06iUiIiKNG3Hz0dfXh4qKCjz66KOX/ftf//rX+N3vfofHH38cH330EVJSUrBs2TIMDg6OuVgiIiLSvhHf7bJ8+XIsX778sn8nyzIeeeQR/Ou//itWrVoFAPif//kf5Obm4uWXX8bXvva1sVVLREREmhfVi+VOnTqF9vZ2LFmyJPI5h8OB+fPnY/fu3ZdtPjweDzweT+TPLpcrmiXRKL1zuAMfftolugzNKExPwr0Ly2AwXP1CJSKKLo8/gGc+OI1l0/MwPjtFdDk0DFFtPtrb2wEAubm5l3w+Nzc38neftWHDBvzsZz+LZhk0Rn0eP9b+tRbeQFB0KZpSnJmMZdPzRJdBpDtP7zqFX289hlf3t+LV7y0a1q2qJFZUm4/RWL9+PdatWxf5s8vlQnFxscCKaF9zD7yBIDJTLPj6PP67uJr6ph58cPIcNtY0s/kgijNZlrGxphkAcLDFhT0N3VgwMUtwVXQ1UW0+8vJCv3g7OjqQn58f+XxHRwdmz5592X/GarXCarVGswwao9rG8wCABROz8E/LygVXo37HO9xY+v924L2jnTjX60FWKn+eieKlrqkHDWf7In9+elcDmw8NiGrOR1lZGfLy8rBt27bI51wuFz766CMsWLAgmg9FMVR7pgcAUF2SIbYQjZica8esIgf8QRlb6ltFl0OkK5vCqx5zSkO/r9490olPz/aKLImGYcTNR29vL+rr61FfXw8gNGRaX1+PM2fOQJIkPPjgg/jFL36BV155BQcOHMC3vvUtFBQU4JZbboly6RQLsiyj7kxo5aOqlM3HcK2pLgIAbKptFlwJkX4M+gJ4dV+o4f/R303Gkqk5AIA/7TolsiwahhE3H5988gkqKytRWVkJAFi3bh0qKyvx05/+FADwz//8z/j+97+P73znO5g7dy56e3uxdetW2Gy26FZOMXGqqw/n+32wmgyYlp8muhzNWDmrAGajhEOtLhxp44ktonh490gHXIN+FDhsWDAhC/cvngAA2FjTjO4+r+DqaCgjbj5uuOEGyLL8uY9nnnkGACBJEv7jP/4D7e3tGBwcxLvvvovJkydHu26KkZrwvMfMQgcsJqbvD1dGigVLpoZOeSnLwEQUW8p/a7dVFcFgkDC/LBMzCtPg8Qfx1z2NgqujofDVhS4RmffglsuIra4Kbb28XN8CH48pE8VUp2sQ24+fBQDcVlUIIPTm94Hw6sezuxsx6AsIq4+GxuaDLqHMe1Ry2HTEvjBlHLJSLOjq9WJH+JciEcXGy/UtCMpAVUk6JoxLjXz+yzPzke+woavXg1f2cQBcrdh8UIRr0IdjHW4AQFVputhiNMhsNOCWytA7sI3ceiGKmYuzPdZUX5pFZDYa8O3rxgMAnt55CrIsx7s8GgY2HxSxr6kHsgwUZSQhx84B4dFQtl62HelETz8H3ohi4WCLC8c7emExGbBiVv7n/v5r80qQYjHiWIcbO0/wmgg1YvNBEbWNPQA47zEW0wrSMC0/Dd5AMHIEkIiiSznSvmx6HhxJ5s/9vSPJjNvnhlZEntzZENfaaHjYfFBErZLvwXmPMVkdzvzg1gtR9Hn9QWypbwEArA4Pml7OvQvLYJCAnSe6cKzdHa/yaJjYfBAAIBiU2XxEyarZBTAZJOxrduJEB3/pEUXT34524ny/D7lpViyeNO6KX1ecmYwvzQhd+fEUVz9Uh80HAQA+PdsL96AfNrMB5fl20eVoWnaqFTdMCSUtbmTiKVFUKSuKt1QWwmgY+vba+xaFjt1uqW9Fp3sw5rXR8LH5IAAXtlwqitJhNvLHYqzWVIeWg1+ua0EgyGl7omjo6vXg/WOdAIA14eHuoVSXZqCqJB3eQBB/2c3QMTXhqwwBuDBsyvtcouPG8lxkJJvR4fJg5wlmfhBFw5b6VviDMiqKHJiUO7wVWiVy/X/3NGLAy9AxtWDzQQCAGs57RJXFZMDNFQUAgE21LYKrIUoMSpy6MtQ9HMum56E4Mwnn+328+FFF2HwQnP0+nOwMXUFdWZIutpgEooQfvX2oHc4Bn+BqiLTtcKsLh9tcsBgNWDmrYNj/nNEg4Z7rygCEbrsNchtUFdh8EOqaQqse47OSkZ1qFVxN4phRmIbJuanw+IN4fX+b6HKINE1Ztbhpag4yUiwj+mdvn1sMu82Ehq4+/O1oZyzKoxFi80GRy+S45RJdkiRhTXh5mMu9RKPnC1zI9lgzgi0XRarVhG/MKwHA0DG1YPNBqG0MXybHYdOou2V2IQwSUNN4Hg1ne0WXQ6RJ24+dRVevF9mpFlw/+crZHkP59sLxMBkkfHSqGweanVGukEaKzYfOBYIy6pt6AIRuh6ToykmzRX5ZvsTBU6JRUVYOV80uHHUUQL4jKXIPzFO7uPohGpsPnTvR6Uavx48UixFThnl0jUZGWSZ+qbaZw25EI3S+z4t3j3QAGN2Wy8XuD4eOvb6/Da09A2OujUaPzYfOKfkeFcXpMDFcLCaWTM1Fms2EVucgdjecE10Okaa8ur8VvoCMaflpmJqfNqbvNbPIgfllmfAHZTz74enoFEijwlcbnatpZL5HrNnMRqxUMj942RzRiChx6mNd9VA8EA4de27vGfR6/FH5njRybD50rk4JFytNF1tIglNCkd482M5feETDdKLDjf3NTpgMElbNHn62x1BuLM/BhOwUuAf9ePHjpqh8Txo5Nh86dr7Pi4auPgBAZTFXPmKpsjgdE8alYMAXwBsHmPlBNBzKxYxfLM9BVpQyiAwGCfcuCoeOfXCKdy8JwuZDx5RwsQnjUkYc2kMjI0kSVocvwtrIrReiq/IHgtgcPiG2ehiXyI3E6qoiZCSb0Xx+AG8dao/q96bhYfOhY5z3iK/bqgohScDeU904c65fdDlEqrbrZBc63R5kJJtxY3lOVL93ksWIu64tBQA8xdAxIdh86FjkJls2H3GR70jComuyATDxlOhqlBXCVbMLYTFF/6XqmwtKYTEaUHumJ/JGjOKHzYdO+QNB7GvuAQBUM9k0bpTl45fqmPlBdCXOAR/ePhzK9oj2losix26LDLE+zdCxuGPzoVPHOtzo9wZgt5owKSdVdDm6sWx6HlKtJjR1D+Dj092iyyFSpdf2t8LrD2JKrh0zCseW7TGU+8PHbrcebEdTN7dC44nNh04p97nMLkmHwSAJrkY/kixGrJgZinjm4CnR5Sl5OKurCyFJsfv9NCXPjsWTshGUQydfKH7YfOiUcpNtJec94m7NnNAy8hsH2tDvZeYH0cUazvai9kwPjAYJt8wujPnjKaFjL37cBOeAL+aPRyFsPnSqNhwuxnmP+JtTmoHSrGT0eQPYepDH/IgupgxjXz8pGzlptpg/3uJJ2ZiSa0efN4Dn956J+eNRCJsPHerq9aAxfNRzdnG62GJ0SJIk3FYZWv3gqReiCwJBOXL78+ooxalfjSRJuG9xKHTsmQ9PwxcIxuVx9Y7Nhw4p8x6TclLhSDILrkafbqsKLSd/+Ok5tPB2TSIAwO5Pz6HNOYg0mwlLpubG7XFXzS5AdqoVbc5BJhDHCZsPHVLmPbjlIk5xZjKunZAJWQY2c/WDCMCFlcCVFQWwmY1xe1yryYi7F4RCx57c2QBZ5jH4WGPzoUPKvAfDxcRaU10MANhU28JfdqR77kEf3jwYWnWI1g22I3HntaWwmQ042OLCR6d4DD7W2HzojC8QxP5wuBhvshVr+Yw8JFuMONXVF2kIifTqzQPtGPQFMWFcipBZtMwUSyTQjJHrscfmQ2eOtLkw6AsizWbChGyGi4mUYjVh+Qwl86NFcDVEYim5N2uqi2Ka7TEU5bbbd490ouFsr5Aa9ILNh84ow6ZVpRkMF1OB1dWhwdPX9rVi0BcQXA2RGGfO9WPv6W5IEnBrZeyzPa5k4rhULJkausTu6V0MHYslNh86owybct5DHa4ty0JhehLcHn/kLgsivVEGTRddk418R5LQWu5bFAod21TbjO4+r9BaEhmbD51Rbm9k86EOBoOE1eFjt4xbJz0KBuVI8yFi0PSzrp2QiRmFaRj0BfHXPY2iy0lYbD50pNM1iJaeAUgSUFHsEF0Ohd0WHnLbdeIsOlyDgqshiq+9p7vRfH4AqVYTlk7LE10OJEnC/eHVj2d3N8Lj53ZoLLD50BHlRMWUXDvsNoaLqcX47BTMHZ+BoAxsruPgKemLsuL3lVn5SLLEL9tjKCtm5SMvzYauXg+21LeKLichsfnQkci8B8PFVEc54rexppmZH6QbfR5/JFE0XnHqw2E2GvDtheMBAE/vPMX/JmOAzYeOcN5Dvb48Kx82swEnO3uxv9kpuhyiuNh6sB393gBKs5IxR2Vvir4+rwTJFiOOdbix80SX6HISDpsPnfD6gzjQEnpRqypJF1sMfU6azYxl00P73Rw8Jb1QBk1XV4nL9rgSR5IZt88JpRA/ydCxqGPzoROHWp3w+oPISDajLDtFdDl0GcrWyyv7WjnkRgmv+Xw/djecA3DhokW1uXdhGQwSsPNEF461u0WXk1DYfOjExfkeanuHQSELr8lGXpoNzgEfth3pFF0OUUxtrm2BLAMLJmShKCNZdDmXVZKVHFmRZOR6dLH50ImLk01JnYwGCbeG3wFu4tYLJTBZvpDtoaZB08u5f3Ho2O2W+lZ0unkUPlrYfOiEcsy2kvMeqqZsvbx//CzOuj2CqyGKjZrG8zh9rh/JFiOWzxCf7TGU6tIMVJakwxsI4i+7GToWLWw+dKDNOYA25yCMBgkVRemiy6EhXJOTitnF6QgEZWypZ+YHJSZl1WP5jHykWE2Cq7m6B8KrH/+7pxEDXs5jRQObDx2obewBAJTn2TXxH7reKRHTzPygRDToC+C1faFsDzXEqQ/H0mm5KMpIwvl+X6RxorFh86EDzPfQlpWzCmAxGXC03Y1DrS7R5RBF1VuH2uH2+FGYnoT5ZZmiyxkWk9GAexeWAQD+tOsUgkG+KRgrNh86oMx7VJWmiy2EhsWRbMbfTc0FAL7LooSzqTa0nbi6uggGg3ZO3t0+txh2mwkNXX3421GeRhsrNh8JbtAXwKHWULhYdYk23mXQheXoLfWt8PqDgqshio525yB2nTgLAJHbnLUi1WrCN+aVAACe2sVjt2PF5iPBHWp1wheQkZ1qQXFmkuhyaJgWT8rGOLsV3X1evH+M77IoMWyua0FQBuaOz0BplvbCDr+9cDxMBgl7GrpxsIXXIIwFm48Ep8x7VDJcTFNMRgNurQxnfnDrhRKALMvYWNMEQDuDpp+V70jCiln5ABg6NlZsPhKcctKFw6bao2R+/O1oJ7r7vIKrIRqbfc1OfHq2DzazAV+emS+6nFG7f1Ho2O1r+9vQ5hwQXI12sflIYLIsR4ZNq5lsqjlT8uyYWeiALyDjFWZ+kMYpqx5fmp4Hu80suJrRm1nkwPyyTPiDMp758LTocjSLzUcCa+kZQKfbA5NBwqwih+hyaBSUobyN3HohDRv0BfBqONtD7XHqw6GEjj330Rn0evyCq9GmqDcfgUAA//Zv/4aysjIkJSVh4sSJ+PnPf86wJAGUeY9pBWmwmY2Cq6HRuHl2IcxGCQdbXDjazswP0qZtRzrhHPAh32HDdROzRZczZjeW52BCdgrcg378f580iS5Hk6LefPzqV7/CY489hj/84Q84cuQIfvWrX+HXv/41fv/730f7oegq6i66yZa0KTPFghvLcwDwsjnSLmVo+tbKQhg1lO1xJQaDhHsXhUPHPjiFAEPHRizqzceHH36IVatWYcWKFRg/fjzWrFmDpUuXYu/evdF+KLqKC+FibD60TBk83VzXCn+AmR+kLZ3uQWw/Hs72SIAtF8XqqiJkJJvR1D2Atw+1iy5Hc6LefFx33XXYtm0bjh8/DgDYt28fdu3aheXLl1/26z0eD1wu1yUfNHYD3gAOh6O5q3iTraZ9sTwHWSkWdPV6sCMc0ESkFVvqWhEIyqgsScfEcamiy4maJIsRd11bCgB4ksduRyzqzce//Mu/4Gtf+xrKy8thNptRWVmJBx98EHfeeedlv37Dhg1wOByRj+Li4miXpEv7m3vgD8rIsVtRmM5wMS0zGw24eXYBAGBTDU+9kHaEsj1CWy7KCl4i+eaCUliMBtSe6YnM2NHwRL35ePHFF/HXv/4Vzz33HGpra/Hss8/iv/7rv/Dss89e9uvXr18Pp9MZ+Whq4vBONNReNO/BcDHtU0KZ3jncAWe/T3A1RMNzqNWFYx1uWEwGrJxVILqcqMux27Aq/MbgaUauj0jUm49/+qd/iqx+zJw5E9/85jfxox/9CBs2bLjs11utVqSlpV3yQWPHfI/EMr3AgfI8O7yBIF7Z3yq6HKJhUVY9/m5aLhzJ2s32GMp9i0ODp1sPtqOpu19wNdoR9eajv78fBsOl39ZoNCIY5KBcvMiyjNpG3mSbaJTVD556IS3w+oPYEg7H02qc+nCU56Vh8aRsBOXQyRcanqg3HytXrsR//ud/4vXXX8fp06exefNm/Pa3v8Wtt94a7YeiKzjT3Y9zfV6YjRKmFzBcLFGsmh06pljf1IOTnb2iyyEa0nvHOnG+34dxdisWX6P9bI+h3B8OHXvx4yY4B7gtOhxRbz5+//vfY82aNfjHf/xHTJ06FT/+8Y/x93//9/j5z38e7YeiK1C2XGYUOhgulkDG2a24YfI4ALxsjtRPWaG7tbIQJmNih2lfPykbk3NT0ecN4Pm9Z0SXowlR/4mw2+145JFH0NjYiIGBAXz66af4xS9+AYvFEu2HoivgZXKJS1m+fqm2mcFGpFrnej3429FOAIl5yuWzJEmKXDj3zIen4WMez1UldjuqU8qRLzYfiefGqTlwJJnR4fLgg5NdosshuqxX9rXCH5Qxs9CBKXl20eXExarKAmSnWtHmHMQbB9pEl6N6bD4STJ/HH7kDhMOmicdqMkaO9nHrhdRKOeWSyIOmn2U1GfGtBRdCx3if2dDYfCSYfc09CMpAgcOGfAfDxRKRsoy99WA7XIMcbiN1OdLmwqFWF8xGCTdXJF62x1DuurYUVpMBB1tc+OhUt+hyVI3NR4JRLpOrZL5HwppV5MA1Oanw+IN4Yz+Xd0ldlEHTm8pzkZGir1m/zBRL5P6apxi5PiQ2HwmG8x6JT5KkyHL2RmZ+kIr4A0G8XB8KwUukS+RG4r7wbbfvHulEw1keib8SNh8JRJZl1Ck32fIyuYR2a2UhDBLwSeN5nO7qE10OEQBgx4mz6Or1ICvFghumjBNdjhATx6XipvIcAMDTuxg6diVsPhLIqa4+nO/3wWIyMFwsweWm2bB4EjM/SF2UlbhVswthTvBsj6EooWObapvR3ecVXI066fenIwEpl8nNKnTAYuK/2kS3OpL50YIgMz9IsJ5+L949HM72qC4UXI1Y107IxPSCNAz6gvjrnkbR5agSX6ESSGTeg8OmurB0Wi7sNhNaegaw59Q50eWQzr26rxXeQBBT89N0v/IqSRIeCK9+PLu7ER5/QHBF6sPmI4Fw3kNfbGYjvhK+ppyDpyTaxtrQJXKrq/S96qFYMSsfeWk2dPV6sKWeN1F/FpuPBOEe9OFYhxsAT7royZrw8vbWg+3o8/gFV0N6dbLTjX1NPTAZJNxSyeYDAMxGA769cDwA4Omdpxg69hlsPhLEviYnZBkoykhCTppNdDkUJ1UlGSjLTkG/N8BIZxJmY01o1eOGKeOQnWoVXI16fH1eCZItRhzrcGPnCV6HcDE2HwmC+R76JElSZJmbp15IhEBQxua60M+eHi6RGwlHkhm3zykGADzFY7eXYPORIGo576Fbt1YVQZKAPQ3daOruF10O6cyuk13ocHmQnmzGjVNzRJejOvcuLINBAnYcP4tj7W7R5agGm48EEAxeCBerLs0UXA3FW2F6Eq6bmAUgdOyWKJ6UOPWbKwpgNRkFV6M+JVnJWDY9DwDw9C5GrivYfCSAhq5euAb9sJkNKM/Xx/XVdCklbn1TbTMH2yhuXIM+vHWoHYC+brAdKSV07OW6VnS6BwVXow5sPhKAMu8xqyhd16mCerZseh5SLEac6e7Hx6fPiy6HdOL1/W3w+IOYlJOKmYX6zvYYSnVpBipL0uENBPG/uxk6BrD5SAi1jT0AOGyqZ8kWE748Mx/AhWVwolhT8mXWVBdBkiTB1aibEjr2lz2NGPAydIzNRwKojcx7sPnQM2XZ+/UDbfzlRjF3qqsPNY3nYZBCFx3S0JZOy0VRRhLO9/vwUh3fILD50DjngA8nOkPXNlfypIuuzR2fieLMJPR6/JF9eKJYUVbYFk8ax2yhYTAZDbh3YRmAUOiY3u9jYvOhccopl9KsZIb76JzBIEVyFhi3TrEUDMrYXBc6WcVB0+G7fW4x7DYTGrr68N6xTtHlCMXmQ+OUm2w570HAhZCnDz7tQmvPgOBqKFHtaTiHlp4B2G0m/N20XNHlaEaq1YRvzCsBADy5U9/Hbtl8aFzkMjnOexCA4sxkzC/LhCwj8s6UKNqUlbWVFQWwmZntMRJ3XzceJoOEPQ3dONjiFF2OMGw+NCwQlFEXWflIF1oLqcdqJfOjhpkfFH29Hj/ePBiaKWKc+sgVpCdhxazQybSndLz6weZDw050utHr8SPZYsSUXIaLUciXZ+YjyWxEQ1cf6pp6RJdDCeaNA20Y8AUwITuFb3pG6f5FoWO3r+1vQ5tTn9ujbD40TMn3qChKh4nhYhSWajVh+YxQnDMHTynalFMuq5ntMWozixyYX5YJf1DGMx+eFl2OEHzF0jDme9CVKFsvr+5rxaCPmR8UHU3d/fjoVDckZnuMmRK5/txHZ9Dn8QuuJv7YfGhYbaMybJouthBSnQUTslDgsME96Mc7hztEl0MJYlNtaNVj4cRsFKQnCa5G224qz0FZdgrcg368+EmT6HLijs2HRp3v86Khqw8AUFnMlQ+6lMEg4baqC5fNEY1VMChHfpZWV3PVY6wMBgn3LgqFjv3pg1MI6Cx0jM2HRtU1hVY9JmSnICPFIrgaUiNl62XH8bPodPEmTRqbj093o6l7AKlWU+SKeBqbNVVFSE82o6l7AG/rLJWYzYdGRS6T47wHXUFZdgqqSzMQZOYHRYGy6vHlmXlItpgEV5MYkixG3DW/FADw1K5TgquJLzYfGlWjzHsw2ZSGoERfb6pl5geNXr/Xj9f3twEA1lQXC64msXzrulJYjAbUNJ6PHCLQAzYfGuQPBLGvuQcAh01paCtm5cNqMuB4Ry8O6DhNkcbmrUPt6PMGUJKZjLnj+YYnmnLsNtw8uwCAvkLH2Hxo0LEON/q9AditJkzKYbgYXVmazYyl4f35Tcz8oFFS8mJuqypktkcM3L84NHi69WA7mrr7BVcTH2w+NEi5TG52STqMBv4ioKEpWy9b9rXC42fmB41MS88APvz0HADGqcdKeV4aFk/KRlAOnXzRAzYfGqTke1Ry3oOGYdE12chNs6Kn34f3jur7Gm8auc21zZBlYH5ZJoozk0WXk7CU0LEXP26Cc8AnuJrYY/OhQcpQEu9VoOEwGiTcWhl6x7qxhqdeaPhkWcam2tDPjLKCRrFx/aRsTM5NRZ83gOf3nhFdTsyx+dCYrl4PGs+F9gS58kHDtSYcCvX+sU509XoEV0NaUXumB6e6+pBkNmL5zHzR5SQ0SZIiF8498+Fp+AJBwRXFFpsPjakLz3tMykmFI8ksthjSjGty7KgoToc/KGNLfavockgjlEHT5TPzkGpltkesraosQHaqFW3OQbxxoE10OTHF5kNjmO9Bo7WmKrT6wZtuaTgGfQG8tj/UqK7hoGlcWE1GfGtBKHTsyZ0NCZ3Nw+ZDYyLzHsz3oBFaWVEAi9GAI20uHGpl5gcN7e3DHXAP+lGYnoRrJ2SJLkc37rq2FFaTAQdbXPjoVLfocmKGzYeG+AJB7A+Hi1UzVp1GKD3ZgiXTcgAAmzh4Slex6aJsDwOP9MdNZoolci/TUzsT99gtmw8NOdrmxqAviDSbCROyU0WXQxqk5DRsqW9J+IE2Gr0O1yB2njgLAJHbkSl+7gvfdrvtaAcazvYKriY22HxoSE1jaAmusiSD70RoVK6fPA7ZqVac6/Ni+7Gzosshldpc14KgDMwpzUBZdorocnRn4rhU3FSeAzmBQ8fYfGiIkmzKYVMaLbPRgFvC90hw8JQuR5blyJbLamZ7CKOEjm2sacb5Pq/gaqKPzYeGKMOmnPegsVBeULYd7UjIX2o0NvubnTjR2QuryYAVs5jtIcq1EzIxvSANg74g/vpRo+hyoo7Nh0Z0ugbRfH4AkgRUFDtEl0MaNjU/DdML0uALyHhlHzM/6FKbakOrHsum5yHNxiwhUSRJwgPh1Y9ndzcm3L1MbD40Qln1mJJrh52/EGiMlMFT5YWGCAA8/kAkhI5bLuKtmJWPvDQbzro9eCXBwgHZfGiEMu/BSHWKhlWzC2AySNjf7MTxDrfockgl/nakE84BH3LTrFh0TbbocnTPbDTg2wvHAwCe3nUqoULH2HxohHKTLec9KBqyUq34YrmS+cHVDwpRhpBvrSyCkSfqVOHrc0uQbDHiaLsbu052iS4nath8aIDXH8T+llAiJW+ypWhRbindXNcCPzM/dO+s24P3j4eOXysXEZJ4jmQzbp9TDAB4MoFCx9h8aMChVie8/iAyks08c09R88UpOchINqPT7cHOBHpHRaOzpb4FgaCMiuJ0XJNjF10OXeTehWUwSMCO42dxrD0xtknZfGjAxfMeksSlUIoOi8mAVbND73C59ULKlssaDpqqTklWMpZNzwMAPL2rQXA10cHmQwOY70GxorzQvH24A85+n+BqSJRDrU4cbXfDYjRgJbM9VOn+xaHI9ZfrWnHW7RFczdix+dAAZdi0kvMeFGXTC9IwJdcOrz+I1w4k1lE+Gj5l1WPJtBykJ1sEV0OXU12aicqSdHgDQfxl92nR5YwZmw+Va3MOoM05CIMEVBSliy6HEowkSZHVD8at65PXH4xke3DLRd3uXxQKHfvLnkYM+rQdOhaT5qOlpQV33XUXsrKykJSUhJkzZ+KTTz6JxUMlvNrGHgBAeV4aUqwmscVQQlpVWQCjQULdmR58mqA3aNKVvX+sE919XmSnWnH9pHGiy6EhLJuei6KMJJzv92k+IDDqzcf58+excOFCmM1mvPnmmzh8+DB+85vfICOD8wqjwXkPirUcuw1fmBx60XlJ47/QaOSUF7FbKwtgMnIxXM1MRgPuWRia/Xh61ykEg9oNHYv6T9qvfvUrFBcX489//jPmzZuHsrIyLF26FBMnToz2Q+lCTXjeo6o0XWwhlNCUuPWXakPHLUkfuvu8+NvRTgCMU9eKO+YWw241oeFsH9471im6nFGLevPxyiuvYM6cOfjqV7+KnJwcVFZW4sknn7zi13s8Hrhcrks+KGTQF8ChViVcjCsfFDs3Tc2BI8mMNucgdn96TnQ5FCev1LfAF5AxozAN5XlposuhYUi1mvD1+SUAgKc0HDoW9eajoaEBjz32GCZNmoS33noL3/3ud/GDH/wAzz777GW/fsOGDXA4HJGP4uLiaJekWYdanfAFZGSlWFCSmSy6HEpgNrMRKytCRyw31jQJrobiZVNtC4ALK1+kDd++bjyMBgm7G87hYDj9Wmui3nwEg0FUVVXh4YcfRmVlJb7zne/ggQcewOOPP37Zr1+/fj2cTmfko6mJv/gUyrBpVSnDxSj2lBegrYfa4R5k5keiO9buxoEWJ0wGCTdXFIguh0agID0JK2aG3iw8tVOboWNRbz7y8/Mxbdq0Sz43depUnDlz5rJfb7VakZaWdskHhUTmPbjlQnEwuzgdE8elYNAXxBsH2kSXQzGmDJreWJ6DrFSr4GpopJTQsdf2t6HNOSC4mpGLevOxcOFCHDt27JLPHT9+HKWlpdF+qIQmy3LkpAsvk6N4kCQpMnS4qaZFcDUUS/5AEC8pWy4cNNWkWUXpmFeWCX9QxjMfnhZdzohFvfn40Y9+hD179uDhhx/GyZMn8dxzz+GJJ57A2rVro/1QCa2lZwCdbg9MBgmzGC5GcXJbZREMErD3dDcaz/WJLodiZOeJLnT1epCZYsEXp+SILodG6YHFodCx5z46gz6PX3A1IxP15mPu3LnYvHkz/u///g8zZszAz3/+czzyyCO48847o/1QCU25TG5aQRqSLEaxxZBu5DlsWHhNNoALw4iUeJQ025srCmAxMdtDq24qz0FZdgrcg368+Im25iVj8lP3la98BQcOHMDg4CCOHDmCBx54IBYPk9BqOe9BgigR2y/VNms6xIguz9nvwzuHOwAwTl3rDAYJ9y4KzX786YNTmsroYcurUsq8By+To3hbNj0PdqsJzecH8NGpbtHlUJS9ur8V3kAQ5Xl2TC/ggL/WrakqQnqyGU3dA3j7ULvocoaNzYcKDfoCONwaCltjrDrFm81sxIrwtepavz+CPk/ZclldVcQj/AkgyWLEXfNDBzqe2qWd0DE2Hyq0v9kJf1BGjt2KwvQk0eWQDinL8W8caNPcIBtd2cnOXtQ39cBokLCqktkeieJb15XCYjSgpvF8ZNVc7dh8qNDF+R58Z0IiVJdmYHxWMvq9AWw9qJ2lXBqaspL1hcnjkGO3Ca6GoiXHbsPNs0PN5NMaiVxn86FCkXwPXiZHgkiSFEk85dZLYggEZWwOn2DioGniUULH3jzYhqbufsHVXB2bD5WRZRl14eaD8x4k0q1VhQCADz89h+bz6v9lRkP74GQX2l2DcCSZcdNUZnskmvK8NCyelI2gDPz5g9Oiy7kqNh8q09Q9gK5eL8xGCdMLHKLLIR0rykjGdROzACDyjpm0S1nBurmiAFYTs4MS0f3h0LEXPj4D54C672di86EyNWdCRxunFzhgM/MXBIl18daLLGsnQ4Au5Rr0RWZ3GKeeuK6flI3Juano8wbwwseXv09NLdh8qEzkJluGi5EKfGlGHpItRpw+1x8ZhCbteWN/Gzz+ICaOS0FFEVdUE5UkSbh/UWj1488fnIYvEBRc0ZWx+VCZWs57kIqkWE34cvjqbiUfgrRH2XJZU13ME3QJ7ubZBchOtaDNOajq26nZfKhIn8ePo+1uADzpQuqhbL28vr8Ng76A4GpopE539eHj0+dhkIBbKwtFl0MxZjMb8a0F4wEAT+08pdrtUjYfKrKvuQeBoIx8hw35DoaLkTrML8tEUUYS3B4/3tJQfDOFvBRe9Vg0aRzyHMz20IM755fAajLgQIsTe1V6RQKbDxWpC99ky3kPUhODQcJt4dUPbr1oSzAoR24nXl3FVQ+9yEq1RgaLn1Rp6BibDxWJ3GTLeQ9SGeWF64OTXWh3DgquhoZrz6lzaOkZgN1qwrLpeaLLoTi6d2EodGzb0Q40nO0VXM3nsflQCVmWLySb8iZbUpnSrBTMG5+JoAy8VMfVD61QVqq+UpHPo/s6c01OKm4qz4EsA3/6QH2rH2w+VOJUVx/O9/tgMRkYLkaqtLo6tPqxqYaZH1rQ5/FfyPaoYraHHt0XjlzfWNOM831ewdVcis2HStSG5z1mFjpgMfFfC6nPl2fmw2Y24NOzfahv6hFdDl3Fmwfb0e8NYHxWMo/u69SCCVmYXpCGQV8Qf/2oUXQ5l+CrnEow34PUzm4z40vhuQFeNqd+G2uaAIRWPZjtoU+SJEUunHt2dyM8fvUclWfzoRKRYVPOe5CKrakuBgC8Ut/KzA8Va+rux56GbkgScBvj1HVtxcwC5KXZcNbtwSv1raLLiWDzoQLuQR+OdYTDxXjMllRswcQs5DtscA36se1Ip+hy6ApeCh+vXTAhC4XpzAzSM4vJgLuvGw8AeHqXekLH2HyowL4mJ2QZKExPQk4aQ4BIvYwGCbeFj91y60WdZFm+KE6dqx4EfGNeCZItRhxtd2PXyS7R5QBg86EKnPcgLVECx7YfP4tONzM/1Obj0+dxprsfKRYjvjSD2R4EOJLNuH1OaMv0KZWEjrH5UIEaznuQhkwcl4rKknQEgjK21KlnD5lCNoWzPZbPzEeyxSS4GlKLexeWQZJCbxqOh7f5RWLzIVgwKKPuDJNNSVuU5fyNzPxQlQFvAK+HbzLllgtdrCQrGcumhVbCntrZILgaNh/CNXT1wjXoh81swNT8NNHlEA3LV2YVwGIy4FiHG4daXaLLobC3DrWj1+NHUUYS5o3PFF0OqcwD14eO3b5c14qzbo/QWth8CFbb2AMAmFWUDrOR/zpIGxxJZiydlguAl82piTJourqqCAYDsz3oUlUlGZhdnA5vIIi/7D4ttBa+2gl2Yd6DWy6kLcqtmVvqW+D1BwVXQ609A5GTDIxTp8uRJAkPLJ4AAPjLnkahWT1sPgTjZXKkVYuvyUaO3Yrz/T68d4yZH6JtrmuBLAPzyjJRkpUsuhxSqWXTc7GyogC/Wj0LFoGr7Ww+BHIO+HCiM3TVMYdNSWtMRgNurQxlfnDrRSxZliOnXNZw1YOGYDIa8PuvV2Lp9DyhW3NsPgRSLucqzUpGdqpVbDFEo6Bsvbx3tBPnesUOsOlZXVMPGrr6YDMbsHwmsz1I/dh8CMR5D9K6ybl2zCpywB+UsUVF90bojbLytHxGPuw2s+BqiK6OzYdAdZz3oASgDDcybl2MQV8Ar+0LNX4cNCWtYPMhSDAoo/5MDwCgkisfpGE3VxTAbJRwqNWFI23M/Ii3d490wDXoR4HDhgUTs0SXQzQsbD4EOdHZC7fHj2SLEeV5dtHlEI1aRooFN5WHMj82cfA07pQtl1urCmFktgdpBJsPQZR5j4qidJgYLkYap0R5v1zfCl+AmR/x0ukaxI7jZwFwy4W0ha96gkTyPUrTxRZCFAVfmDIOWSkWdPV6Ii+GFHub61oQlENzYxPGpYouh2jY2HwIojQf1cz3oARgNhqwanYo84ODp/Ehy/KFOHVeIkcaw+ZDgPN9XjSc7QMAVBaz+aDEoGy9vHu4Ez39XsHVJL4DLU4c7+iFxWTAV2YViC6HaETYfAhQ1xRa9ZiQnYKMFIvgaoiiY1pBGqbmp8EbCOLVfcz8iDVluHfptFw4kpjtQdrC5kMA5SZbHrGlRKOsfjBuPbY8/gC2hBu8NdxyIQ1i8yEA5z0oUa2aXQCTQcK+ZidOdrpFl5Ow3jvaiZ5+H3LsViyeNE50OUQjxuYjzvyBIPaF73ThSRdKNNmpVtwwJQcAsLGmRXA1iUt5bpntQVrF5iPOjnW40ecNINVqwqQchotR4llTHTr1srmuGYGgLLiaxNPV68H7xzoB8AZb0i42H3FWG45Un12czncslJC+WJ6D9GQzOlwe7DrZJbqchLOlvhX+oIyKIgcm5fINDGkTm484q1NusuW8ByUoq8mIVRWho58cPI0+5TlltgdpGZuPOKvhTbakA8oL49uH2uEc8AmuJnEcDl/eZzZKWMlsD9IwNh9x1NXrQeO5fgAMF6PENrPQgcm5qfD4g3h9f5vochKGkmi6ZGouM4JI09h8xFFdeN7jmpxUOJIZCkSJS5KkyEVnjFuPDl8giJfrQqdceIkcaR2bjziK5HswXIx04NbKQhik0A3Op7r6RJejeduPncW5Pi+yUy34whRme5C2sfmIo5pG3mRL+pGTZsP1k0Mvkps4eDpmyqDpqtmFMBv5q5u0jT/BceILBLG/uQcAUMWVD9IJJfr7pdpmBJn5MWrn+7zYdrQDAOPUKTGw+YiTo21uDPqCSLOZMHFcquhyiOJiydRcpNlMaHUOYnfDOdHlaNYr+1rhC8iYlh+6vI9I69h8xIky71FZkgEDw8VIJ2xmI74Szvzg1svoKUO7zPagRMHmI04i8x7cciGdUbYJ3jzYjl6PX3A12nO8w439zU6YDBJWzWa2ByUGNh9xoqx8cNiU9KayOB0TslMw4AvgjQPM/BgpZcXohik5yE61Cq6GKDrYfMRBp3sQzecHIEmhO12I9ESSpMh2AbdeRsYfCGJzONuDg6aUSGLefPzyl7+EJEl48MEHY/1QqlXb2AMAmJJrh93GcDHSn9uqCiFJwEenutHU3S+6HM3YebILnW4PMpLNuLE8R3Q5RFET0+bj448/xh//+EfMmjUrlg+jehcPmxLpUb4jCYuuyQbAxNOR2HRRtofFxIVqShwx+2nu7e3FnXfeiSeffBIZGfp+0a1t5GVyRBfHrTPz4+qc/T68fTiU7cE4dUo0plh947Vr12LFihVYsmQJfvGLX1zx6zweDzweT+TPLpcrViUJ4fUHsb/FCQCoKtV3E0b6tmx6HlKtJjR1D6D8p1vBA+dDk2XAGwhicm4qZhQy24MSS0yaj+effx61tbX4+OOPr/q1GzZswM9+9rNYlKEKh9tc8PqDSE82Y0J2iuhyiIRJshjxjfkleGJHA7z+oOhyNOPehWWQJLZqlFii3nw0NTXhhz/8Id555x3YbLarfv369euxbt26yJ9dLheKi4ujXZYwF+d78BcI6d365eW4d2EZ/EE2H8NhMxt5vJYSUtSbj5qaGnR2dqKqqiryuUAggB07duAPf/gDPB4PjEZj5O+sVius1sT9jyuS78F5DyJIkoQ8x9XflBBRYot683HTTTfhwIEDl3zunnvuQXl5OX7yk59c0njoQR2TTYmIiC4R9ebDbrdjxowZl3wuJSUFWVlZn/t8omtzDqDVOQiDBFQwXIyIiAgAE05jSgkXK89LQ4o1ZgeLiIiINCUur4jvv/9+PB5GdXifCxER0edx5SOGLgybct6DiIhIweYjRgZ9ARxqCQWmVTNcjIiIKILNR4wcanXCGwgiK8WCksxk0eUQERGpBpuPGFGGTSsZLkZERHQJNh8xosx7cMuFiIjoUmw+YkCWZSabEhERXQGbjxho6RlAh8sDk0HCrKJ00eUQERGpCpuPGKg90wMAmJqfhiSLvuLkiYiIrobNRwzUNnLeg4iI6ErYfMSAMu9RyXkPIiKiz2HzEWWDvgAOt4bCxZhsSkRE9HlsPqJsf7MT/qCMcXYrijKSRJdDRESkOmw+oiyS78FwMSIiosti8xFlNY28yZaIiGgobD6iSJZl1PEmWyIioiGx+Yiipu4BdPV6YTZKmFHoEF0OERGRKrH5iCJl3mN6gQM2M8PFiIiILofNRxRF5j245UJERHRFbD6iKHKZHIdNiYiIrojNR5T0e/042u4GwJUPIiKiobD5iJJ9TU4EgjLyHTYUpDNcjIiI6ErYfERJLY/YEhERDQubjyhRbrLlZXJERERDY/MRBbIso66pBwBQVcqVDyIioqGw+YiC0+f60d3nhcVkwPSCNNHlEBERqRqbjyhQ8j1mFjpgNTFcjIiIaChsPqLgwrBputhCiIiINIDNRxTUMtmUiIho2Nh8jJF70IfjHeFwMQ6bEhERXRWbjzHa1+REUAYK05OQm2YTXQ4REZHqsfkYowv3uXDVg4iIaDjYfIwRh02JiIhGhs3HGASDMurO9AAAqrnyQURENCxsPsagoasXzgEfbGYDpuYzXIyIiGg42HyMQW1jDwBgVmE6zEY+lURERMPBV8wxUOY9KkvTxRZCRESkIWw+xkCJVa9muBgREdGwsfkYJeeADyc6ewHwmC0REdFIsPkYpfqmHgBASWYyslOtYoshIiLSEDYfo6Tc58IjtkRERCPD5mOUGC5GREQ0Omw+RiEYlFEfDher5LApERHRiLD5GIUTnb1we/xIthhRnmcXXQ4REZGmsPkYBWXLpaIoHSaGixEREY0IXzlHQcn3qGK4GBER0Yix+RiFC8OmnPcgIiIaKTYfI9TT70XD2T4AHDYlIiIaDTYfI1QXPuUyITsFmSkWscUQERFpEJuPEVLmPbjqQURENDpsPkYoMu/BYVMiIqJRYfMxAoGgjH3hO104bEpERDQ6bD5G4Fi7G33eAFKtJkzOZbgYERHRaLD5GIGa8JbL7OJ0GA2S4GqIiIi0ic3HCNQ18jI5IiKisWLzMQLKsGllKec9iIiIRovNxzCd6/Xg9Ll+AEBVMZsPIiKi0Yp687FhwwbMnTsXdrsdOTk5uOWWW3Ds2LFoP0zc1YbDxa7JSYUj2Sy2GCIiIg2LevOxfft2rF27Fnv27ME777wDn8+HpUuXoq+vL9oPFVcX7nNJF1sIERGRxpmi/Q23bt16yZ+feeYZ5OTkoKamBtdff320Hy5uaht5mRwREVE0RL35+Cyn0wkAyMzMvOzfezweeDyeyJ9dLlesSxoxXyCI/c2h/x/VHDYlIiIak5gOnAaDQTz44INYuHAhZsyYcdmv2bBhAxwOR+SjuLg4liWNytE2NwZ8AaTZTJg4LlV0OURERJoW0+Zj7dq1OHjwIJ5//vkrfs369evhdDojH01NTbEsaVSUeY/ZJRkwMFyMiIhoTGK27fK9730Pr732Gnbs2IGioqIrfp3VaoXVao1VGVHBYVMiIqLoiXrzIcsyvv/972Pz5s14//33UVZWFu2HiDul+eC8BxER0dhFvflYu3YtnnvuOWzZsgV2ux3t7e0AAIfDgaSkpGg/XMx1ugfR1D0ASQrd6UJERERjE/WZj8ceewxOpxM33HAD8vPzIx8vvPBCtB8qLmobewAAk3PssNsYLkZERDRWMdl2SSR1yrxHabrYQoiIiBIE73a5ihqGixEREUUVm48heP1B7G8JhYtVcdiUiIgoKth8DOFwmwtefxDpyWZMyE4RXQ4REVFCYPMxBOU+l8ridEgSw8WIiIiigc3HEGqY70FERBR1bD6GUMdhUyIioqhj83EF7c5BtDoHYZCACoaLERERRQ2bjytQItWn5KUhxRqzK3CIiIh0h83HFSj5HtUMFyMiIooqNh9XcOEmW857EBERRRObj8vw+AM41OICwOaDiIgo2th8XMbBFhe8gSCyUiwozUoWXQ4REVFCYfNxGZFwsZIMhosRERFFGZuPy6jlTbZEREQxw+bjM2RZ5rApERFRDLH5+IxW5yA6XB4YDRIqitJFl0NERJRw2Hx8hpLvMS0/DUkWo+BqiIiIEg+bj8+ojdznki62ECIiogTF5uMz6iLDppz3ICIiigU2HxcZ9AVwqJXhYkRERLHE5uMi+5ud8AdljLNbUZSRJLocIiKihMTm4yIXjtimM1yMiIgoRth8XOTCsCm3XIiIiGKFzUdYKFysBwBQzWFTIiKimGHzEdbUPYCuXg/MRgkzCh2iyyEiIkpYbD7ClHmPaQUO2MwMFyMiIooVNh9hFw+bEhERUeyw+QhTYtU570FERBRbbD4A9Hv9ONruBsCTLkRERLHG5gPAviYnAkEZeWk2FKQzXIyIiCiW2HzgonmP0nSxhRAREekAmw8wXIyIiCiedN98yLKMuqYeALzJloiIKB5033ycPteP7j4vLEYDphekiS6HiIgo4em++VC2XGYUpsFqYrgYERFRrOm++ag5w3wPIiKieNJ988FhUyIiovjSdfPR6/HjeEc4XIwrH0RERHGh6+ZjX1MPgjJQmJ6E3DSb6HKIiIh0QdfNh3KfC1c9iIiI4kfXzQdvsiUiIoo/3TYfwaCMujM9ADhsSkREFE+6bT4auvrgHPDBajJgaj7DxYiIiOJFt82HcsS2oigdFpNunwYiIqK40+2rrjLvUcmbbImIiOJK980H5z2IiIjiS5fNh3PAhxOdvQDYfBAREcWbLpuP+qYeyDJQkpmMcXar6HKIiIh0RZfNx4X7XNLFFkJERKRD+mw+zjDZlIiISBTdNR/BoIx6hosREREJo7vm40RnL9weP5ItRpTn2UWXQ0REpDu6az6ULZdZRQ6YjLr7v09ERCSc7l59LwybcsuFiIhIBP01H+GVj2oOmxIREQmhq+ajp9+LT8/2AQAqufJBREQkRMyaj0cffRTjx4+HzWbD/PnzsXfv3lg91LDVhU+5lGWnIDPFIrYYIiIinYpJ8/HCCy9g3bp1eOihh1BbW4uKigosW7YMnZ2dsXi4YYtcJsdwMSIiImFi0nz89re/xQMPPIB77rkH06ZNw+OPP47k5GT86U9/isXDDVtNI+c9iIiIRIt68+H1elFTU4MlS5ZceBCDAUuWLMHu3bs/9/Uejwcul+uSj1gIBGXsa+oBwJMuREREIkW9+ejq6kIgEEBubu4ln8/NzUV7e/vnvn7Dhg1wOByRj+Li4miXBAA41u5GnzeAVKsJk3MZLkZERCSK8NMu69evh9PpjHw0NTXF5HGyUi1Yv7wc9y0qg9EgxeQxiIiI6OpM0f6G2dnZMBqN6OjouOTzHR0dyMvL+9zXW61WWK2xv9Y+N82Gv//CxJg/DhEREQ0t6isfFosF1dXV2LZtW+RzwWAQ27Ztw4IFC6L9cERERKQxUV/5AIB169bh7rvvxpw5czBv3jw88sgj6Ovrwz333BOLhyMiIiINiUnzcccdd+Ds2bP46U9/ivb2dsyePRtbt2793BAqERER6Y8ky7IsuoiLuVwuOBwOOJ1OpKWliS6HiIiIhmEkr9/CT7sQERGRvrD5ICIiorhi80FERERxxeaDiIiI4orNBxEREcUVmw8iIiKKKzYfREREFFdsPoiIiCiu2HwQERFRXMUkXn0slMBVl8sluBIiIiIaLuV1ezjB6aprPtxuNwCguLhYcCVEREQ0Um63Gw6HY8ivUd3dLsFgEK2trbDb7ZAkKarf2+Vyobi4GE1NTbw35ir4XA0fn6vh43M1fHyuRobP1/DF6rmSZRlutxsFBQUwGIae6lDdyofBYEBRUVFMHyMtLY0/nMPE52r4+FwNH5+r4eNzNTJ8voYvFs/V1VY8FBw4JSIiorhi80FERERxpavmw2q14qGHHoLVahVdiurxuRo+PlfDx+dq+PhcjQyfr+FTw3OluoFTIiIiSmy6WvkgIiIi8dh8EBERUVyx+SAiIqK4YvNBREREcaWb5uPRRx/F+PHjYbPZMH/+fOzdu1d0Saq0Y8cOrFy5EgUFBZAkCS+//LLoklRrw4YNmDt3Lux2O3JycnDLLbfg2LFjostSpcceewyzZs2KhBotWLAAb775puiyNOGXv/wlJEnCgw8+KLoU1fn3f/93SJJ0yUd5ebnoslSrpaUFd911F7KyspCUlISZM2fik08+EVKLLpqPF154AevWrcNDDz2E2tpaVFRUYNmyZejs7BRdmur09fWhoqICjz76qOhSVG/79u1Yu3Yt9uzZg3feeQc+nw9Lly5FX1+f6NJUp6ioCL/85S9RU1ODTz75BDfeeCNWrVqFQ4cOiS5N1T7++GP88Y9/xKxZs0SXolrTp09HW1tb5GPXrl2iS1Kl8+fPY+HChTCbzXjzzTdx+PBh/OY3v0FGRoaYgmQdmDdvnrx27drInwOBgFxQUCBv2LBBYFXqB0DevHmz6DI0o7OzUwYgb9++XXQpmpCRkSE/9dRTostQLbfbLU+aNEl+55135C984QvyD3/4Q9Elqc5DDz0kV1RUiC5DE37yk5/IixYtEl1GRMKvfHi9XtTU1GDJkiWRzxkMBixZsgS7d+8WWBklGqfTCQDIzMwUXIm6BQIBPP/88+jr68OCBQtEl6Naa9euxYoVKy753UWfd+LECRQUFGDChAm48847cebMGdElqdIrr7yCOXPm4Ktf/SpycnJQWVmJJ598Ulg9Cd98dHV1IRAIIDc395LP5+bmor29XVBVlGiCwSAefPBBLFy4EDNmzBBdjiodOHAAqampsFqt+Id/+Ads3rwZ06ZNE12WKj3//POora3Fhg0bRJeiavPnz8czzzyDrVu34rHHHsOpU6ewePFiuN1u0aWpTkNDAx577DFMmjQJb731Fr773e/iBz/4AZ599lkh9ajuVlsiLVq7di0OHjzI/eYhTJkyBfX19XA6ndi4cSPuvvtubN++nQ3IZzQ1NeGHP/wh3nnnHdhsNtHlqNry5csj/3vWrFmYP38+SktL8eKLL+K+++4TWJn6BINBzJkzBw8//DAAoLKyEgcPHsTjjz+Ou+++O+71JPzKR3Z2NoxGIzo6Oi75fEdHB/Ly8gRVRYnke9/7Hl577TW89957KCoqEl2OalksFlxzzTWorq7Ghg0bUFFRgf/+7/8WXZbq1NTUoLOzE1VVVTCZTDCZTNi+fTt+97vfwWQyIRAIiC5RtdLT0zF58mScPHlSdCmqk5+f/7lGf+rUqcK2qRK++bBYLKiursa2bdsinwsGg9i2bRv3m2lMZFnG9773PWzevBl/+9vfUFZWJrokTQkGg/B4PKLLUJ2bbroJBw4cQH19feRjzpw5uPPOO1FfXw+j0Si6RNXq7e3Fp59+ivz8fNGlqM7ChQs/FwVw/PhxlJaWCqlHF9su69atw9133405c+Zg3rx5eOSRR9DX14d77rlHdGmq09vbe8m7hlOnTqG+vh6ZmZkoKSkRWJn6rF27Fs899xy2bNkCu90emSFyOBxISkoSXJ26rF+/HsuXL0dJSQncbjeee+45vP/++3jrrbdEl6Y6drv9c3NDKSkpyMrK4jzRZ/z4xz/GypUrUVpaitbWVjz00EMwGo34+te/Lro01fnRj36E6667Dg8//DBuv/127N27F0888QSeeOIJMQWJPm4TL7///e/lkpIS2WKxyPPmzZP37NkjuiRVeu+992QAn/u4++67RZemOpd7ngDIf/7zn0WXpjr33nuvXFpaKlssFnncuHHyTTfdJL/99tuiy9IMHrW9vDvuuEPOz8+XLRaLXFhYKN9xxx3yyZMnRZelWq+++qo8Y8YM2Wq1yuXl5fITTzwhrBZJlmVZTNtDREREepTwMx9ERESkLmw+iIiIKK7YfBAREVFcsfkgIiKiuGLzQURERHHF5oOIiIjiis0HERERxRWbDyIiIoorNh9EREQUV2w+iIiIKK7YfBAREVFcsfkgIiKiuPr/AX2xNPsyOfjUAAAAAElFTkSuQmCC", + "text/plain": [ + "<Figure size 640x480 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "import random as rnd\n", + "\n", + "dager = range(7)\n", + "regn_mm = [rnd.randint(0,10) for i in dager]\n", + "\n", + "plt.plot(dager,regn_mm)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "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.11.2" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/lectures/lecture2/notes/codes/pakker.ipynb b/lectures/lecture2/notes/codes/pakker.ipynb deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/lectures/lecture2/notes/codes/3_ulike_typer_if_setninger.ipynb b/lectures/lecture2/notes/codes/ulike_typer_if_setninger.ipynb similarity index 100% rename from lectures/lecture2/notes/codes/3_ulike_typer_if_setninger.ipynb rename to lectures/lecture2/notes/codes/ulike_typer_if_setninger.ipynb diff --git a/lectures/lecture2/notes/slides/lecture-2.md b/lectures/lecture2/notes/slides/lecture-2.md index 990f2a2dcea2832ad4642a54d43b955dedc7cd68..5cbea9509be39bf0b9833c6a5125f3862a91dba4 100644 --- a/lectures/lecture2/notes/slides/lecture-2.md +++ b/lectures/lecture2/notes/slides/lecture-2.md @@ -5,18 +5,147 @@ paginate: true --- <!-- https://marpit.marp.app/directives --> +# Leksjon 2 + +**Læringsutbytte** + +* Kunne skrive enkle matematiske uttrykk i Python +* Lære å definere funksjoner i Python +* Kunne sette opp logiske uttrykk +* Lære å bruke if-setningen i Python. + +--- # Funksjoner og kalkulasjoner -**Læringsmål**: +**Aritmetikk** + +**Presedens mellom operatorer fungerer som i matematikken.** + +* Multiplikasjon og divisjon har høyere presedens enn addisjon og subtraksjon. +* 3 + 2 * 5 blir 13, fordi * gjøres før +. +* 5 - 1 / 2 blir 4.5, fordi / gjøres før -. +* Potens har høyere presedens enn multiplikasjon og divisjon: + 5 * 2 ** 3 blir 40, fordi ** gjøres før *. +--- +* Parenteser kan brukes for å få en annen rekkefølge på regneoperasjonene: + * (3 + 2) * 5 blir 25, fordi + gjøres før *. + * (5 - 1) / 2 blir 2, fordi - gjøres før /. + * (5 * 2) ** 3 blir 343, fordi * nå gjøres før **. +* Hvis du skal "oversette" et matematisk uttrykk med parenteser til Python, bruk parenteser på samme sted også i Python-koden. + +--- + +## Funksjoner -* Aritmetikk -* Matematiske utrykk i Python -* Funksjoner +Eksempel på den matematiske funksjonen $f(x) = 2x + 3$ i Python: ----- -# Aritmetikk +```python +def f(x): # Definerer funksjonen + return 2 * x + 3 # Returnerer parameteren x ganget med 2 og plusset med 3 +# Kall/bruk funksjonen +print(f(1)) +print(f(2)) +y = f(3) +print(y) +``` +--- +# Moduler og pakker + +* En modul i Python er en python-fil +* En modul inneholder python-code, som regel funksjoner. +* Eksempel på en modul er 'math' +* Vi kan bruke moduler i våre programmer: +```python +import math + +print(math.pi) # printer ut verdien av variabelen pi som ligger i modulen math +print(math.pow(4,2)) # printer 4*4 = 16 +``` +```python +import math as m + +print(m.pi) # printer ut verdien av variabelen pi som ligger i modulen math +print(m.pow(4,2)) # printer 4*4 = 16 +``` + +--- + +```python +from math import pi, pow +print(pi) # printer ut verdien av variabelen pi som ligger i modulen math +print(pow(4,2)) # printer 4*4 = 16 +``` --- +# Pakker + +* Pakker består av flere moduler +* Vi kan importere hele eller deler av en pakke +* De fleste pakkene må installeres i miljøet før de kan tas i bruk. +* På Jupyter har vi allerede installert det meste av det som trengs i dette kurset. +* For å installere en pakke, start terminal vindu og skriv: + +```python +pip install <<pakkenavn>> +``` + +Eksempel: +```python +pip install matplotlib +``` +--- + +# Eksempler på bruk av pakker + +```python +import matplotlib.pyplot as plt +import random as rnd + +dager = range(7) +regn_mm = [rnd.randint(0,10) for i in dager] + +plt.plot(dager,regn_mm) +``` + +--- +## Logiske operatorer + +* `==` (betyr "er lik", merk at her er to likhetstegn nødvendig for å skille fra tilordningsoperatoren) +* `!=` (betyr "ulik", altså det motsatte av ==) +* `>` , `<` , `>=` , `<=` (som betyr henholdsvis større, mindre, større eller lik, og mindre eller lik) + +```python +a = 10 +b = 15 + +er_lik = a == b +print (er_lik) + +er_storre = a > b +print (er_storre) + +er_ulik = a != b +print (er_ulik) +``` + +--- +# if-setninger + +* Bruker til å finne ut resultatet av logiske uttrukk blir + +```python +a = 10 +b = 15 + +if a == b: + print ('a er lik b') + +if a > b + print ('a er større enn b') + +if a != b: + print ('a er ulik b') +``` \ No newline at end of file diff --git a/lectures/lecture2/notes/slides/lecture-2.pdf b/lectures/lecture2/notes/slides/lecture-2.pdf new file mode 100644 index 0000000000000000000000000000000000000000..64494fb169669bfe562f7cb896b904401f9b65d9 Binary files /dev/null and b/lectures/lecture2/notes/slides/lecture-2.pdf differ diff --git a/lectures/lecture2/lab/4_sammenligning_av_strenger.ipynb b/lectures/lecture3/lab/4_sammenligning_av_strenger.ipynb similarity index 100% rename from lectures/lecture2/lab/4_sammenligning_av_strenger.ipynb rename to lectures/lecture3/lab/4_sammenligning_av_strenger.ipynb diff --git a/lectures/lecture2/notes/codes/4_sammenligning_av_strenger.ipynb b/lectures/lecture3/notes/codes/4_sammenligning_av_strenger.ipynb similarity index 100% rename from lectures/lecture2/notes/codes/4_sammenligning_av_strenger.ipynb rename to lectures/lecture3/notes/codes/4_sammenligning_av_strenger.ipynb diff --git a/lectures/lectures.ipynb b/lectures/lectures.ipynb index 204e00a75da12aff97e8bf166a6f4a64cf0929b0..57220ce753db7504466635fe25075f292fdb46c2 100644 --- a/lectures/lectures.ipynb +++ b/lectures/lectures.ipynb @@ -2,9 +2,118 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 6, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/markdown": [ + "<details><summary style=\"font-size:200%;cursor: pointer;\">LBAS2002 Informatikk: Programmering</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\"> <a target=\"_blank\" href=https://www.ntnu.no/studier/emner/LBAS2002>Faginnhold og læringsutbytte beskrivelser</a></blockquote>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">Leksjoner</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 1: Introduksjon, Variabler og Datatyper</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Introduksjon</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Motivasjon (slides)</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    <a target=\"_blank\" href=lecture1/notes/slides/introduksjon.pdf>Introduksjon</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Kilder og referanser</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    <a target=\"_blank\" href=lecture1/README.md>Readme</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Utviklingsmiljø</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    <a target=\"_blank\" href=lecture1/notes/codes/intro_til_jupyter.ipynb>Komme i gang med Jupyter Notebook</a></blockquote>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Variabler og datatyper</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Variabler</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    <a target=\"_blank\" href=lecture1/notes/codes/variabler.ipynb>Enkle datatyper</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Datatyper</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    <a target=\"_blank\" href=lecture1/notes/codes/tall_og_typekonvertering.ipynb>Tall og type konvertering</a></blockquote>\n", + "</details>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 2: Funksjoner og pakker, logiske uttrykk, valg</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Introduksjon (slides)</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/slides/lecture-2.pdf>Introduksjon</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Funksjoner</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/funksjoner_og_kalkulasjoner.ipynb>Funksjoner og kalkulasjoner</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Pakker</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/pakker.ipynb>Pakker og moduler</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Logiske uttrykk</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/logiske_operatorer_uttrykk.ipynb>Logiske operasjoner</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Ulike typer if-setninger</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/ulike_typer_if_setninger.ipynb>Ulike typr if-setninger</a></blockquote>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 3: Mer om valg, løkker</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Valg</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/ulike_typer_if_setninger.ipynb>if-setninger</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Sammenligning</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=lecture2/notes/codes/sammenligning_av_strenger.ipynb>Sammenligning av strenger</a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Løkker</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   For-løkke</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   While-løkke</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 4: Sammensatte datatyper (lister, tupler, set)</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Mer om løkker</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   <a target=\"_blank\" href=></a></blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Sammensatte datatyper</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Lister</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Tupler</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Set</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Dictionaries</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 5: Filbehandling, unntakshåndtering</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Filbehandling</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Lesing fra fil</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">   Skriving til fil</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">    </blockquote>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Unntakshåndtering</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   </blockquote>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Programmering mot databaser</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   </blockquote>\n", + "</details>\n", + "</details>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\"> Leksjon 6: Introduksjon til objekt orientert programmering</summary>\n", + "<details><summary style=\"font-size:200%;cursor: pointer;\">  Object Orientert Programmering</summary>\n", + "<blockquote style=\"font-size:200%;cursor: pointer;padding: 10px;\">   Introduksjon</blockquote>\n", + "</details>\n", + "</details>\n" + ], + "text/plain": [ + "<IPython.core.display.Markdown object>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from IPython.display import Markdown, display\n", "%run lectures.py lectures.json lectures.md\n", diff --git a/lectures/lectures.json b/lectures/lectures.json index 530472f13523a22d83f28868bfda70a28fed1a11..ac29853dad78e517587a171fc52a19c723924f93 100644 --- a/lectures/lectures.json +++ b/lectures/lectures.json @@ -5,48 +5,57 @@ "Leksjon 1: Introduksjon, Variabler og Datatyper": [ { "Introduksjon": [ - {"Motivasjon":{"Introduksjon":"lecture1/notes/slides/1_introduksjon.pdf"}}, - {"Kilder og referanser": {"Readme":"lecture1/README.md"}}, - {"Utviklingsmiljø": {"Komme i gang med Jupyter Notebook": "lecture1/notes/codes/1_intro_til_jupyter.ipynb"}} + {"Motivasjon (slides)":{"Introduksjon":"lecture1/notes/slides/introduksjon.pdf"}} + ,{"Kilder og referanser": {"Readme":"lecture1/README.md"}} + ,{"Utviklingsmiljø": {"Komme i gang med Jupyter Notebook": "lecture1/notes/codes/intro_til_jupyter.ipynb"}} ] - }, - { + } + ,{ "Variabler og datatyper": [ - {"Variabler":{"Enkle datatyper":"lecture1/notes/codes/2_variabler.ipynb"}}, - {"Datatyper":{"Tall og type konvertering":"lecture1/notes/codes/3_tall_og_typekonvertering.ipynb"}} + {"Variabler":{"Enkle datatyper":"lecture1/notes/codes/variabler.ipynb"}} + ,{"Datatyper":{"Tall og type konvertering":"lecture1/notes/codes/tall_og_typekonvertering.ipynb"}} ] } + ,{"Lab 1": {"Lab-1":"lecture1/lab/lab-1.md"}} ] - }, - { + } + ,{ "Leksjon 2: Funksjoner og pakker, logiske uttrykk, valg": [ - {"Funksjoner": {"Funksjoner og kalkulasjoner":"lecture2/notes/codes/1_funksjoner_og_kalkulasjoner.ipynb"}}, - {"Pakker": {"Pakker og moduler":"lecture2/notes/codes/pakker.ipynb"}}, - {"Logiske uttrykk": {"Logiske operasjoner":"lecture2/notes/codes/2_logiske_operatorer_uttrykk.ipynb"}}, - {"Valg": {"if-setninger":"lecture2/notes/codes/3_ulike_typer_if_setninger.ipynb"}}, - {"Sammenligning": {"Sammenligning av strenger":"lecture2/notes/codes/4_sammenligning_av_strenger.ipynb"}} + {"Introduksjon (slides)": {"Introduksjon":"lecture2/notes/slides/lecture-2.pdf"}} + ,{"Funksjoner": {"Funksjoner og kalkulasjoner":"lecture2/notes/codes/funksjoner_og_kalkulasjoner.ipynb"}} + ,{"Pakker": {"Pakker og moduler":"lecture2/notes/codes/pakker.ipynb"}} + ,{"Logiske uttrykk": {"Logiske operasjoner":"lecture2/notes/codes/logiske_operatorer_uttrykk.ipynb"}} + ,{"Ulike typer if-setninger": {"Ulike typr if-setninger":"lecture2/notes/codes/ulike_typer_if_setninger.ipynb"}} + ,{"Lab 2": {"Lab-2":"lecture2/lab/lab-2.md"}} ] - }, - { - "Leksjon 3: Løkker": [ - { + } + ,{ + "Leksjon 3: Mer om valg, løkker": [ + {"Valg": {"if-setninger":"lecture2/notes/codes/ulike_typer_if_setninger.ipynb"}} + ,{"Sammenligning": {"Sammenligning av strenger":"lecture2/notes/codes/sammenligning_av_strenger.ipynb"}} + ,{ "Løkker": [ - {"For-løkke":""}, - {"While-løkke":""} + {"For-løkke":""} + ,{"While-løkke":""} ] } + ,{"Lab 3": {"Lab-3":"lecture3/lab/lab-3.md"}} ] - }, - { + } + ,{ "Leksjon 4: Sammensatte datatyper (lister, tupler, set)": [ { + "Mer om løkker": {"":""} + } + ,{ "Sammensatte datatyper": [ - {"Lister":""}, - {"Tupler":""}, - {"Set":""}, - {"Dictionaries":""} + {"Lister":""} + ,{"Tupler":""} + ,{"Set":""} + ,{"Dictionaries":""} ] } + ,{"Lab 4": {"Lab-4":"lecture4/lab/lab-4.md"}} ] }, { @@ -56,16 +65,16 @@ {"Lesing fra fil":""}, {"Skriving til fil":""} ] - }, - {"Unntakshåndtering":""}, - {"Programmering mot databaser":""} + } + ,{"Unntakshåndtering":""} + ,{"Programmering mot databaser":""} + ,{"Lab 5": {"Lab-5":"lecture5/lab/lab-5.md"}} ] }, { "Leksjon 6: Introduksjon til objekt orientert programmering": [ - { - "Object Orientert Programmering": "Introduksjon" - } + {"Object Orientert Programmering": "Introduksjon"} + ,{"Lab 6": {"Lab-6":"lecture6/lab/lab-6.md"}} ] } ] diff --git a/lectures/lectures.md b/lectures/lectures.md index 0cddafc5ac2c67f295ba23bfeb8fd2cfad6272ea..f4cc14c2c42412cb0071a0190cb018b534b0cfaa 100644 --- a/lectures/lectures.md +++ b/lectures/lectures.md @@ -3,43 +3,55 @@ <details><summary style="font-size:200%;cursor: pointer;">Leksjoner</summary> <details><summary style="font-size:200%;cursor: pointer;"> Leksjon 1: Introduksjon, Variabler og Datatyper</summary> <details><summary style="font-size:200%;cursor: pointer;">  Introduksjon</summary> -<details><summary style="font-size:200%;cursor: pointer;">   Motivasjon</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/slides/1_introduksjon.pdf>Introduksjon</a></blockquote> +<details><summary style="font-size:200%;cursor: pointer;">   Motivasjon (slides)</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/slides/introduksjon.pdf>Introduksjon</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">   Kilder og referanser</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/README.md>Readme</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">   Utviklingsmiljø</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/1_intro_til_jupyter.ipynb>Komme i gang med Jupyter Notebook</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/intro_til_jupyter.ipynb>Komme i gang med Jupyter Notebook</a></blockquote> </details> </details> <details><summary style="font-size:200%;cursor: pointer;">  Variabler og datatyper</summary> <details><summary style="font-size:200%;cursor: pointer;">   Variabler</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/2_variabler.ipynb>Enkle datatyper</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/variabler.ipynb>Enkle datatyper</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">   Datatyper</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/3_tall_og_typekonvertering.ipynb>Tall og type konvertering</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    <a target="_blank" href=lecture1/notes/codes/tall_og_typekonvertering.ipynb>Tall og type konvertering</a></blockquote> </details> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 1</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture1/lab/lab-1.md>Lab-1</a></blockquote> +</details> </details> <details><summary style="font-size:200%;cursor: pointer;"> Leksjon 2: Funksjoner og pakker, logiske uttrykk, valg</summary> +<details><summary style="font-size:200%;cursor: pointer;">  Introduksjon (slides)</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/slides/lecture-2.pdf>Introduksjon</a></blockquote> +</details> <details><summary style="font-size:200%;cursor: pointer;">  Funksjoner</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/1_funksjoner_og_kalkulasjoner.ipynb>Funksjoner og kalkulasjoner</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/funksjoner_og_kalkulasjoner.ipynb>Funksjoner og kalkulasjoner</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">  Pakker</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/pakker.ipynb>Pakker og moduler</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">  Logiske uttrykk</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/2_logiske_operatorer_uttrykk.ipynb>Logiske operasjoner</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/logiske_operatorer_uttrykk.ipynb>Logiske operasjoner</a></blockquote> +</details> +<details><summary style="font-size:200%;cursor: pointer;">  Ulike typer if-setninger</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/ulike_typer_if_setninger.ipynb>Ulike typr if-setninger</a></blockquote> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 2</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/lab/lab-2.md>Lab-2</a></blockquote> +</details> +</details> +<details><summary style="font-size:200%;cursor: pointer;"> Leksjon 3: Mer om valg, løkker</summary> <details><summary style="font-size:200%;cursor: pointer;">  Valg</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/3_ulike_typer_if_setninger.ipynb>if-setninger</a></blockquote> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/ulike_typer_if_setninger.ipynb>if-setninger</a></blockquote> </details> <details><summary style="font-size:200%;cursor: pointer;">  Sammenligning</summary> -<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/4_sammenligning_av_strenger.ipynb>Sammenligning av strenger</a></blockquote> -</details> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture2/notes/codes/sammenligning_av_strenger.ipynb>Sammenligning av strenger</a></blockquote> </details> -<details><summary style="font-size:200%;cursor: pointer;"> Leksjon 3: Løkker</summary> <details><summary style="font-size:200%;cursor: pointer;">  Løkker</summary> <details><summary style="font-size:200%;cursor: pointer;">   For-løkke</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    </blockquote> @@ -48,8 +60,14 @@ <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    </blockquote> </details> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 3</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture3/lab/lab-3.md>Lab-3</a></blockquote> +</details> </details> <details><summary style="font-size:200%;cursor: pointer;"> Leksjon 4: Sammensatte datatyper (lister, tupler, set)</summary> +<details><summary style="font-size:200%;cursor: pointer;">  Mer om løkker</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=></a></blockquote> +</details> <details><summary style="font-size:200%;cursor: pointer;">  Sammensatte datatyper</summary> <details><summary style="font-size:200%;cursor: pointer;">   Lister</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    </blockquote> @@ -64,6 +82,9 @@ <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">    </blockquote> </details> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 4</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture4/lab/lab-4.md>Lab-4</a></blockquote> +</details> </details> <details><summary style="font-size:200%;cursor: pointer;"> Leksjon 5: Filbehandling, unntakshåndtering</summary> <details><summary style="font-size:200%;cursor: pointer;">  Filbehandling</summary> @@ -80,9 +101,15 @@ <details><summary style="font-size:200%;cursor: pointer;">  Programmering mot databaser</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   </blockquote> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 5</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture5/lab/lab-5.md>Lab-5</a></blockquote> +</details> </details> <details><summary style="font-size:200%;cursor: pointer;"> Leksjon 6: Introduksjon til objekt orientert programmering</summary> <details><summary style="font-size:200%;cursor: pointer;">  Object Orientert Programmering</summary> <blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   Introduksjon</blockquote> </details> +<details><summary style="font-size:200%;cursor: pointer;">  Lab 6</summary> +<blockquote style="font-size:200%;cursor: pointer;padding: 10px;">   <a target="_blank" href=lecture6/lab/lab-6.md>Lab-6</a></blockquote> +</details> </details>