Curricular Metrics

Curricular Metrics

The curriculum-based metrics in this toolbox are based upon the graph structure of a curriculum. Specifically, assume curriculum $c$ consists of $n$ courses $\{c_1, \ldots, c_n\}$, and that there are $m$ requisite (prerequisite or co-requsitie) relationships between these courses. A curriculum graph $G_c = (V,E)$ is formed by creating a vertex set $V = \{v_1, \ldots, v_n\}$ (i.e., one vertex for each course) along with an edge set $E = \{e_1, \ldots, e_m\}$, where a directed edge from vertex $v_i$ to $v_j$ is in $E$ if course $c_i$ is a requisite for course $c_j$.

source
blocking_factor(c::Curriculum, course::Int)

The blocking factor associated with course $c_i$ in curriculum $c$ with curriculum graph $G_c = (V,E)$ is defined as:

\[b_c(v_i) = \sum_{v_j \in V} I(v_i,v_j)\]

where $I(v_i,v_j)$ is the indicator function, which is $1$ if $v_i \leadsto v_j$, and $0$ otherwise. Here $v_i \leadsto v_j$ denotes that a directed path from vertex $v_i$ to $v_j$ exists in $G_c$, i.e., there is a requisite pathway from course $c_i$ to $c_j$ in curriculum $c$.

source
blocking_factor(c::Curriculum)

The blocking factor associated with curriculum $c$ is defined as:

\[b(G_c) = \sum_{v_i \in V} b_c(v_i).\]

where $G_c = (V,E)$ is the curriculum graph associated with curriculum $c$.

source
delay_factor(c::Curriculum, course::Int)

The delay factor associated with course $c_k$ in curriculum $c$ with curriculum graph $G_c = (V,E)$ is the number of vertices in the longest path in $G_c$ that passes through $v_k$. If $\#(p)$ denotes the number of vertices in the directed path $p$ in $G_c$, then we can define the delay factor of course $c_k$ as:

\[d_c(v_k) = \max_{i,j,l,m}\left\{\#(v_i \overset{p_l}{\leadsto} v_k \overset{p_m}{\leadsto} v_j)\right\}\]

where $v_i \overset{p}{\leadsto} v_j$ denotes a directed path $p$ in $G_c$ from vertex $v_i$ to $v_j$.

source
delay_factor(c::Curriculum)

The delay factor associated with curriculum $c$ is defined as:

\[d(G_c) = \sum_{v_k \in V} d_c(v_k).\]

where $G_c = (V,E)$ is the curriculum graph associated with curriculum $c$.

source
centrality(c::Curriculum, course::Int)

Consider a curriculum graph $G_c = (V,E)$, and a vertex $v_i \in V$. Furthermore, consider all paths between every pair of vertices $v_j, v_k \in V$ that satisfy the following conditions:

  • $v_i, v_j, v_k$ are distinct, i.e., $v_i \neq v_j, v_i \neq v_k$ and $v_j \neq v_k$;
  • there is a path from $v_j$ to $v_k$ that includes $v_i$, i.e., $v_j \leadsto v_i \leadsto v_k$;
  • $v_j$ has in-degree zero, i.e., $v_j$ is a "source"; and
  • $v_k$ has out-degree zero, i.e., $v_k$ is a "sink".

Let $P_{v_i} = \{p_1, p_2, \ldots\}$ denote the set of all directed paths that satisfy these conditions. Then the centrality of $v_i$ is defined as

\[q(v_i) = \sum_{l=1}^{\left| P_{v_i} \right|} \#(p_l).\]

where $\#(p)$ denotes the number of vertices in the directed path $p$ in $G_c$.

source
centrality(c::Curriculum)

Computes the total centrality associated with all of the courses in curriculum $c$, with curriculum graph $G_c = (V,E)$.

\[q(c) = \sum_{v \in V} q(v).\]
source
complexity(c::Curriculum, course::Int)

The complexity associated with course $c_i$ in curriculum $c$ with curriculum graph $G_c = (V,E)$ is defined as:

\[h_c(v_i) = d_c(v_i) + b_c(v_i)\]

i.e., as a linear combination of the course delay and blocking factors.

source
complexity(c::Curriculum, course::Int)

The complexity associated with curriculum $c$ with curriculum graph $G_c = (V,E)$ is defined as:

\[h(G_c) = \sum_{v \in V} \left(d_c(v) + b_c(v)\right).\]
source

Degree Plan Metrics

... coming soon ...