{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "*In this article, I try to visualize the last four semesters in my degree as a directed graph with courses as nodes and prerequisite relations as edges. Will my plan work, or am I missing prerequisites? NetworkX and yEd are used for creating and displaying the graph.*\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# The problem\n", "\n", "I want to graduate in at least two years which means I need to pass a certain set of courses in a specific sequence. \n", "\n", "There are a lot of complications:\n", "\n", "- Not all courses are available every semester; certain courses can only be taken in the Fall term, others only in the Winter.\n", "\n", "- Many courses have prerequisites, often the prerequisites have prerequisites.\n", "\n", "- There are electives and a large library of possibilities.\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Definitions\n", "\n", "According to uOttawa's [sheet on course enrolment terminology](http://www.uottawa.ca/undergraduate-course-registration/enrolment-forms-and-tools/understanding-course-schedules), the academic year is divided into three \"terms\":\n", "\n", "1. Fall (September to December)\n", "2. Winter (January to April)\n", "3. Spring-Summer (May to August)\n", "\n", "Courses are encoded in the following way:\n", "\n", ">Each course is designated by a seven-character code made up of three letters and four digits. The three letters stand for the subject. For example, CRM stands for criminology. The first digit is for the year of study (1000-level courses — those that start with 1 — are first year courses)..." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Collecting the data\n", "\n", "The University of Ottawa does not make this easy. Course information is spread out over at least three separate databases:\n", "\n", "- The [course catalogue](http://catalogue.uottawa.ca/en/courses/). Contains most of the information I want, except for scheduling and availability. No search engine, so I had to look up a [course code page](http://catalogue.uottawa.ca/en/courses/csi/) and `CTRL-F`.\n", "\n", "- The [course timetable](https://web30.uottawa.ca/v3/SITS/timetable/Search.aspx). Has a search engine (a clumsy one). Provides schedules for courses in the next two terms. There is no way to know if a course will be held in a term later than the next two, so I have to hope that the pattern doesn't change much (i.e. since SEG 2105 is only held in the Fall term this year, it will only be held in the Fall next year). **Does not provide any prerequisite information!** I feel bad for any one who tries to use this as their sole information source...\n", "\n", "- The enrollment system. I can't link to this as it can only be accessed through \"uoZone\" (uOttawa's internal system). As far as I know, this is the only place where course availability and number of available seats are given. This software is atrocious. Instead of following the universally agreed-upon course code system, courses are assigned a seemingly random sequence of numbers and letters. I have 1000 other complaints, but I'll spare you the rant.\n", "\n", "After hours pouring over the [program requirements](http://catalogue.uottawa.ca/en/undergrad/major-computer-science/#programrequirementstext) and the [course catalogue](http://catalogue.uottawa.ca/en/courses/), I had a list of candidates and a possible schedule. But will it work? Have I missed a prerequisite or planned to take a course in the Fall that is only available in the Winter? This stuff is too complicated...I need a visual." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Importing the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I created a spreadsheet of all the courses I'm planning on taking and furnished it with various information about them. The most confusing aspect is the prerequisite chain, so I'd like to visualize this as a directed graph with courses as nodes and prerequisite links as edges." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 89, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
subject_codedigit_codecourse_codecourse_nameprerequisitesexpected_termexpected_yearrequiredterm_availability
0CSI2110CSI2110Data Structures and AlgorithmsITI 1121, MAT 1348F2017TrueF, W
1SEG2105SEG2105Introduction to Software EngineeringITI 1121F2017TrueF
2PSY4130PSY4130History and Systems of PsychologyNaNF2017FalseF, W
3MAT1320MAT1320Calculus INaNF2017FalseS, F, W
4CSI2101CSI2101Discrete StructuresMAT 1348W2018TrueW
5CSI2911CSI2911Professional Practice in ComputingNaNW2018TrueW
6CSI2132CSI2132Databases ICSI 2110W2018TrueW
7MAT1322MAT1322Calculus IIMAT 1320W2018FalseS, F, W
8CSI2120CSI2120Programming ParadigmsCSI 2110W2018TrueW
9CSI3105CSI3105Design and Analysis of AlgorithmsCSI 2110, CSI 2101F2018TrueF
10CSI3120CSI3120Programming Language ConceptsCSI 2101, CSI 2120F2018FalseF
11SEG3125SEG3125Analysis and Design of User InterfacesSEG 2105W2019FalseS, W
12CSI4130CSI4130Computer GraphicsCSI 3105, MAT 1341W2019FalseW
13CSI3140CSI3140WWW Structures, Techniques and StandardsCSI 2110, CSI 2132W2019FalseS, W
14CSI3130CSI3130Databases IICSI 2132F2018FalseF
\n", "
" ], "text/plain": [ " subject_code digit_code course_code \\\n", "0 CSI 2110 CSI2110 \n", "1 SEG 2105 SEG2105 \n", "2 PSY 4130 PSY4130 \n", "3 MAT 1320 MAT1320 \n", "4 CSI 2101 CSI2101 \n", "5 CSI 2911 CSI2911 \n", "6 CSI 2132 CSI2132 \n", "7 MAT 1322 MAT1322 \n", "8 CSI 2120 CSI2120 \n", "9 CSI 3105 CSI3105 \n", "10 CSI 3120 CSI3120 \n", "11 SEG 3125 SEG3125 \n", "12 CSI 4130 CSI4130 \n", "13 CSI 3140 CSI3140 \n", "14 CSI 3130 CSI3130 \n", "\n", " course_name prerequisites \\\n", "0 Data Structures and Algorithms  ITI 1121, MAT 1348 \n", "1 Introduction to Software Engineering ITI 1121 \n", "2 History and Systems of Psychology NaN \n", "3 Calculus I NaN \n", "4 Discrete Structures MAT 1348 \n", "5 Professional Practice in Computing NaN \n", "6 Databases I CSI 2110 \n", "7 Calculus II MAT 1320 \n", "8 Programming Paradigms CSI 2110 \n", "9 Design and Analysis of Algorithms  CSI 2110, CSI 2101  \n", "10 Programming Language Concepts CSI 2101, CSI 2120 \n", "11 Analysis and Design of User Interfaces SEG 2105 \n", "12 Computer Graphics CSI 3105, MAT 1341 \n", "13 WWW Structures, Techniques and Standards CSI 2110, CSI 2132 \n", "14 Databases II CSI 2132 \n", "\n", " expected_term expected_year required term_availability \n", "0 F 2017 True F, W \n", "1 F 2017 True F \n", "2 F 2017 False F, W \n", "3 F 2017 False S, F, W \n", "4 W 2018 True W \n", "5 W 2018 True W \n", "6 W 2018 True W \n", "7 W 2018 False S, F, W \n", "8 W 2018 True W \n", "9 F 2018 True F \n", "10 F 2018 False F \n", "11 W 2019 False S, W \n", "12 W 2019 False W \n", "13 W 2019 False S, W \n", "14 F 2018 False F " ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = pd.read_csv('course_schedule.csv')\n", "df" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Create list of nodes\n", "\n", "Each course_code will be a node in the directed graph." ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Index(['subject_code', 'digit_code', 'course_code', 'course_name',\n", " 'prerequisites', 'expected_term', 'expected_year', 'required',\n", " 'term_availability'],\n", " dtype='object')" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.columns" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0 CSI2110\n", "1 SEG2105\n", "2 PSY4130\n", "3 MAT1320\n", "4 CSI2101\n", "5 CSI2911\n", "6 CSI2132\n", "7 MAT1322\n", "8 CSI2120\n", "9 CSI3105\n", "10 CSI3120\n", "11 SEG3125\n", "12 CSI4130\n", "13 CSI3140\n", "14 CSI3130\n", "Name: course_code, dtype: object" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "courses = df['course_code']\n", "courses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Create list of edges\n", "\n", "Nodes are linked by prerequisite relations. For example, MAT1320 -> MAT1322 (because taking Calculus II requires having already passed Calculus I)." ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0  ITI 1121, MAT 1348\n", "1 ITI 1121\n", "2 NaN\n", "3 NaN\n", "4 MAT 1348\n", "5 NaN\n", "6 CSI 2110\n", "7 MAT 1320\n", "8 CSI 2110\n", "9 CSI 2110, CSI 2101 \n", "10 CSI 2101, CSI 2120\n", "11 SEG 2105\n", "12 CSI 3105, MAT 1341\n", "13 CSI 2110, CSI 2132\n", "14 CSI 2132\n", "Name: prerequisites, dtype: object" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ "prerequisites = df['prerequisites']\n", "prerequisites" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Weird Unicode thing\n", "\n", "I got the prerequisites by copy/pasting from the course catalogue, but some of them have extra characters." ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "\"'\\\\xa0ITI\\\\xa01121,\\\\xa0MAT\\\\xa01348'\"" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Copy and pasted straight from my spreadsheet\n", "weird_string = \" ITI 1121, MAT 1348\"\n", "repr(weird_string)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These characters are invisible when printed:" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " ITI 1121, MAT 1348\n" ] } ], "source": [ "print(weird_string)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to [samwize on StackOverflow](https://stackoverflow.com/a/11566398/6591491), `\\xa0` is \"actually non-breaking space in Latin1 (ISO 8859-1), also chr(160)\". I don't really understand what that means, but I'm guessing `\\xa0` is some kind of substitute for a space.\n", "\n", "In any case, keeping these characters made for ugly output so I chose to remove them. StackOverflow suggests [`unicodedata.normalize()`](https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize). The documentation is a bit vague on what the different \"forms\" mean (\"NFC\", \"NFKC\", \"NFD\", and \"NFKD\") and I don't feel like researching this right now so...TRIAL AND ERROR IT IS!" ] }, { "cell_type": "code", "execution_count": 124, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import unicodedata" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "NFC: '\\xa0ITI\\xa01121,\\xa0MAT\\xa01348'\n", "NFKC: ' ITI 1121, MAT 1348'\n", "NFD: '\\xa0ITI\\xa01121,\\xa0MAT\\xa01348'\n", "NFKD: ' ITI 1121, MAT 1348'\n" ] } ], "source": [ "unicode_forms = [\"NFC\", \"NFKC\", \"NFD\", \"NFKD\"]\n", "\n", "for form in unicode_forms:\n", " rep = repr(unicodedata.normalize(form, weird_string))\n", " print(f\"{form}: {rep}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "NFKC and NFKD look good. I'll pick the former for no good reason." ] }, { "cell_type": "code", "execution_count": 129, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def course_formatter2(course):\n", " '''(str) -> str\n", " Takes a course code and removes unicode (\\xa0) character as well as commas\n", " and spaces.'''\n", " return unicodedata.normalize(\"NFKC\", course).replace(',', '').replace(' ', '')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Why `course_formatter2()`? Because I used `course_formatter()` before looking into the problem more closely, it worked OK." ] }, { "cell_type": "code", "execution_count": 132, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def course_formatter(course):\n", " '''(str) -> str\n", " Takes a course code and removes unicode (\\xa0) character as well as commas\n", " and spaces.'''\n", " return course.replace(u'\\xa0', '').replace(',', '').replace(' ', '')" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[[('CSI2110', 'ITI1121'), ('CSI2110', 'MAT1348')],\n", " [('SEG2105', 'ITI1121')],\n", " [('CSI2101', 'MAT1348')],\n", " [('CSI2132', 'CSI2110')],\n", " [('MAT1322', 'MAT1320')],\n", " [('CSI2120', 'CSI2110')],\n", " [('CSI3105', 'CSI2110'), ('CSI3105', 'CSI2101')],\n", " [('CSI3120', 'CSI2101'), ('CSI3120', 'CSI2120')],\n", " [('SEG3125', 'SEG2105')],\n", " [('CSI4130', 'CSI3105'), ('CSI4130', 'MAT1341')],\n", " [('CSI3140', 'CSI2110'), ('CSI3140', 'CSI2132')],\n", " [('CSI3130', 'CSI2132')]]" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# list of tuples\n", "edges = []\n", "\n", "for i, relation in enumerate(prerequisites):\n", " # Ignore courses with no prerequisites\n", " if not pd.isnull(relation):\n", " rs = relation.split(',')\n", " tmp = []\n", " for r in rs:\n", " tmp.append((courses[i], course_formatter2(r)))\n", " edges.append(tmp)\n", "\n", "edges" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is a bit confusing because it looks like CSI2110 -> ITI1121 (when it is the other way around)." ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[[('ITI1121', 'CSI2110'), ('MAT1348', 'CSI2110')],\n", " [('ITI1121', 'SEG2105')],\n", " [('MAT1348', 'CSI2101')],\n", " [('CSI2110', 'CSI2132')],\n", " [('MAT1320', 'MAT1322')],\n", " [('CSI2110', 'CSI2120')],\n", " [('CSI2110', 'CSI3105'), ('CSI2101', 'CSI3105')],\n", " [('CSI2101', 'CSI3120'), ('CSI2120', 'CSI3120')],\n", " [('SEG2105', 'SEG3125')],\n", " [('CSI3105', 'CSI4130'), ('MAT1341', 'CSI4130')],\n", " [('CSI2110', 'CSI3140'), ('CSI2132', 'CSI3140')],\n", " [('CSI2132', 'CSI3130')]]" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The same, but swapping the order\n", "edges = []\n", "\n", "for i, relation in enumerate(prerequisites):\n", " # Ignore courses with no prerequisites\n", " if not pd.isnull(relation):\n", " rs = relation.split(',')\n", " tmp = []\n", " for r in rs:\n", " tmp.append((course_formatter(r), courses[i]))\n", " edges.append(tmp)\n", "\n", "edges" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Create DiGraph\n", "\n", "With the [NetworkX library](https://networkx.github.io/)." ] }, { "cell_type": "code", "execution_count": 134, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import networkx as nx" ] }, { "cell_type": "code", "execution_count": 135, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G = nx.DiGraph()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Adding nodes and edges" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "collapsed": true }, "outputs": [], "source": [ "G.add_nodes_from(courses)" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "collapsed": true }, "outputs": [], "source": [ "for edge in edges:\n", " G.add_edges_from(edge)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Drawing the graph?\n", "\n", "> NetworkX provides basic functionality for visualizing graphs, but its main goal is to enable graph analysis rather than perform graph visualization. In the future, graph visualization functionality may be removed from NetworkX or only available as an add-on package. - [Documentation for NetworkX](https://networkx.readthedocs.io/en/stable/reference/drawing.html)\n", "\n", "I'm going to try it anyway." ] }, { "cell_type": "code", "execution_count": 100, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import matplotlib.pyplot as pl" ] }, { "cell_type": "code", "execution_count": 101, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 110, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Hide deprecation warnings\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nC7woDhxV7/7yAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw(G)" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFCCAYAAADGwmVOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFNfXB/AvFqqKIFUpEsUu9hp7if2nYEMRFFiixmgE\nwYZiV7CgRiNRFhXFGgsmKnZFY0GwEgsEVJo0FZFeds/7B2FfkQ6zDe7nefbBnZ299wwuc3bu3KJA\nRASGYRiGYSSujrQDYBiGYZjaiiVhhmEYhpESloQZhmEYRkpYEmYYhmEYKWFJmGEYhmGkhCVhhmEY\nhpESloQZhmEYRkpYEmYYhmEYKWFJmGEYhmGkhCVhhmEYhpESloQZhmEYRkpYEmYYhmEYKWFJmGEY\nhmGkhCVhhmEYhpESloQZhmEYRkpYEmYYhmEYKWFJmGEYhmGkhCVhhmEYhpESloQZhmEYRkpYEmYY\nhmEYKWFJmGEYhmGkhCVhhmEYhpESloQZhmEYRkpYEmYYhmEYKWFJmGEYhmGkpJ60A2CYWicpCTh4\nEHj+HEhNBdTVATMzwNYW0NaWdnTiU1uPm2HKoEBEJO0gGKZWCA4GNm0CAgIKnmdn//9rKioAETBq\nFLBsGdCjh3RiFIfaetwMUwEsCTOMJHh5Ac7OQFZWQdIpjYJCQWLauhWYO1dy8YlLbT1uhqkgloQZ\nRtwKE1FmZsXfo6oq/wmpth43w1QCS8IMI07BwcCgQZVLRIVUVYHAQKB7d87DErvaetwMU0msdzTD\niNOmTQVNsVWRlVXwfnlUW4+bYSqJXQkzjLgkJQHGxkU7IlWWsjIQHS1fvYdr63EzTBWwK2GGEZeD\nB6tfhoICN+VIUm09boapApaEGUZcnj+v3tUgUNA0GxrKTTySUluPm2GqgCVhhhGX1FRuyklJ4aYc\nSamtx80wVcCSMMOIi7o6N+VoaHBTjqTU1uNmmCpgSZhhxMXMrKCDUXWoqAAdO3ITj6SYmYFq43Ez\nTBWwJMww4jJrVvXLIOKmHAl60qkTcnNyqleIHB43w1QFS8IMIy46OgVzIisoVO39CgrA6NFyM0wn\nNjYWNjY2GGNri8hWrSCoakFydtwMUx1snDAjG2rqCju1YOaojIwMbN26Fb/++ivmzJmDFi1a4JiT\nEwKyslAvN7fyBcrJcZeqpn6WGfEghpGmhw+JzM2JlJULHgUNkQUPFZWCbebmBfvJqz17iFRVix5b\neQ9V1YL3yTCBQECHDh0iAwMDmjp1KkVERNDixYvJxMSEnj59WmOPu1S14bPMcI4lYUZ6Ck/SCgpl\nn5gVFOT75ExU44717t271KNHD+rZsyfdvXuXPn36RCNGjKAhQ4bQhw8f/n/HCh53PkAZAGVs2ya9\ng6qOGvb/y0gOS8KMdNS2qyQiouBgIguLgisiFZWSr5QsLAr2k1Hv3r2jqVOnkoGBAR0+fJgEAgH9\n888/1KJFC1q4cCHl5eUVf1MZx50BUCZApwDqBtDSpUslf1DVVRs/ywxn2D1hRvJqwX3SMiUnF9wz\nDA0tmJBCQ6NgOM6sWTJ7zzAtLQ2bNm3C3r17sWDBAjg7O0NNTQ3+/v5wcHDAtm3bYGNjU3YhJRz3\ntaQkTLt8GR/+20VFRQX//vsvmjVrJu5D4kZt/ywz1SftbwFMLWRuXn6zXVnNeRYW0j6CWiM/P5/4\nfD7p6+uTtbU1xcTEEFHB/WA3NzcyNDSk4Gpcuaenp5Oenh4BED0cHBy4Cl/82GeZqSZ2JcxIFlth\nR27cunULjo6OUFNTw/bt29GjRw8AwJcvX2BtbY2PHz/i9OnT0NXVrVY9e/fuxZw5c0TP69Spgxcv\nXqBNmzbVKlfs2GeZ4QAbJ8xIFlthR+ZFRETA3Nwctra2WLZsGe7cuSNKwOHh4ejduzeaNm2KGzdu\nVDsBA4CdnR1MTU1Fz4VCIVxdXatdrtixzzLDAZaEGcliK+zIrNTUVLi4uKB3797o2bMnXr16hSlT\npkDhv8lGLl68iH79+mHhwoXw8vKCoqIiJ/XWr18fGzduLLLtzJkzePDgASfliw37LDMcYEmYkSy2\nwo7Myc/Ph5eXF1q3bo3Pnz/jn3/+wbJly6D83/zPRAR3d3c4ODjg7Nmz+PHHHzmPYeLEiaKr7UJL\nliyBrN0ty8vLw9u3bxEYGIiYFy+4KZR9lmu1etIOgKllOFphJywpCbqfP6Nx48aclFdbXblyBU5O\nTtDW1salS5fQuXPnIq9nZGTAzs4Ob9++RVBQEAwMDMQSh4KCAjw8PDBkyBDRttu3byMgIACjR48W\nS50l+fLlC6KjoxEVFYWoqCjRvwt/JiUlQV9fH0ZGRtj0+TMMuaiUrRZVq7EkzEiWmRlw+nS1mvEy\nAXg/fIjf9PUxefJk8Hg89O/fX9RsypTv9evXcHZ2RlhYGLZs2YLx48cX+/29e/cOEyZMQOfOnXH7\n9m3RlbG4DB48GCNHjsSlS5dE25YuXYoRI0agbt261S5fKBQiMTGx1AQbHR2N3NxcGBsbw9jYGEZG\nRjA2NsbYsWNF/27atCnq1fvvtLl5M7BqVfWapNlqUbUe6x3NSBYHPUqzABgBorGlAGBqagoej4eZ\nM2dy0lmopvr48SPWrFmDY8eOYenSpfj555+hpKRUbL8bN25g+vTpWLZsGRYsWCCxLzhPnz5Fly5d\nimzz9fUtfwwygOzsbMTExJSaYGNjY6Gurl4kwRb+LPy3pqZmxY+V9Y5mOMCSMCN5FhaAv3/BaMlK\nEgDwBzCplNfr1auHcePGgcfjcXYFVRPk5eVhz5492LBhAyZPnozVq1dDu4QTPxFh586dcHd3x9Gj\nR4s0D0vKjBkzcOTIEdFzIyMjvH79GllZWaUm2KioKKSkpMDAwKBYgi38aWhoCBUVFW6DrcZnGQoK\ngLl5QcsQU2uxJMxIXjVmGRKqqGC/jQ3WX7qEqKioMvc1MDCAra0t7Ozs0Lx586rFKueICBcuXICz\nszOMjY3h6emJ9u3bl7hvdnY25syZg6dPn8Lf31+iv7P8/Hy8f/8e0dHRCA4OhouLCwSC/18MUVFR\nESoqKqUmWGNjY+jq6kr+SxebMYupJpaEGenw8gKcnSt38lJVBbZuBebOhVAoxPXr1+Ht7Q1/f3/k\n5eWV+jYFBQUMGzYMPB4P48ePL7H5tSb6559/4OTkhJiYGGzbtg2jRo0qtak1NjYWFhYW+O677+Dj\n4wM1NTVOY8nIyCj1CjY6Ohrx8fHQ0tISJdaIiAg8evRI9H5NTU28efMG6hx17ONUNT/LTO3GkjAj\nPYUnr6ysMpvzBADqqKpCoZSTVnJyMg4fPgw+n49Xr16VWWWTJk1gY2MDHo+Hdu3aVfcIZFJSUhLc\n3Nxw5swZuLm5Yfbs2ahfv36p+9+9exdTpkzBggULsHjx4krf/yUiJCcnl9lUnJGRASMjo1KvZA0M\nDIqMO05OTkaLFi2QlpYm2ubq6or169dX/hciCRX8LENBoaAzFkvAzH9YEmakKyQE2LQJuHix4ASV\nlSV6KROAipISbjdogC/z5mHcmjVlFkVEuH//Pvh8Pk6cOIHMcq5M+vTpAwcHB0yePBkNGjTg4mik\nKicnB7/++is8PDxgbW2NlStXQlNTs8z37N27F25ubvD19cXIkSNL3Cc3NxexsbFlXsmqqamV2VSs\nra1d6eS+bt06uLm5iZ6rqKggMjIS+vr6lSpHYsr4LENFpSA5jx4NLFvGmqAZEZaEGdlQwgo7v92+\njfZbtkDJwABTp05FeHh4hYfJfPnyBcePHwefz0dwcHCZ+zZs2BDTpk0Dj8dD9+7d5W6oExHh7Nmz\ncHFxQfv27bFlyxa0bt26zPfk5uZiwYIFuH37Nvz8/FC/fv1SE2zh2NiSEmzh1a04vsSkp6ejZcuW\nSExMFG2bM2cOvLy8OK+LU3K4ShYjPSwJMzJr1apVyMnJgbu7O8zNzdGvXz8sWrSo0uU8e/YMPj4+\nOHz4MD5//lzmvmZmZuDxeLCysir3KlIWPH78GE5OTvj06RM8PT0xbNiwIq8LhUIkJCQUSayvXr3C\nuXPnkJ+fDwUFBQgEglITbLGxsRK2Z88ezJs3T/S8bt26ePnyJVq1aiWVeBiGaywJMzLr9u3bcHZ2\nxsOHD/Hq1SsMHDgQ4eHhVZ4lKysrC2fPngWfz8fNmzfL3FdJSQkTJ04Ej8fDwIEDUaeObM3wGh8f\nD1dXV1y8eBHz5s1Dz549izQZfz02VkNDQ5RQFRUVcfHiRYwYMQIuLi5o3rx55cbGSlheXh7atWuH\niIgI0bZJkybhjz/+kGJUDMMdloQZmZWTkwNtbW1ER0ejcePG4PF40NbWxqZNm6pddkREBPbv348D\nBw4gISGhzH1btGgBe3t7zJo1S6L3I4kInz59KtI0HBERgRs3biAsLAyKiorIy8uDoaFhqVeyX4+N\nPXToEJydnbFv3z5MmDBBYsdRXSdOnIClpWWRbUFBQejZs6eUImIY7rAkzMi0ESNGYO7cuZgwYQJi\nY2PRqVMnPH/+HM2aNeOk/Ly8PAQEBMDb2xsXL16EUCgsdd+6detizJgx4PF4GDVqVLWbaAvHxpZ0\nL7bw3/Xq1RNNNJGXl4eHDx+iVatWcHFxQd++faGnp1fuVXp+fj6cnZ1x4cIF+Pv7lzpOWFYJhUL0\n7NmzyJClQYMG4caNGzJ7Bc8wFcWSMCPTNm/ejNjYWPz6668AClbWSUlJwb59+zivKy4uDgcPHoSP\njw/evn1b5r76+vqiiUBatGhR4j4ZGRllJtj4+Hjo6OiUei/WyMgI6urqCAoKgqOjI7Kzs7Fjxw4M\nGDCgwsf04cMHTJ06FYqKijh69Cg05HSxgGvXrmH48OFFtgUEBJTao5th5AVLwoxMCwkJwcyZM/Hi\nv2XjUlJS0KpVK9y5cwdt2rQRS51CoRA3b94En8/HmTNnkJubW+b+HTp0QKdOnaCuro64uDhRss3M\nzCwzwX47NvZbMTExWLZsGW7evIkNGzbAxsamUvemnz17BnNzc0yZMgUbNmyQ+yk8f/jhB1y9elX0\nvFOnTnj8+LHM3a9nmEohhpFh+fn5pKGhQe/fvxdt27x5M1lYWIi13pycHIqMjKSzZ8/S9OnTSUdH\nhwCU+VBVVaUxY8bQ0aNHKTExkYRCYZXqTk9PJzc3N9LU1KQVK1ZQWlpapcs4fvw4aWlp0bFjx6oU\ngyx69OhRsd+5n5+ftMNimGphV8KMzLOwsMCkSZMwffp0AAW9nFu1aoU//vgDvXv3rlKZqampJTYR\nF/5MTk4WjY0tvCdLRHj69CkCAwOR9fVEDCXo1asXeDwepk6dioYNG1YoJqFQCD8/PyxfvhwDBgyA\nu7s7jIyMKnVcAoEAK1aswPHjx3H27Nli6wPLu2nTpuH48eOi582bN8fr169rzVSkTM3DknBNkpRU\nMEnA8+dAaiqgrl6wfq+trVxPErBlyxbcu3cPdnZ2okTZrFkznDlzBrdu3SrWOUcoFCI+Pr7MxdkL\nx8aW1lRc1tjYtLQ0nDx5Enw+Hw8ePCgzdjU1NVhaWoLH46FXr16ldiT6+++/4ejoiLp162L79u3o\n06dPpX9Pnz9/xvTp05GVlYWTJ0+WuEqSvIuMjESbNm2Qn58v2rZz504sWLBAilHVIDX0HCLLWBKu\nCYKDC6bLCwgoeP71+qaF0+WNGlUwXV6PHtKJsRQCgaDYZBLf/vzy5Uux9x05cgTLly/H+PHjoa6u\nXmT/uLg4aGholDkBhYaGBic9a//55x/4+Pjg0KFD+PTpU5n7tm/fHjweDzNmzICWlhYA4O3bt1iy\nZAkePHgAd3d3WFpaVuke56tXrzB+/HiMGjUKW7duLXOuaHk3f/587N69W/RcS0sLkZGRaNSokRSj\nknNyfA6RdywJyzsZnzg+KysL0dHRpV6VxsbGlrkCUml0dHSgo6ODuLg4zJs3DyYmJkXWja3o9JZc\nyc7Oxrlz5+Dt7Y3r16+Xua+ioiLGjh0LRUVFXL58GY6Ojli0aBFUVVWrVPe5c+fg4OCAzZs3Y9as\nWVUqQ54kJiaiRYsWyMjIEG1zc3PDmnLmFmdKIePnkBpPanejmerbs4dIVZWo4E+nYg9V1YL3cUAo\nFFJycjI9evSIzpw5Q9u3bydHR0eysLCg7t27k7a2drmdmar68PDwIKFQSH379qVDhw5xcjxciYyM\nJFdXV2ratGm5x2FoaEjr1q2jmJiYStcjEAhozZo1ZGBgQEFBQWI4Etm1atWqIr9HNTU1io+Pl3ZY\n8kfK5xCGdcySXxJYTDwvL6/IkJuSfpa3UhEXlJWVRevIjh07FsbGxhg+fDh69+6Nv//+GzNmzMDr\n168lfvVbnvz8fFy6dAl8Ph/nz58vskj9t+rUqYNRo0bBwcEBo0ePLrc5OS0tDTNnzkRCQgJOnz4t\nuysLiUlaWhpatGiB5ORk0baffvoJv/32mxSjkjMSOIcw5WNJWF5ZWAD+/mU3H5VGQQEwN0fawYNl\nJti4uLgyZ5DiSpMmTYose/ft/VttbW3ExMSge/fuSEhIKHbP9H//+x8GDx4MR0dHscdaFf/++y/m\nz5+PoKAgKCkpFVkVqCR6enqYNWsW7OzsYGpqWuz1iIgIjB8/Ht9//z127dpVa3sG79q1q0iHrHr1\n6uHVq1do2bKlFKOSIxycQ3D6NPdx1TbSvRBnqiQxkUhZuXJNSN88sgDSElNT8dePunXrkpGREfXv\n359mzJhBy5cvp71791JAQAC9fPmyUmNgW7ZsSc+fPy+2PTQ0lHR0dOjz589c/parLSUlhZycnKhJ\nkybk7u5OWVlZJBAI6ObNm2RlZUVKSkrl/v7Mzc2LlHnp0iXS0dEhLy8vKR2V7MjJySETE5Miv6+p\nU6dKOyz5wME5hJSViZKSpH0kco8lYXnk4VHtP6AMgBZxkGTV1NSoXbt2NHLkSJo9ezZt3LiR/Pz8\n6M6dOxQVFUV5eXmcHfaPP/5I27dvL/G1WbNmkaurK2d1VUdeXh799ttvpKOjQw4ODpSQkFDifp8+\nfaJdu3aRmZlZqb9fa2trIiq4/75582bS19en27dvS/JwZNqRI0eK/c5CQkKkHZbs4+AcQioqRJs3\nS/tI5B5rjpZHM2YAR45Uu5hDAGaWs4+urm6ZTcVcDfWpiJMnT+Lw4cP466+/ir0WHR2NLl264J9/\n/pHq/dHLly/DyckJenp68PT0RKdOncp9DxHh0aNH4PP5OHr0KNLS0kSvaWhooGPHjsjLy0NOTg78\n/f1haGgozkOQK0KhEN26dcPTp09F24YNG1ZkekumBBydQ2BtDRw6VP1yajGWhOXRuHHA+fPVLua8\nggJ+MTEpklS//rc0hvqUJTk5Gaampvjw4UOJE2m4uLggPT0dXl5eEo/t1atXWLRoESIiIrB161aM\nGzeuSl9OMjIy8Mcff8Db2xu5ubk4cuQIRowYgZycHOTk5MDKygo8Hg9mZmZiOAr5dOXKFYwYMaLY\ntm8XfGC+wtE5BGPHAiV8KWYqQarX4UzVWFlVrxnpv4dwxgxpH0mlmZmZ0f3790t87ePHj6SlpUVh\nYWESi+fDhw/0888/k5aWFnl6elJOTg5nZV+8eJH09PTI09OThEIhvX37ltzc3MjAwIB69OhBe/fu\npdTUVM7qk1dCoZCGDBlSpEm6S5cuJBAIpB2a7OLoHEL/3S5hqo4tPyKPzMyA6l6hqqhAQQ6vpoYO\nHVrqZBiamppYtGgRXF1dxR5Hbm4uduzYIVrJ6dWrV3B0dCxzVaSKIiLs2rULtra2OHz4MBwdHaGg\noIDmzZtjzZo1ePfuHdasWYPLly/DyMgIdnZ2uHfvHqiWNmopKCjA3d29yLYnT57g5MmTUopIDnB0\nDkHHjtzEU5tJ+1sAUwW1uGfj+fPnaciQIaW+npGRQc2aNRPb5BVCoZD+/PNPMjU1pVGjRtGLFy84\nLT8rK4tsbW2pY8eOFBkZWe7+CQkJtHnzZmrVqhW1bduWtm3bRkly+P/KhSlTphS5Gv7uu+84bZmo\nUWrxOUTWsCQsr8zNiRQUqvbHo6BAJOalAMUlNTWVGjRoQJmZmaXus2/fPho0aFCVlxIszbNnz2jo\n0KHUtm1bCggI4LRsIqLY2Fjq1asXTZ48mdLT0yv1XqFQSLdv3yYbGxtSV1enyZMn0+XLl2tVk2x4\neDjVq1evSCLevXu3tMOSXbX0HCJrWBKWVw8fVn66ucKHqipRcLC0j6DK+vTpQ9euXSv19by8PGrd\nujVniTIxMZF+/PFH0tHRod27d3M67KrQ3bt3qWnTprRx48Zqf3lISUmhPXv2UJcuXcjY2JjWrFlD\n0dHRHEUq2+bOnVskCevo6NCXL1+kHZZsqsXnEFnCkrA8q6Xzvq5YsYKWL19e5j5nzpyhTp06VetK\nMDs7mzw8PKhJkybk5OREnz59qnJZZfH29iZtbW06f/4852U/evSI5s6dSxoaGjR69Gg6c+YM5ebm\ncl6PrIiPjydVVdUiiXj16tXSDkt21dJziCxhSVjeFf4RldespKBQY/54bty4Qb169SpzH6FQSL17\n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\nMAzD8OT/AKfMz5bitr6QAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw_circular(G)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nrbOwUBdxFCGy1pQpU2jevDlTp04t8LFRUVH4+fmxevVqrly5kmvZbt264e3tzfDhwyusjXpiYqJe\noHMS7b///ht7e3vq1aunT/Xr18/yf4a7YUtLS5KSkgCMjsvumHr16lGjRo2CLTIbNgzx90cp7PyN\np6ca/KeUURTlpIjk+UBrPXeNiotBZK3FTZrg/OgR1VHHU5977z2qv/12wSNrGUR18goIoG7LlupC\nl/SoTrkhIhw9ehRfX1+2bt2qF6bssLKyYvTo0UyaNIn27dsXrI2liIgQHR2dq2iHhYXx6NEj6tat\nayS6TzzxBE899ZRegOvUqVOgicSgoCAcHR2pV68e1apVK/Zri5s6FZMff8SiMOJewPmbskDruWtU\nCmrWrElERIR++++//6aWwWt3nuQW1Skjvq6Hh/qFNni9Bnj06BGbN29m1apVhISE5Hqa1q1b4+3t\nzejRo8s8IEZqaip///13FsHOvG1mZpall5x529HRkSpVKs6C96ioKDw8PHjb3JxXTp1CKcz8TRk5\nD9N67hqPFSkpKUbbBXKUVUivgGfPnsXX15dNmzbx6NGjHKs3MzPjxRdfxNvbu9QCYsTFxeUp2hER\nETg6OmYR7datWxttW1tbl3h7S5OwsDD69+/PkCFDeGX+fJRVq0p8/qYs0MRdo8LzzTff8PDhQ6O8\n48eP07VrV9599112795NXFwcderUYfz48fz73/8GVMdRlz/6iKaLFrEhPp7lwGVU51GvAJ/yzxdk\nJbBehLPx8YyYMoW2ixcz49q1XNvVqFEjJk2axNixY1myZAlDhw4FYMKECSxYsKBQIi8iREZG5jgh\nmbGdlJSURbSbNWtGnz599L3u2rVr5+ids7Jy7do1+vXrx8SJE/XPAd7e6ttY+vwNivLPDzqQZGKC\nedWqRZq/KQser09Wo9KxdOlSFixYQJUqVdDpdPr8vXv3smXLFuLi4rh48SJ2dnZcunSJc+cyRX9c\nsAASE/WOo7oCEcBzqI6j0r/+esdRe4EEnQ7va9fYApzMpk3du3fngw8+oH///lSpUoXVq1fj7+9P\nSEgIiqLg7u6uF35DkpOTuXPnTq6ifffuXaytrbMMjXTv3t1o297evtx5sCxrzp07x8CBA5k1a1aW\ne284f8P69arn0OhoHpmasnTfPj68ehXFYEFSRUAbc9eosMTExFCvXj38/PwYOXKkkbinpKTQvn17\n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\nazQajQPy/+0uB1DWX9+pAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "nx.draw_networkx(G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Kinda cool, but I think yEd might be better for producing a finished graphic." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Export to GraphML\n", "\n", "NetworkX can export to a lot of different formats, but I chose GraphML because yEd also supports it." ] }, { "cell_type": "code", "execution_count": 105, "metadata": { "collapsed": true }, "outputs": [], "source": [ "nx.write_graphml(G, \"course_prerequisites.graphml\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This exported the nodes and edges, but the labels are missing! Google led me to [this blog](https://thirld.com/blog/2012/01/31/making-yed-import-labels-from-graphml-files/) which had some good advice." ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Give nodes labels\n", "for node in G.nodes():\n", " G.node[node]['label'] = node" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Export again\n", "nx.write_graphml(G, \"course_prerequisites.graphml\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The were exported, but yEd still required some tweaking to get them to display. The blog post I linked to earlier explains it (with screenshots!). Here is the critical part:\n", "\n", ">\"We need to map the \"Label\" property imported from the GraphML file onto the internal property that yEd uses for labels. To do this, click Edit, Properties Mapper. Click the little plus sign under Configurations, and then 'New Configuration for Nodes.' Now click the plus sign next to 'Mappings'. If you're lucky, yEd should figure out what you're trying to do, and automatically select the right mapping.\" - [Berzan](https://thirld.com/blog/2012/01/31/making-yed-import-labels-from-graphml-files/)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Finished graph\n", "\n", "Notes:\n", "\n", "- I used yEd's \"hierarchy\" layout.\n", "\n", "- Courses I've already taken are color coded green.\n", "\n", "- There are four groups, representing the courses I intend to take for a given term.\n", "\n", "- A few arrows were repositioned (by hand) to make the group labels easier to read.\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interpretation\n", "\n", "Taking the courses in this order should ensure prerequisites are always satisfied. \n", "\n", "There are a few other interesting takeaways:\n", "\n", "- CSI 2110 is a prerequisite for four courses. Failing to acquire it in the Fall of 2017 will severely screw up my schedule.\n", "\n", "- PSY 4130 and CSI 2911 are not prerequisites for any course, so they can be acquired at any time.\n", "\n", "- MAT 1320 and MAT 1322 are a closed system. I'm a little surprised MAT 1322 is not a prerequisite for anything.\n", "\n", "Also, I should think about how to best distribute my remaining courses. There is a chance of graduating in three terms instead of four if I can find a replacement for CSI4130 and take more courses in Fall 2018 (or over the summer). Reducing to three semesters may require taking less desirable courses but it would save me a lot of time and money. \n", "\n", "If I do end up taking four semesters, I could shift CSI 2911 to a later semester to even the course load. Or I could keep it as it is and plan to work part-time. Scholarships and government grants usually require students to be \"full-time\", so I can't drop below three courses (the minimum for \"full-time\" status at uOttawa).\n", "\n", "## Weaknesses\n", "\n", "The biggest weakness is the lack of definite course/semester availability after Winter 2018. I am just guessing that these courses will be available during these semesters. There are other issues, but this is the main one.\n", "\n", "Data collection was disappointingly manual. The University of Ottawa simply does not provide good access to course information. Scraping is an option, but a frustrating one; the course timetable server is so old that Python's Request library cannot communicate with it [1] and uOttawa's HTML is not easy to parse. Manual collection is feasible, but doesn't scale and is obviously not convenient." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "## Footnotes\n", "\n", "[1] - IRC, the issue I encountered was SSL handshake failure. The newest cipher protocol supported by the server had already been deprecated by Requests. While it was possible to use an older version of Requests, the connection was unreliable. A [similar issue](https://github.com/requests/requests/issues/3833) (similar problem, different website)." ] } ], "metadata": { "kernelspec": { "display_name": "Python [conda root]", "language": "python", "name": "conda-root-py" }, "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.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }