From 08b3243a9ed2a67cdcfcbbb080910f8c86716712 Mon Sep 17 00:00:00 2001 From: gsingh58 <gurmail-singh@wisc.edu> Date: Wed, 13 Mar 2024 10:05:24 -0500 Subject: [PATCH] lec14&15 updatd --- .../14-web-4-and-regex-1/regex_1.ipynb | 2 +- lecture_material/15-regex_2/regex_2.ipynb | 116 ++++++++++-------- .../15-regex_2/regex_2_lec_001.ipynb | 10 +- .../15-regex_2/regex_2_lec_002.ipynb | 10 +- 4 files changed, 74 insertions(+), 64 deletions(-) diff --git a/lecture_material/14-web-4-and-regex-1/regex_1.ipynb b/lecture_material/14-web-4-and-regex-1/regex_1.ipynb index 0bfdeb9..5b836e4 100644 --- a/lecture_material/14-web-4-and-regex-1/regex_1.ipynb +++ b/lecture_material/14-web-4-and-regex-1/regex_1.ipynb @@ -1402,7 +1402,7 @@ "id": "35a15a41", "metadata": {}, "source": [ - "In CS <b>320</b>, there are <b>40</b> lectures, <b>10</b> quizzes, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" + "In CS <b>320</b>, there are <b>40</b> lectures, <b>10</b> quizzes, <b>3</b> exams, <b>6</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" ] } ], diff --git a/lecture_material/15-regex_2/regex_2.ipynb b/lecture_material/15-regex_2/regex_2.ipynb index 3335d4d..30b66e8 100644 --- a/lecture_material/15-regex_2/regex_2.ipynb +++ b/lecture_material/15-regex_2/regex_2.ipynb @@ -39,13 +39,6 @@ "123-4567\n", "1-123-4567 (not a phone number)\n", "\n", - "1-608-123-4567\n", - "a-bcd-efg-hijg (not a phone number)\n", - "1-608-123-456 (not a phone number)\n", - "608-123-4567\n", - "123-4567\n", - "1-123-4567 (not a phone number)\n", - "\n", "In CS 320, there are 11 quizzes, 6 projects, 28 lectures, and 1000 things to learn. CS 320 is awesome!\n", "In CS 320, there are 11 quizzes, 6 projects,\n", "28 lectures, and 1000 things to learn. CS 320 is awesome!\n" @@ -74,8 +67,6 @@ "\"\"\"\n", "print(s2)\n", "\n", - "print(s2)\n", - "\n", "s3 = \"In CS 320, there are 11 quizzes, 6 projects, 28 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", @@ -616,7 +607,7 @@ "id": "c138ff9a", "metadata": {}, "source": [ - "#### Goal: make a dict (course component => count, like \"projects\" => 7)" + "#### Goal: make a dict (course component => count, like \"projects\" => 6)" ] }, { @@ -794,7 +785,7 @@ "id": "35a15a41", "metadata": {}, "source": [ - "In CS <b>320</b>, there are <b>40</b> lectures, <b>10</b> quizzes, <b>3</b> exams, <b>7</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" + "In CS <b>320</b>, there are <b>40</b> lectures, <b>10</b> quizzes, <b>3</b> exams, <b>6</b> projects, and <b>1000</b> things to learn. CS <b>320</b> is awesome!" ] }, { @@ -823,7 +814,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "\u001b[33mcommit c13cfb21e69230b393ef2051027d029322c12cac\u001b[m\u001b[33m (\u001b[m\u001b[1;36mHEAD -> \u001b[m\u001b[1;32mmain\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/main\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/HEAD\u001b[m\u001b[33m)\u001b[m\n", + "\u001b[33mcommit f5b5fff2409b01c2e12f3a7baae131e9a23d964b\u001b[m\u001b[33m (\u001b[m\u001b[1;36mHEAD -> \u001b[m\u001b[1;32mmain\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/main\u001b[m\u001b[33m, \u001b[m\u001b[1;31morigin/HEAD\u001b[m\u001b[33m)\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:39:09 2024 -0500\n", + "\n", + " regex_2_lec_002 renamed as regex_1_lec_002\n", + "\n", + "\u001b[33mcommit e017cc00d97679786d97c469733117c016e3ba9b\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:34:43 2024 -0500\n", + "\n", + " web_4_lec_002 added\n", + "\n", + "\u001b[33mcommit 7897fec9ecf701e61b2ed2713fabe72e726ffd7c\u001b[m\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Tue Mar 12 05:51:48 2024 -0500\n", + "\n", + " lec14 and lec15 added\n", + "\n", + "\u001b[33mcommit c13cfb21e69230b393ef2051027d029322c12cac\u001b[m\n", "Author: JINLANG WANG <jwang2775@wisc.edu>\n", "Date: Mon Mar 11 10:36:36 2024 -0500\n", "\n", @@ -1292,26 +1301,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "commit c13cfb21e69230b393ef2051027d029322c12cac\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Mon Mar 11 10:36:36 2024 -0500\n", + "commit f5b5fff2409b01c2e12f3a7baae131e9a23d964b\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:39:09 2024 -0500\n", "\n", - " Update file README.md\n", + " regex_2_lec_002 renamed as regex_1_lec_002\n", "\n", - "commit 95bfde13c281a6eb28f0cd98f6dc393762732d4c\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Sat Mar 9 18:45:08 2024 -0600\n", + "commit e017cc00d97679786d97c469733117c016e3ba9b\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:34:43 2024 -0500\n", "\n", - " lab10\n", + " web_4_lec_002 added\n", "\n", - "commit 90111df9e72309597c67da15bb61de78bff126e7\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Sat Mar 9 18:43:47 2024 -0600\n", + "commit 7897fec9ecf701e61b2ed2713fabe72e726ffd7c\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Tue Mar 12 05:51:48 2024 -0500\n", "\n", - " lab9\n", + " lec14 and lec15 added\n", "\n", - "commit c401ade096b0dd3e1178f46d067b2fbb98d499f3\n", - "Author: JINLANG \n" + "commit c13\n" ] } ], @@ -1337,16 +1345,16 @@ { "data": { "text/plain": [ - "['c13cfb21e69230b393ef2051027d029322c12cac',\n", + "['f5b5fff2409b01c2e12f3a7baae131e9a23d964b',\n", + " 'e017cc00d97679786d97c469733117c016e3ba9b',\n", + " '7897fec9ecf701e61b2ed2713fabe72e726ffd7c',\n", + " 'c13cfb21e69230b393ef2051027d029322c12cac',\n", " '95bfde13c281a6eb28f0cd98f6dc393762732d4c',\n", " '90111df9e72309597c67da15bb61de78bff126e7',\n", " 'c401ade096b0dd3e1178f46d067b2fbb98d499f3',\n", " 'c99c65b5efdaa91f8fce8fadffc41c4747e0a3a0',\n", " 'df5877233cc57005e3003c19c0dbf89aafc53804',\n", - " '26470de563bbe3bc65a73718aee1988ba64e8601',\n", - " '406a4231cd865f81653eb97f7d5f61136360f9e5',\n", - " '64745e91caeed8149cb33be037b795f88b4ddd39',\n", - " '42568d125bb87a10c178ec1d4640e467f2d826b0']" + " '26470de563bbe3bc65a73718aee1988ba64e8601']" ] }, "execution_count": 29, @@ -1378,26 +1386,25 @@ "name": "stdout", "output_type": "stream", "text": [ - "commit c13cfb21e69230b393ef2051027d029322c12cac\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Mon Mar 11 10:36:36 2024 -0500\n", + "commit f5b5fff2409b01c2e12f3a7baae131e9a23d964b\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:39:09 2024 -0500\n", "\n", - " Update file README.md\n", + " regex_2_lec_002 renamed as regex_1_lec_002\n", "\n", - "commit 95bfde13c281a6eb28f0cd98f6dc393762732d4c\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Sat Mar 9 18:45:08 2024 -0600\n", + "commit e017cc00d97679786d97c469733117c016e3ba9b\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Wed Mar 13 09:34:43 2024 -0500\n", "\n", - " lab10\n", + " web_4_lec_002 added\n", "\n", - "commit 90111df9e72309597c67da15bb61de78bff126e7\n", - "Author: JINLANG WANG <jwang2775@wisc.edu>\n", - "Date: Sat Mar 9 18:43:47 2024 -0600\n", + "commit 7897fec9ecf701e61b2ed2713fabe72e726ffd7c\n", + "Author: gsingh58 <gurmail-singh@wisc.edu>\n", + "Date: Tue Mar 12 05:51:48 2024 -0500\n", "\n", - " lab9\n", + " lec14 and lec15 added\n", "\n", - "commit c401ade096b0dd3e1178f46d067b2fbb98d499f3\n", - "Author: JINLANG \n" + "commit c13\n" ] } ], @@ -1414,7 +1421,10 @@ { "data": { "text/plain": [ - "['Mon',\n", + "['Wed',\n", + " 'Wed',\n", + " 'Tue',\n", + " 'Mon',\n", " 'Sat',\n", " 'Sat',\n", " 'Sat',\n", @@ -1518,12 +1528,12 @@ { "data": { "text/plain": [ - "Tue 26\n", + "Tue 27\n", "Thu 13\n", "Fri 11\n", + "Wed 9\n", "Sun 9\n", "Sat 7\n", - "Wed 7\n", "Mon 2\n", "Name: count, dtype: int64" ] @@ -1556,8 +1566,8 @@ "data": { "text/plain": [ "Mon 2\n", - "Tue 26\n", - "Wed 7\n", + "Tue 27\n", + "Wed 9\n", "Thu 13\n", "Fri 11\n", "Sun 9\n", @@ -1600,7 +1610,7 @@ }, { "data": { - "image/png": "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ABSY2/eRuXjxov7yl78URhYAAAC3uF1k/vKXv+irr74qjCwAAABucfvUUt26dfXMM89ox44datq0qUqWLOmy/PHHH/dYOAAAgPw4LMuy3HlDRERE3htzOPTDDz/cdihPSk1NVWBgoFJSUhQQEGB3HPxO+NQv7I5QICfm9rY7AgD8oRT077fbR2SSkpJuKxgAAICnuD1GBgAAwFu4fURm+PDh+S5ftmzZLYcBAABwh9tF5uLFiy7TWVlZOnjwoC5dupTrwyQBAAAKi9tFZs2aNTnmZWdna/To0apTp45HQgEAABSER8bI+Pj4aOLEiVqwYIEnNgcAAFAgHhvse/z4cV27ds1TmwMAALgpt08tTZw40WXasiwlJyfriy++0JAhQzwWDAAA4GbcLjLffPONy7SPj4+qVKmiv//97ze9ogkAAMCT3C4yGzdu9NiHb9q0SS+++KL27Nmj5ORkrVmzRv3793cuHzp0qN566y2X9/To0UNxcXEeywAAAMzldpG54dy5c0pMTJQk1a9fX1WqVHF7G2lpaWrevLmGDx+uAQMG5LpOz549tXz5cue0n5/frQUGAADFjttFJi0tTePGjdPKlSuVnZ0tSSpRooQefvhhvfrqqypTpkyBtxUdHa3o6Oh81/Hz81NISIi7MQEAwB+A21ctTZw4UQkJCfrss8906dIlXbp0SZ988okSEhL05JNPejxgfHy8qlatqvr162v06NE6f/58vutnZGQoNTXV5QUAAIont4vM6tWr9eabbyo6OloBAQEKCAhQr169tHTpUn344YceDdezZ0+tXLlS69ev17x585SQkKDo6Ghdv349z/fExsYqMDDQ+QoLC/NoJgAA4D3cPrWUnp6u4ODgHPOrVq2q9PR0j4S64f7773f+3LRpUzVr1kx16tRRfHy8unTpkut7pk2b5nKJeGpqKmUGAIBiyu0jMm3btlVMTIyuXr3qnPef//xHM2fOVNu2bT0a7vdq166typUr69ixY3mu4+fn5zxSdOMFAACKJ7ePyLz88svq0aOHatSooebNm0uS9u/fr9KlS+t///d/PR7wt3766SedP39eoaGhhfo5AADADG4XmSZNmujo0aN65513dOTIEUnS4MGD9eCDD8rf39+tbV25csXl6EpSUpL27dunoKAgBQUFaebMmRo4cKBCQkJ0/PhxTZkyRXXr1lWPHj3cjQ0AAIqhW7qPTJkyZTRy5Mjb/vDdu3crKirKOX1jbMuQIUP02muv6cCBA3rrrbd06dIlVatWTd27d9dzzz3HvWQAAICkWygysbGxCg4OzvE4gmXLluncuXN66qmnCrytyMhIWZaV5/LCPlUFAADM5vZg39dff10NGjTIMb9x48ZavHixR0IBAAAUhNtF5vTp07kOtq1SpYqSk5M9EgoAAKAg3C4yYWFh2rp1a475W7duVbVq1TwSCgAAoCDcHiMzcuRIjR8/XllZWercubMkaf369ZoyZUqhPKIAAAAgL24XmcmTJ+v8+fN67LHHlJmZKUkqXbq0nnrqKU2bNs3jAQEAAPLidpFxOByaN2+ennnmGR0+fFj+/v6qV68el0QDAIAid0v3kZGkcuXKqVWrVp7MAgAA4Ba3B/sCAAB4C4oMAAAwFkUGAAAYy+0is2nTJl27di3H/GvXrmnTpk0eCQUAAFAQbheZqKgoXbhwIcf8lJQUlwdAAgAAFDa3i4xlWXI4HDnmnz9/XmXLlvVIKAAAgIIo8OXXAwYMkPTrfWSGDh3qct+Y69ev68CBA2rXrp3nEwIAAOShwEUmMDBQ0q9HZMqXLy9/f3/nslKlSumee+7RyJEjPZ8QAAAgDwUuMsuXL5ckhYeHa9KkSZxGAgAAtnP7zr4xMTGFkQMAAMBtBSoyd955p9avX6+KFSuqZcuWuQ72vWHv3r0eCwcAAJCfAhWZfv36OQf39u/fvzDzAAAAFFiBisxvTydxagkAAHiLW376tSRduXJF2dnZLvMCAgJuKxAA2C186hd2R7ipE3N72x0B8Apu3xAvKSlJvXv3VtmyZRUYGKiKFSuqYsWKqlChgipWrFgYGQEAAHLl9hGZhx56SJZladmyZQoODs534C8AAEBhcrvI7N+/X3v27FH9+vULIw8AAECBuX1qqVWrVjp58mRhZAEAAHCL20dk3njjDY0aNUo///yzmjRpopIlS7osb9asmcfCAQAA5MftInPu3DkdP35cw4YNc85zOBzOp2Jfv37dowEBAADy4naRGT58uFq2bKn33nuPwb4AAMBWbheZf//73/r0009Vt27dwsgDAABQYG4P9u3cubP2799fGFkAAADc4vYRmfvuu08TJkzQt99+q6ZNm+YY7Nu3b1+PhQMAAMiP20Vm1KhRkqRZs2blWMZgXwAAUJTcLjK/f7YSAACAXdweIwMAAOAtbunp1//3f/+njRs36uzZszmO0MyfP98jwQAAAG7G7SIzZ84cTZ8+XfXr189xHxnuKQMAAIqS20Xm5Zdf1rJlyzR06NBCiAMAAFBwbo+R8fHxUfv27QsjCwAAgFvcLjITJkzQokWLCiMLAACAW9w+tTRp0iT17t1bderUUaNGjXLcEO+jjz7yWDgAAID8uF1kHn/8cW3cuFFRUVGqVKkSA3wBAIBt3C4yb731llavXq3evXsXRh4AAIACc3uMTFBQkOrUqVMYWQAAANzidpGZMWOGYmJilJ6eXhh5AAAACsztU0uvvPKKjh8/ruDgYIWHh+cY7Lt3716PhQMAAMiP20Wmf//+hRADAADAfW4XmZiYmMLIAQAA4LZbemikJO3Zs0eHDx+WJDVu3FgtW7b0WCgAgPnCp35hd4QCOTGXq3BN5naROXv2rO6//37Fx8erQoUKkqRLly4pKipK77//vqpUqeLpjAAAALly+6qlcePG6fLly/ruu+904cIFXbhwQQcPHlRqaqoef/zxwsgIAACQK7ePyMTFxWndunVq2LChc16jRo20aNEide/e3aPhAAAA8uP2EZns7Owcl1xLUsmSJZWdne2RUAAAAAXhdpHp3LmznnjiCZ06dco57+eff9aECRPUpUsXj4YDAADIj9tF5h//+IdSU1MVHh6uOnXqqE6dOoqIiFBqaqpeffXVwsgIAACQK7fHyISFhWnv3r1at26djhw5Iklq2LChunbt6vFwAAAA+bml+8g4HA5169ZN3bp183QeAACAAivwqaUNGzaoUaNGSk1NzbEsJSVFjRs31ubNmz0aDgAAID8FLjILFy7UyJEjFRAQkGNZYGCgHn30Uc2fP9+tD9+0aZPuu+8+VatWTQ6HQx9//LHLcsuy9Oyzzyo0NFT+/v7q2rWrjh496tZnAACA4qvARWb//v3q2bNnnsu7d++uPXv2uPXhaWlpat68uRYtWpTr8hdeeEGvvPKKFi9erJ07d6ps2bLq0aOHrl696tbnAACA4qnAY2TOnDmT6/1jnBvy9dW5c+fc+vDo6GhFR0fnusyyLC1cuFDTp09Xv379JEkrV65UcHCwPv74Y91///1ufRYAACh+CnxEpnr16jp48GCeyw8cOKDQ0FCPhJKkpKQknT592uVqqMDAQLVp00bbt2/P830ZGRlKTU11eQEAgOKpwEWmV69eeuaZZ3I9rfOf//xHMTEx6tOnj8eCnT59WpIUHBzsMj84ONi5LDexsbEKDAx0vsLCwjyWCQAAeJcCn1qaPn26PvroI91xxx0aO3as6tevL0k6cuSIFi1apOvXr+vpp58utKAFNW3aNE2cONE5nZqaSpkBAKCYKnCRCQ4O1rZt2zR69GhNmzZNlmVJ+vWeMj169NCiRYtyHD25HSEhIZJ+HZvz21NWZ86cUYsWLfJ8n5+fn/z8/DyWAwAAeC+3bohXq1Ytffnll7p48aKOHTsmy7JUr149VaxY0ePBIiIiFBISovXr1zuLS2pqqnbu3KnRo0d7/PMAAIB5bunOvhUrVlSrVq1u+8OvXLmiY8eOOaeTkpK0b98+BQUFqWbNmho/frxmz56tevXqKSIiQs8884yqVaum/v373/ZnAwAA891SkfGU3bt3Kyoqyjl9Y2zLkCFDtGLFCk2ZMkVpaWn629/+pkuXLqlDhw6Ki4tT6dKl7YoMAAC8iK1FJjIy0jnWJjcOh0OzZs3SrFmzijAVAAAwRYEvvwYAAPA2FBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGPZeh8ZAABwc+FTv7A7wk2dmNvbls/liAwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABjL1+4AADwjfOoXdke4qRNze9sdAUAxwxEZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxvLqIjNjxgw5HA6XV4MGDeyOBQAAvISv3QFupnHjxlq3bp1z2tfX6yMDAIAi4vWtwNfXVyEhIXbHAAAAXsirTy1J0tGjR1WtWjXVrl1bDz74oH788Ue7IwEAAC/h1Udk2rRpoxUrVqh+/fpKTk7WzJkzde+99+rgwYMqX758ru/JyMhQRkaGczo1NbWo4gIAgCLm1UUmOjra+XOzZs3Upk0b1apVSx988IFGjBiR63tiY2M1c+bMoooIAABs5PWnln6rQoUKuuOOO3Ts2LE815k2bZpSUlKcr5MnTxZhQgAAUJSMKjJXrlzR8ePHFRoamuc6fn5+CggIcHkBAIDiyauLzKRJk5SQkKATJ05o27Zt+tOf/qQSJUpo8ODBdkcDAABewKvHyPz0008aPHiwzp8/rypVqqhDhw7asWOHqlSpYnc0AADgBby6yLz//vt2RwAAAF7Mq08tAQAA5IciAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACM5Wt3AFOFT/3C7gg3dWJub7sjAABQqDgiAwAAjEWRAQAAxqLIAAAAY1FkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICxKDIAAMBYFBkAAGAsigwAADAWRQYAABiLIgMAAIxFkQEAAMaiyAAAAGNRZAAAgLEoMgAAwFgUGQAAYCwjisyiRYsUHh6u0qVLq02bNtq1a5fdkQAAgBfw+iLzr3/9SxMnTlRMTIz27t2r5s2bq0ePHjp79qzd0QAAgM28vsjMnz9fI0eO1LBhw9SoUSMtXrxYZcqU0bJly+yOBgAAbOZrd4D8ZGZmas+ePZo2bZpzno+Pj7p27art27fn+p6MjAxlZGQ4p1NSUiRJqampHs2WnZHu0e0VBk//zoXBhP0osS89xYT9KLEvPcWE/SixLz3F0/vxxvYsy8p/RcuL/fzzz5Yka9u2bS7zJ0+ebLVu3TrX98TExFiSePHixYsXL17F4HXy5Ml8u4JXH5G5FdOmTdPEiROd09nZ2bpw4YIqVaokh8NhY7K8paamKiwsTCdPnlRAQIDdcYzGvvQc9qVnsB89h33pOSbsS8uydPnyZVWrVi3f9by6yFSuXFklSpTQmTNnXOafOXNGISEhub7Hz89Pfn5+LvMqVKhQWBE9KiAgwGu/UKZhX3oO+9Iz2I+ew770HG/fl4GBgTddx6sH+5YqVUp33XWX1q9f75yXnZ2t9evXq23btjYmAwAA3sCrj8hI0sSJEzVkyBDdfffdat26tRYuXKi0tDQNGzbM7mgAAMBmXl9kBg0apHPnzunZZ5/V6dOn1aJFC8XFxSk4ONjuaB7j5+enmJiYHKfE4D72peewLz2D/eg57EvPKU770mFZN7uuCQAAwDt59RgZAACA/FBkAACAsSgyAADAWBQZAABgLIoMAAAwltdffg3czNtvv63FixcrKSlJ27dvV61atbRw4UJFRESoX79+dsfDH0xUVFS+j0PZsGFDEaYBij+KDIz22muv6dlnn9X48eP1/PPP6/r165J+fSzFwoULKTI34c7Tar35NubepEWLFi7TWVlZ2rdvnw4ePKghQ4bYEwr4/zIzM3X27FllZ2e7zK9Zs6ZNiW4f95HxAsXxi1VUGjVqpDlz5qh///4qX7689u/fr9q1a+vgwYOKjIzUL7/8YndEr+bj41Pgh6neKIm4NTNmzNCVK1f00ksv2R3F63366aeKjo5WyZIl9emnn+a7bt++fYsoldmOHj2q4cOHa9u2bS7zLcuSw+Ew+v/fHJGxUXH+YhWVpKQktWzZMsd8Pz8/paWl2ZDILBs3bnT+fOLECU2dOlVDhw51Psts+/bteuuttxQbG2tXxGLjoYceUuvWrSkyBdC/f3+dPn1aVatWVf/+/fNcj/9OFtzQoUPl6+urzz//XKGhoQX+B4wJKDI2Ks5frKISERGhffv2qVatWi7z4+Li1LBhQ5tSmaNTp07On2fNmqX58+dr8ODBznl9+/ZV06ZNtWTJEk6L3Kbt27erdOnSdscwwm+PTv/+SDVuzb59+7Rnzx41aNDA7igeR5GxUXH+YhWViRMnasyYMbp69aosy9KuXbv03nvvKTY2Vm+88Ybd8Yyyfft2LV68OMf8u+++W4888ogNicw0YMAAl2nLspScnKzdu3frmWeesSmVmbKystSzZ08tXrxY9erVszuO0Ro1alRsT7VTZGxUnL9YReWRRx6Rv7+/pk+frvT0dD3wwAOqVq2aXn75Zd1///12xzNKWFiYli5dqhdeeMFl/htvvKGwsDCbUpknMDDQZdrHx0f169fXrFmz1L17d5tSmalkyZI6cOCA3TGKhXnz5mnKlCmaM2eOmjZtqpIlS7osN3kwP4N9bbRhwwZNnz69WH6x7JCenq4rV66oatWqdkcx0pdffqmBAweqbt26atOmjSRp165dOnr0qFavXq1evXrZnBB/RBMmTJCfn5/mzp1rdxSj+fj8etu43w9hKA5jMikyNirOXyyY6eTJk3rttdd05MgRSVLDhg01atQojsjcAq5G9Ixx48Zp5cqVqlevnu666y6VLVvWZfn8+fNtSmaWhISEfJf/drycaSgyNirOX6yiEhERke8g6R9++KEI0wDS999/rxEjRnA14m364YcfFB4eri5duuS5jsPh4AaDYIyMnSgqt2/8+PEu01lZWfrmm28UFxenyZMn2xPKYJs3b9brr7+uH374QatWrVL16tX19ttvKyIiQh06dLA7nhGGDRvG1YgeUK9ePSUnJztvETBo0CC98sorCg4OtjmZmTZt2pTv8o4dOxZREs+jyNjs0qVLevPNN3X48GFJUuPGjTV8+PAcAwaRuyeeeCLX+YsWLdLu3buLOI3ZVq9erb/+9a968MEHtXfvXmVkZEiSUlJSNGfOHH355Zc2JzQDVyN6xu9PFqxdu5Z7Q92GyMjIHPN+W7JNPlLIQyNttHv3btWpU0cLFizQhQsXdOHCBc2fP1916tTR3r177Y5ntOjoaK1evdruGEaZPXu2Fi9erKVLl7oMPG/fvj3fRzdwNWLhYBTE7bl48aLL6+zZs4qLi1OrVq301Vdf2R3vtnBExkYTJkxQ3759tXTpUvn6/vo/xbVr1/TII49o/PjxNz0UiLx9+OGHCgoKsjuGURITE3M9vBwYGKhLly4VfSCD/PaZVcX5Mtei5HA4cpyW4zTdrcvtKH+3bt1UqlQpTZw4UXv27LEhlWdQZGy0e/dulxIjSb6+vpoyZYruvvtuG5N5v1mzZunJJ59Uhw4dXP7jZlmWTp8+rXPnzumf//ynjQnNExISomPHjik8PNxl/pYtW1S7dm17QhmiQoUKOb6Hvx+kymBf91iWpaFDh8rPz0+SdPXqVY0aNSrHVUsfffSRHfGKjeDgYCUmJtod47ZQZGwUEBCgH3/8Mce59JMnT6p8+fI2pTLDzJkzNWrUKPXr18/lD4iPj4+qVKmiyMhIxii4aeTIkXriiSe0bNkyORwOnTp1Stu3b9ekSZO4I+1N/PaZVfCM3z8S46GHHrIpSfHw+xsL3rjj9Ny5c3M8sd00XH5to8cff1xr1qzRSy+9pHbt2kmStm7dqsmTJ2vgwIFauHChvQG9mI+Pj/Ohcrg9SUlJioiIkGVZmjNnjmJjY5Weni7p14dvTpo0Sc8995zNKb3frFmzNGnSJJUpU8buKEAON550//s/+ffcc4+WLVtm9D/8KDI2yszM1OTJk7V48WJdu3ZNlmWpVKlSGj16tObOnes8pIqcfHx8dObMGVWpUsXuKMbz8fFRrVq1FBUVpaioKEVGRury5cu6cuWKGjVqpHLlytkd0QglSpRQcnIy5Rpe6d///rfL9I2j18XhQaYUGS+Qnp6u48ePS5Lq1KnDv+gKwMfHR4GBgTcd/HfhwoUiSmSu+Ph452vnzp3KzMxU7dq11blzZ3Xu3FmRkZHcu6MAOEoIb7R9+3adP39effr0cc5buXKlYmJilJaWpv79++vVV181+h/OFBkbDB8+vEDrLVu2rJCTmMvHx0cLFy686f12fn+eHfm7evWqtm3b5iw2u3btUlZWlho0aKDvvvvO7nhejaOE8EbR0dGKjIzUU089JUn69ttvdeedd2ro0KFq2LChXnzxRT366KOaMWOGvUFvA0XGBjcO5bds2TLfeyOsWbOmCFOZhX/9Fq7MzExt3bpVa9eu1euvv64rV65wtc1NcJQQ3ig0NFSfffaZ80rYp59+WgkJCdqyZYskadWqVYqJidGhQ4fsjHlbuGrJBqNHj9Z7772npKQkDRs2TA899BD3PHET95PwrMzMTO3YsUMbN250nmIKCwtTx44d9Y9//IPHaRTQzJkzuSs3vMrFixddTg0nJCQoOjraOd2qVSudPHnSjmgewxEZm2RkZOijjz7SsmXLtG3bNvXu3VsjRoxQ9+7d+SNdAByR8ZzOnTtr586dioiIUKdOnXTvvfeqU6dOCg0NtTuaUfhOwhvVqlVLb7/9tjp27KjMzExVqFBBn332mfM+R99++606depk9JFCHlFgEz8/Pw0ePFhff/21Dh06pMaNG+uxxx5TeHi4rly5Ync8r5ednc0fDA/ZvHmzKlWqpM6dO6tLly7q1q0bJeYW8A8QeKNevXpp6tSp2rx5s6ZNm6YyZcro3nvvdS4/cOCA6tSpY2PC20eR8QK/vb6fcQgoapcuXdKSJUtUpkwZzZs3T9WqVVPTpk01duxYffjhhzp37pzdEY3AwW14o+eee06+vr7q1KmTli5dqqVLl6pUqVLO5cuWLVP37t1tTHj7OLVkk9+eWtqyZYv69OmjYcOGqWfPnvLxoV/CPpcvX9aWLVuc42X279+vevXq6eDBg3ZHA3CLUlJSVK5cOZUoUcJl/oULF1SuXDmXcmMaBvva4LHHHtP777+vsLAwDR8+XO+9954qV65sdyxAklS2bFkFBQUpKChIFStWlK+vrw4fPmx3LAC3Ia9B6MXhQhOOyNjAx8dHNWvWVMuWLfM9r87D0FAUsrOztXv3bsXHx2vjxo3aunWr0tLSVL16defdfqOiolSrVi27owJADhyRscHDDz/MwEB4jQoVKigtLU0hISGKiorSggULFBkZafwAQAB/DByRAf7gXn/9dUVFRemOO+6wOwoAuI0iAwAAjMXlMQAAwFgUGQAAYCyKDAAAMBZFBoDXOXLkiO655x6VLl1aLVq0KPD74uPj5XA4dOnSpULLVhSKy+8BFAWKDFAMDR06VA6HQw6HQyVLllRwcLC6deumZcuWKTs72+54NxUTE6OyZcsqMTFR69evz3WdyMhIjR8/vmiDAfA6FBmgmOrZs6eSk5N14sQJrV27VlFRUXriiSfUp08fXbt2ze54+Tp+/Lg6dOigWrVqqVKlSnbHAeDFKDJAMeXn56eQkBBVr15dd955p/77v/9bn3zyidauXasVK1Y415s/f76aNm2qsmXLKiwsTI899pjzCexpaWkKCAjQhx9+6LLtjz/+WGXLltXly5eVmZmpsWPHKjQ0VKVLl1atWrUUGxubZ67s7GzNmjVLNWrUkJ+fn1q0aKG4uDjncofDoT179mjWrFlyOByaMWNGjm0MHTpUCQkJevnll51Hnk6cOOFcvmfPHt19990qU6aM2rVrp8TERJf3f/LJJ7rzzjtVunRp1a5dWzNnzsyz3B08eFA+Pj7Oh2deuHBBPj4+uv/++53rzJ49Wx06dHB5T3R0tMqVK6fg4GD99a9/1S+//OKyD2JjYxURESF/f381b948xz7+rfT0dEVHR6t9+/acbgJ+zwJQ7AwZMsTq169frsuaN29uRUdHO6cXLFhgbdiwwUpKSrLWr19v1a9f3xo9erRz+ciRI61evXq5bKNv377Www8/bFmWZb344otWWFiYtWnTJuvEiRPW5s2brXfffTfPbPPnz7cCAgKs9957zzpy5Ig1ZcoUq2TJktb3339vWZZlJScnW40bN7aefPJJKzk52bp8+XKObVy6dMlq27atNXLkSCs5OdlKTk62rl27Zm3cuNGSZLVp08aKj4+3vvvuO+vee++12rVr53zvpk2brICAAGvFihXW8ePHra+++soKDw+3ZsyYkWve7Oxsq3LlytaqVassy7Ksjz/+2KpcubIVEhLiXKdr167W008/bVmWZV28eNGqUqWKNW3aNOvw4cPW3r17rW7dullRUVHO9WfPnm01aNDAiouLs44fP24tX77c8vPzs+Lj4y3Lspy/x8WLF62LFy9a7dq1s7p3726lpaXluV+BPyqKDFAM5VdkBg0aZDVs2DDP965atcqqVKmSc3rnzp1WiRIlrFOnTlmWZVlnzpyxfH19nX90x40bZ3Xu3NnKzs4uULZq1apZzz//vMu8Vq1aWY899phzunnz5lZMTEy+2+nUqZP1xBNPuMy7UQDWrVvnnPfFF19Ykqz//Oc/lmVZVpcuXaw5c+a4vO/tt9+2QkND8/ysAQMGWGPGjLEsy7LGjx9vTZ482apYsaJ1+PBhKzMz0ypTpoz11VdfWZZlWc8995zVvXt3l/efPHnSkmQlJiZaV69etcqUKWNt27bNZZ0RI0ZYgwcPdvk9Dh8+bDVr1swaOHCglZGRke/+AP6oeNYS8AdjWZbLs77WrVun2NhYHTlyRKmpqbp27ZquXr2q9PR0lSlTRq1bt1bjxo311ltvaerUqfqf//kf1apVSx07dpT062mebt26qX79+urZs6f69Omj7t275/rZqampOnXqlNq3b+8yv3379tq/f7/HfsdmzZo5fw4NDZUknT17VjVr1tT+/fu1detWPf/88851rl+/7vI7/16nTp20ZMkSSVJCQoLmzJmj77//XvHx8bpw4YKysrKcv9P+/fu1ceNGlStXLsd2jh8/rqysLKWnp6tbt24uyzIzM9WyZUuXed26dVPr1q31r3/9SyVKlLjFvQEUbxQZ4A/m8OHDioiIkCSdOHFCffr00ejRo/X8888rKChIW7Zs0YgRI5SZmen8o/7II49o0aJFmjp1qpYvX65hw4Y5y9Cdd96ppKQkrV27VuvWrdN//dd/qWvXrvmO+ShsJUuWdP58I+eNq7WuXLmimTNnasCAATneV7p06Vy3d+MKqaNHj+rQoUPq0KGDjhw5ovj4eF28eNE5HufG9u+77z7Nmzcvx3ZCQ0N18OBBSdIXX3yh6tWruyz38/Nzme7du7dWr16tQ4cOqWnTpgX99YE/FIoM8AeyYcMGffvtt5owYYKkXwfFZmdn6+9//7t8fH4d+//BBx/keN9DDz2kKVOm6JVXXtGhQ4c0ZMgQl+UBAQEaNGiQBg0apD//+c/q2bOnLly4oKCgoBzrVatWTVu3blWnTp2c87du3arWrVu79buUKlVK169fd+s90q/FKzExUXXr1i3we5o2baqKFStq9uzZatGihcqVK6fIyEjNmzdPFy9eVGRkpMv2V69erfDwcPn65vxPbKNGjeTn56cff/zRZR/kZu7cuSpXrpy6dOmi+Ph4NWrUqMCZgT8KigxQTGVkZOj06dO6fv26zpw5o7i4OMXGxqpPnz56+OGHJUl169ZVVlaWXn31Vd13333aunWrFi9enGNbFStW1IABAzR58mR1795dNWrUcC6bP3++QkND1bJlS/n4+GjVqlUKCQlRhQoVcs01efJkxcTEqE6dOmrRooWWL1+uffv26Z133nHr9wsPD9fOnTt14sQJlStXLkdpysuzzz6rPn36qGbNmvrzn/8sHx8f7d+/XwcPHtTs2bNzfY/D4VDHjh31zjvvaNKkSZJ+PX2VkZGh9evXa+LEic51x4wZo6VLl2rw4MGaMmWKgoKCdOzYMb3//vt64403VL58eU2aNEkTJkxQdna2OnTooJSUFG3dulUBAQE5SuJLL72k69evq3PnzoqPj1eDBg3c2k9AsWf3IB0AnjdkyBBLkiXJ8vX1tapUqWJ17drVWrZsmXX9+nWXdefPn2+FhoZa/v7+Vo8ePayVK1c6r5j5rfXr11uSrA8++MBl/pIlS6wWLVpYZcuWtQICAqwuXbpYe/fuzTPb9evXrRkzZljVq1e3SpYsaTVv3txau3atyzoFGeybmJho3XPPPZa/v78lyUpKSnK52ueGb775xrn8hri4OKtdu3aWv7+/FRAQYLVu3dpasmRJvp+3YMECS5JL1n79+lm+vr45rqz6/vvvrT/96U9WhQoVLH9/f6tBgwbW+PHjnQOis7OzrYULF1r169e3SpYsaVWpUsXq0aOHlZCQYFmWlevvMW7cOCs0NNRKTEzMNyfwR+OwLMuyrUUBMMbbb7+tCRMm6NSpUypVqpTdcQBAEqeWANxEenq6kpOTNXfuXD366KOUGABehTv7AsjXCy+8oAYNGigkJETTpk2zOw4AuODUEgAAMBZHZAAAgLEoMgAAwFgUGQAAYCyKDAAAMBZFBgAAGIsiAwAAjEWRAQAAxqLIAAAAY1FkAACAsf4fuiZuHqYhGcgAAAAASUVORK5CYII=", + "image/png": "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Qwq8rnLlyoW+3+UrpA4fPqxvv/1WXbp00XfffaeEhASdPXvWOR7n8vvfeeedmjdvXoH3CQ0N1cGDByVJn332merVq+ey3s/Pz2W+f//+Wr16tb799lu1bt26pN8+cF2hyADXkQ0bNujrr7/WxIkTJf06KDY/P19///vf5ePz69j/9957r8Dr7rvvPk2dOlUvv/yyvv32W40YMcJlfUBAgIYNG6Zhw4bpD3/4g/r27au0tDQFBQUV2C4sLExbt25Vt27dnMu3bt2qjh07uvW9VKpUSZcuXXLrNdKvxSspKUmNGzcu8Wtat26tmjVravbs2WrXrp2qVaumqKgozZs3T2fPnlVUVJTL+69evVoRERHy9S34T2yLFi3k5+enH3/80WUfFGbu3LmqVq2aevTooYSEBLVo0aLEmYHrBUUGKKdycnJ04sQJXbp0SSdPnlR8fLzi4uI0YMAA3X///ZKkxo0bKy8vT6+88oruvPNObd26VUuWLCnwXjVr1tSQIUM0ZcoU9e7dW/Xr13eumz9/vkJDQ9W+fXv5+Pho1apVCgkJUY0aNQrNNWXKFMXGxqpRo0Zq166dVqxYoX379umtt95y6/uLiIjQzp07dezYMVWrVq1AaSrKs88+qwEDBuiGG27QH/7wB/n4+Gj//v06ePCgZs+eXehrHA6HunbtqrfeekuTJ0+W9Ovpq5ycHK1fv16TJk1ybjt+/HgtW7ZMw4cP19SpUxUUFKQjR47o3Xff1Wuvvabq1atr8uTJmjhxovLz89WlSxdlZGRo69atCggIKFASX3zxRV26dEndu3dXQkKCmjVr5tZ+Aso9uwfpAPC8ESNGWJIsSZavr69Vp04dq2fPntby5cutS5cuuWw7f/58KzQ01PL397f69OljvfHGG84rZn5r/fr1liTrvffec1m+dOlSq127dlbVqlWtgIAAq0ePHtbevXuLzHbp0iVrxowZVr169ayKFStabdu2tdauXeuyTUkG+yYlJVm33Xab5e/vb0mykpOTXa72ueyrr75yrr8sPj7euv322y1/f38rICDA6tixo7V06dJiP2/BggWWJJesgwYNsnx9fQtcWfX9999bd911l1WjRg3L39/fatasmTVhwgTngOj8/Hxr4cKFVtOmTa2KFStaderUsfr06WMlJiZalmUV+n08+uijVmhoqJWUlFRsTuB647Asy7KtRQEwxptvvqmJEyfq+PHjqlSpkt1xAEASp5YAXEF2drZSU1M1d+5cPfjgg5QYAF6FO/sCKNYLL7ygZs2aKSQkRNOnT7c7DgC44NQSAAAwFkdkAACAsSgyAADAWBQZAABgLIoMAAAwFkUGAAAYiyIDAACMRZEBAADGosgAAABjUWQAAICx/j/VYW3ZuJQ1KwAAAABJRU5ErkJggg==", "text/plain": [ "<Figure size 640x480 with 1 Axes>" ] @@ -1632,7 +1642,7 @@ { "data": { "text/plain": [ - "'JINLANG WANG'" + "'gsingh58'" ] }, "execution_count": 35, @@ -1707,7 +1717,7 @@ } ], "source": [ - "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../projects-and-labs\"), encoding=\"utf-8\")\n", + "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../../projects-and-labs\"), encoding=\"utf-8\")\n", "print(git_log_output[:1000])" ] }, diff --git a/lecture_material/15-regex_2/regex_2_lec_001.ipynb b/lecture_material/15-regex_2/regex_2_lec_001.ipynb index 617252d..8595cb6 100644 --- a/lecture_material/15-regex_2/regex_2_lec_001.ipynb +++ b/lecture_material/15-regex_2/regex_2_lec_001.ipynb @@ -49,11 +49,11 @@ "\"\"\"\n", "print(s2)\n", "\n", - "s3 = \"In CS 320, there are 10 quizzes, 7 projects, 39 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", + "s3 = \"In CS 320, there are 11 quizzes, 6 projects, 28 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", - "s4 = \"\"\"In CS 320, there are 14 quizzes, 7 projects,\n", - "41 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", + "s4 = \"\"\"In CS 320, there are 11 quizzes, 6 projects,\n", + "28 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", "print(s4)" ] }, @@ -400,7 +400,7 @@ "id": "bc6a982c", "metadata": {}, "source": [ - "#### Goal: make a dict (course component => count, like \"projects\" => 7)" + "#### Goal: make a dict (course component => count, like \"projects\" => 6)" ] }, { @@ -689,7 +689,7 @@ "metadata": {}, "outputs": [], "source": [ - "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../projects-and-labs\"), encoding=\"utf-8\")\n", + "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../../projects-and-labs\"), encoding=\"utf-8\")\n", "print(git_log_output[:1000])" ] }, diff --git a/lecture_material/15-regex_2/regex_2_lec_002.ipynb b/lecture_material/15-regex_2/regex_2_lec_002.ipynb index 617252d..8595cb6 100644 --- a/lecture_material/15-regex_2/regex_2_lec_002.ipynb +++ b/lecture_material/15-regex_2/regex_2_lec_002.ipynb @@ -49,11 +49,11 @@ "\"\"\"\n", "print(s2)\n", "\n", - "s3 = \"In CS 320, there are 10 quizzes, 7 projects, 39 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", + "s3 = \"In CS 320, there are 11 quizzes, 6 projects, 28 lectures, and 1000 things to learn. CS 320 is awesome!\"\n", "print(s3)\n", "\n", - "s4 = \"\"\"In CS 320, there are 14 quizzes, 7 projects,\n", - "41 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", + "s4 = \"\"\"In CS 320, there are 11 quizzes, 6 projects,\n", + "28 lectures, and 1000 things to learn. CS 320 is awesome!\"\"\"\n", "print(s4)" ] }, @@ -400,7 +400,7 @@ "id": "bc6a982c", "metadata": {}, "source": [ - "#### Goal: make a dict (course component => count, like \"projects\" => 7)" + "#### Goal: make a dict (course component => count, like \"projects\" => 6)" ] }, { @@ -689,7 +689,7 @@ "metadata": {}, "outputs": [], "source": [ - "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../projects-and-labs\"), encoding=\"utf-8\")\n", + "git_log_output = str(check_output([\"git\", \"log\"], cwd=\"../../projects-and-labs\"), encoding=\"utf-8\")\n", "print(git_log_output[:1000])" ] }, -- GitLab