<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Investigate Effectiveness of Code Features in Knowledge Tracing Task on Novice Programming Course.</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Poorvaja Penmetsa</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yang Shi</string-name>
          <email>yshi26@ncsu.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Thomas Price</string-name>
          <email>twprice@ncsu.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>North Carolina State University</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Predicting student performance has been a major task in student modeling. Speci cally, in open-ended domains such as computer science classes, the student submissions contain more information, however they also require more advanced analysis methods to extract this information. Traditional student modeling approaches use knowledge components (KCs) to predict a student's success on speci c practiced skills. These approaches are useful and necessary in helping learning environments like Intelligent Tutoring Systems (ITS) personalize feedback, hints, and identify struggling students. However, when working with programming data, code features provide more information than skill tags representing KCs, and this information is not leveraged by traditional KC models. This work incorporates an implicit representation of KCs into a student model by including features extracted from students' code with data from an undergraduate introductory programming course. This representation is then evaluated by using deep learning predictive models and investigated to see how well they are able to leverage code features to model student knowledge and compare and contrast against other learning models. The study shows a modest, but consistent improvement in models that use time-sequential data with even the simplest code features, implying that these aspects may improve student modelling.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Student Modeling</kwd>
        <kwd>Code Features</kwd>
        <kwd>Knowledge Tracing</kwd>
        <kwd>Knowledge Components</kwd>
        <kwd>LSTM</kwd>
        <kwd>DKT</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Modeling student learning activities can improve their
learning outcome, and automatically achieving this requires the
system to model student's knowledge through tracking
Knowledge Components (KCs) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. A knowledge component is an
acquired concept that a learner uses to accomplish a task [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
An exercise problem may consist of one or a combination of
Copyright ©2021 for this paper by its authors. Use permitted under
Creative Commons License Attribution 4.0 International (CC BY 4.0)
interrelated KCs depending on the domain, while multiple
KCs are usually present in computer science problems
involving programming [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Traditional KC models developed
by domain experts used KCs to represent a student's
knowledge state and are dependent on experts' knowledge [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
Knowledge Tracing (KT) tracks KCs to model students'
knowledge. It is a method of using data from their previous
submissions on di erent problems (features), to predict on
their performances on future problems (labels) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
Historically, student performance is de ned as the academic
performance of a student and KCs are represented with skill IDs
[
        <xref ref-type="bibr" rid="ref11 ref6">11, 6</xref>
        ]. Our work builds data-driven KT models in computer
science (CS) classes, and uses preliminary features from
student code submissions to further tune and optimize standard
KT models, and make predictions on student struggle.
Previous work has used data-driven methods to tune the
parameters of a KT model, for example, Corbett and
Anderson developed LISP tutors [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In their work, they used
a model called Bayesian Knowledge Tracing (BKT) to
monitor a student's changing knowledge state during
programming assignments, and updated an estimate of the student's
learned skills and modelled their knowledge state as
students completed problems. Some recent works optimized
the implementations of BKT, for example, pyBKT [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] uses
expectation maximization to t parameters.
      </p>
      <p>
        This standard BKT model has been advanced by a lot of
newer models such as Deep Knowledge Tracing (DKT) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
Item Di culty E ect Model (KT-IDEM) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], etc., as they
incorporate many di erent factors or use more complex
models structure. Out of these improved models, we use DKT
to serve as a model for our proof of concept, as it is widely
served as a baseline model, and can also integrate student
code to be used as features. Some recent works advanced
DKT by adding more variants in the model [
        <xref ref-type="bibr" rid="ref10 ref9">9, 10</xref>
        ], while
DKT is their base framework.
      </p>
      <p>
        We compare DKT and BKT models in our work, along with
classical deep learning models such as multi-layer perceptron
(MLP) and Long-Short Term Memory (LSTM) to see if code
features improve the ability of KT models, and if it also
has a positive e ect on static or non-time-sequential models.
While skill IDs are hardly available for BKT without manual
labeling, we use the problem or assignment IDs to serve as
the KCs there [
        <xref ref-type="bibr" rid="ref12 ref15">15, 12</xref>
        ]. In DKT's case, the classical model
can already use the IDs as inputs, automatically extracting
knowledge components to be tracked [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>
        While compared in our work, these standard KT models also
have two important limitations when adding code features
in: 1) Need extra accommodation standard KT models use
correctness of KCs as features, while they do not accept code
features with the original structure. There are some recent
works adding textual information in KT models [
        <xref ref-type="bibr" rid="ref14 ref15">15, 14</xref>
        ], but
they work with non-programming data. Some other works
such as PKT [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and Code DKT [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] use programming
data, but they use an hour-long programming code database
(Hour-of-Code) rather than a university course. 2) De
nition of Student Performance: they usually de ne the binary
score as the student's academic performance. However,
students usually have a biased success rate in CS programming
classes (in our case, &gt; 84%), as they are allowed to submit
multiple times and receive feedback immediately. Predicting
on whether students successfully nished the problem is less
meaningful than directly detecting their struggles, as they
may spend a lot of e ort before reaching the goals.
The usage of code features, however, is not rare in general CS
education domain or software engineering domain. Recent
works have used sub-trees [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], Bag of Words [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], and
automatically learned representations [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] for student progress
modeling, grade prediction, or bug discovery tasks. Their
models cannot be directly applied to sequential tasks such
as KT. In our work, we use term frequency-inverse document
frequency (TF-IDF) as the base features for this exploratory
study.
      </p>
      <p>We build preliminary KT models to predict whether novice
university CS students struggle with the integration of code
features. To verify whether code features can improve the
KT models, we experiment with term frequency-inverse
document frequency (TF-IDF), simply to show possible e ects
of the usage of code features in this task, and compare with
other baseline models. To address the aforementioned
limitations of classical KT models, we de ne our research
question as: Do code features improve the ability to model
student struggle pattern in CS in time-sequential and
non-timesequential KT models? Our results suggest that simple code
features coupled with time sequential information have the
potential to improve the KT model performance on student
struggle prediction tasks.</p>
    </sec>
    <sec id="sec-2">
      <title>2. METHODS 2.1 Data</title>
      <p>The data used in this work is called CodeWorkout1 and is
from an undergraduate programming course at a large,
public university in the southeast United States, collected in
Spring 2019. The dataset includes code submissions from 5
assignments, 50 problems, and 413 students, recording
students' attempts in implementing functions in Java. Each
assignment contains 10 problems. A student could submit
any number of attempts for a problem, each attempt's code
is tested against given test cases and given a score from
0 to 1 based on how the code tested. Our statistics show
that not all 413 students work on every problem and most
students eventually get a full score (score = 1).
Assignments are ordered by time stamp, and problems are grouped
1https://pslcdatashop.web.cmu.edu/Project?id=585
in each assignment. Di erent assignments covered di erent
concepts, according to their problem descriptions, and the
complexity of problems increases over time. The dataset
also provides the descriptions of the problems. For example,
early problems include simple concepts such as if
conditions, while a later problem in the same assignment may
ask about nested-if conditions.</p>
      <p>Each assignment is a combination of multiple di erent
concepts, with at least one new concept or advanced concept
being introduced for each assignment. The entire course
covers a wide range of introductory concepts including
conditional statements, loops, strings, and arrays, which
suggests that the knowledge tracing task across all problems is
a non-trivial task.</p>
      <p>The traditional goal of KT is to model knowledge to
predict student performance. Historically, this has been
interpreted as whether or not a student gets a problem correct.
However, in many programming classes, including the one
analyzed here, most students (at least 84% of students in
this dataset) got a full score in the problems they attempt.
So, it is more important to predict student struggle instead
of success. In this programming setting, students can use
multiple attempts and nally succeed. This allows us to
use their number of attempts as a quantitative measure for
their struggle. We de ne a struggling student as someone
who uses more attempts than at least T % of the students.
In order to nd the threshold for T , we explored the data
to nd the division of two relatively separate groups of
students corresponding to those who required a lot of e ort to
complete the problem, and those who didn't struggle. We
found that the 75th percentile of attempts for each problem
is a good division of attempts for most problems. A student
is identi ed as struggling on the problem if they: 1) didn't
pass all the test cases or 2) passed all test cases but took
more than the 75th percentile of attempts for that
particular problem. So a student who scored 1 on a problem might
have also struggled with that problem. The prediction that
a student is struggling is the positive class which is also the
minority class.</p>
    </sec>
    <sec id="sec-3">
      <title>2.2 Feature Representations</title>
      <sec id="sec-3-1">
        <title>2.2.1 TF-IDF Features</title>
        <p>We use simple code features in the form of Term
FrequencyInverse Document Frequency (TF-IDF) weights, a text
analysis technique that represents documents based on its term
frequency. The algorithm uses Term Frequency (TF) to nd
the frequency of a word in a document and normalizes these
weights with Inverse Document Frequency (IDF), the
frequency of the word in the corpus. The nal weights re ect
the importance of terms for a particular document.
This method is more commonly found in work involving
processing text rather than code. However, the novice
programming concepts present in this data can be partially
represented by keywords since they are focused on
familiarizing the students with syntax. More complex concepts,
such as stacks and queues are not part of the course
curriculum. The vocabulary used in our work consists of keywords
in Java such as 'for', 'if', and 'public' that represent some
novice concepts a beginner programming course might
include. Other keywords such as 'throw' and 'extends' are also
included to identify students who might have had a
background in programming. These students may not struggle in
the problems in this course compared with other students.
The models in this experiment predict at the problem level,
so each problem done by a student is represented as one
input. We de ne a corpus as the attempts across all students
who worked on problem p 1 and use the TF-IDF vector
of the last attempt a student made on this problem as code
feature input. In this way, the frequencies of keywords for
each attempt in a problem are calculated and the TF-IDF
weights for the keywords in a student's best attempt are
included in the code features.</p>
        <p>Although other, more complex extraction methods such as
code2vec, ASTNN, and pq-grams exist that extract deeper
code and structural information, we use TF-IDF for this
exploratory study. Our goal is not to use complicated
vectorization approaches, but rather to examine whether a simple
yet e ective approach can represent information before
moving on to more complex approaches. TF-IDF ts this goal
because it not only simpli es model architecture, but it puts
more weight on relatively rarer keywords and may help in
identifying concepts in a problem.</p>
      </sec>
      <sec id="sec-3-2">
        <title>2.2.2 Feature Groups and Usage</title>
        <p>
          This experiment uses 4 sets of models: 1.) Standard BKT
model [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], 2.) DKT models [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] with and without code
features, 3.) MLP based models with and without code
features, and 4.) LSTM-based models with and without
code features. Each model throughout the experiment uses
student struggle on past problems (student performance on
problems 1 to p 1) along with other features to predict on
the labels, or future student performance on problem p. We
extracted the following features:
ID-Label Group: The Problem ID, Assignment ID, Uniform
ID, and the binary label of whether the student struggles in
problems 1 to p 1. Uniform ID groups employs the same
IDs for all problems, with one ID that represents all KCs
and only the label changes.
        </p>
        <p>Attempt-Score Group: The number of attempts the student
made (with any score) and the maximum score achieved on
unit tests on any attempt for problems 1 to p 1.
Code Feature Group: The TF-IDF features of the last
attempt at the problems 1 to p 1 (TF-IDF weights).
Because of the lack of IDs directly representing KCs in the
data, we experiment with three di erent level of IDs
(Problem ID, Assignment ID, Uniform ID). The BKT model uses
the Uniform ID along with the labels of past struggle,
assuming that one ID represents all the KCs in the dataset.
The DKT set of models are compared using features across
the entire ID-Label group.</p>
        <p>The Attempt-Score group is used in the MLP and LSTM
based models. Because of these features (Attempts and
Score), these models are named Attempt-Score MLP
(ASMLP) and Attempt-Score LSTM (AS-LSTM). The Code
Feature group is used for MLP, DKT, and LSTM models.
We refer all models that don't use TF-IDF features as
baseline models.
2.3</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Models</title>
      <p>
        2.3.1 BKT
We used the pyBKT implementation of the standard BKT
model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. This model tracks student knowledge with the
probability that a student has learned a skill. The output
of one state is directly used as the input to the next state,
making it a time-sequential model. For this reason, it
requires inputs to be ordered sequentially. The purpose of this
model in this experiment is to use a standard KT model on
the current data. The input to pyBKT is two dimensional,
including Uniform ID and the label for problem p 1.
2.3.2 DKT
We used the classical DKT implementation used in the Github
repository2, as the standard DKT model with Problem,
Assignment, and Uniform ID as mentioned in the section above.
We added the TF-IDF features to these models to create
DKT with TF-IDF features, and compared those without
TF-IDF features. Our DKT uses an embedding layer to
initialize a random vector representing each input feature and
updates this vector as the model trains. This is followed by
an LSTM and a linear layer. The number of embeddings is
one more than twice the number of questions (50) and the
embedding dimension for D02 is 20, while D01 and D03 is
200. The batch size is 192 with a sequence size of 50, and
learning rate of 0.001. The models with code features take
in two inputs, the TF-IDF weights from code and the ID
associated with the code. DKT with Problem ID and
TFIDF features (D04) and DKT with Uniform ID and TF-IDF
features (D05) use a batch size of 192, a sequence size of 50,
and a learning rate of 0.00001.
      </p>
      <p>The general DKT model is designed to process time series
data (i.e. multiple problem attempts over time) and uses
LSTM networks which use a recurrent structure to serve the
target. When predicting the label for student s and
problem p, the input sequence includes the features for problems
1 to p 1 done by the student s. We used a xed input
sequence length of 50, the maximum number of problems
a student can do, and a padding of 0's when needed. The
padding makes sure that the input is always a xed length.
In addition to ID and/or TF-IDF features, the DKT models
require student representation to measure the student
performance, in this case, student struggle. We refer to this
representation as the struggle feature where the model
identi es the student's struggle on past problems. In both DKT
and BKT sets of models, this struggle feature is binary
because it represents whether or not a student struggled in the
past problems.</p>
      <p>In the DKT models without code features, models
incorporate the struggle feature for problems 1 to p 1 to predict
for problem p. There are three of these models with
problem ID (D01), uniform ID (D02), or assignment ID (D03).
Another two DKT models use code features. Besides the
code features, one uses problem ID, and another one uses
uniform ID. Both models, D04 and D05, combine TF-IDF
vectors (length 63) with the embedded vector of ID and
2https://github.com/seewoo5/KT
struggle (length 20) resulting in the LSTM input dimension
63 + 20 = 83.</p>
      <sec id="sec-4-1">
        <title>2.3.3 Multilayer Perceptron Models</title>
        <p>Attempt and Score MLP (AS-MLP) models with (M02) and
without code features (M01) do not take in a sequential
input and do not explicitly use the output of one state as
input to the next, so they are not time-sequential. However,
neural network structure allows MLP to incorporate code
features. So, the purpose of these models is to compare
the e ect of performance features and code features in a
static model on this struggle prediction task. Both AS-MLP
models share the same architecture, with three linear layers.
M01 uses a batch size of 260, and a learning rate of 0.001
and the AS-MLP model with code features (M02) uses the
same batch size with a learning rate of 0.0001.</p>
        <p>The inputs for the Attempt-Score-MLP models are less
complex than that of any LSTM. Unlike the DKT input
structure, the AS-MLP models don't use an empty sequence to
predict for the 1st problem a student has attempted. In the
AS-MLP model without code features (M01), the input size
is two dimensional, including attempts and maximum score
of problem p 1, while the other MLP model with code
features has an input dimension of 63 + 2 where 63 is the xed
length of TF-IDF code features.</p>
      </sec>
      <sec id="sec-4-2">
        <title>2.3.4 LSTM Models</title>
        <p>We created two Attempt-Score-LSTM (AS-LSTM) models:
AS-LSTM with (L02) and without TF-IDF features (L01).
These models incorporate performance features (attempt
and score) compared to DKT's struggle feature. AS-LSTMs'
input is similar to the DKT input, except that AS-LSTM
doesn't predict on the 1st problem. In L01 both features
represent the student performance on past problems and in
L02, these performance features are appended to the
TFIDF features. So L01 also inputs a two dimensional array,
while L02 inputs a vector sized 63+2. Both AS-LSTM
models share the same architecture of one LSTM layer followed
by a linear layer. L01 uses a learning rate of 0.001 and a
batch size of 260 over 100 epochs. L02 uses a learning rate
of 0.000001 and batch size 260 over 250 epochs.
We used 8:2 split for data, and performed repeated
resampling for AS-MLP, AS-LSTM models, while we use 5 fold
cross validation for DKT and BKT models, reporting the
average AUC/Recall/Precision and F1 scores in the result
section.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>3. RESULTS AND DISCUSSION</title>
      <p>TF-IDF features and time-sequential information. Table 1
shows three pairs of models: D01 and D04, D02 and D05,
M01 and M02, and L01 and L02 which are all identical
except that the latter models (D04, D05, M02, and L02)
include TF-IDF features. Before TF-IDF, the DKT models
are biased towards label 1, while after adding TF-IDF
features, the models are biased towards label 0. So we mainly
use AUC, which is more symmetric to bias towards any class,
to compare these models' performances in this section.
The results in Table 1 show how D04, D05, and L02 can
distinguish between classes slightly better than D01, D02,
or L01. L02 performs slightly better than D04 and D05
maybe due to its non-binary struggle feature. By looking at
the confusion matrices of D04 and D01 in Table 2, it can be
calculated that with TF-IDF, the DKT model is 6.2 times
more likely to mark an at-risk student as needing help than
a non-at-risk student by examining the ratio of FTPP : FT NN .
Without TF-IDF, it's only almost twice as likely. Similarly,
the confusion matrices of D02 and D05 show that D05 is
5.5 times more likely to mark an at-risk student as needing
help while D02 is 3.9 times as likely. Meanwhile, L01 and
L02 have a smaller di erence with L01 at about 4.5 times
likely to mark an at-risk student as needing help while L02
is about 4.7 times as likely.</p>
      <p>
        While it has been an open question whether the addition
of code features would do so, in our experiments, both L02
and D05 have a range of 3% to 6% improvement in their
AUC. For example, Wang et. al. found that a large number
of code features can lead models to over t to the training
data [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. This has likely happened with D05 and L02, their
LSTM input dimensions increased at least 4-fold from D02
and L01 respectively, making it possible that the models
would over t. However, it also shows that the AUC of D05
and L02 still increased, suggesting the models bene ted from
the additional complexity.
      </p>
      <p>For AS-MLP models, M02 did not improve with TF-IDF
features and performed similar to M01 as shown in Table 1.
This suggest that time-sequential information is important
for KT tasks and that TF-IDF features alone cannot improve
model performance.</p>
      <p>The current model performances are not ready for
implementation in real education settings. This modest
performance was predicted because examining the e ect of
TFIDF features in modeling student knowledge is a very di
cult task due to the open-ended nature of the domain and
the wide range of concepts in the dataset. Although the
performances of models with TF-IDF features were modest,
there is still a 3% to 6% increase in AUC of these
models compared to other baselines. This improvement marks
potential for more complex code features.</p>
    </sec>
    <sec id="sec-6">
      <title>3.1 Discussion</title>
      <p>Di culty of Knowledge Tracing for Programming: As
hypothesized, this is a di cult KT task because of the wide
range of concepts covered throughout the course. As the
students progress through the di erent problems and
assignments, new concepts are introduced which the models try to
infer from either through an ID or student code features.
Results across all models in Table 1 show that neither IDs nor
code features are particularly successful in representing or
inferring KCs. Of all the models in the experiment, BKT is
the worst performing model with an AUC of 0.64 which
suggests that this particular de nition for student performance
(labels) may not be the best t with a standard BKT model.
Because there is a lack of tags to directly represent KCs,
we use naive ways to represent them in the 3 DKT models.
D01 treats each problem as a separate concept, D02 treats
each assignment as a separate concept, and D03 treats all
0.33
0.34
0.52
0.74
0.02
0.02
0.07
0.10
0.41
0.44
0.50
0.52
0.01
0.02
0.05
0.00
0.63
0.64
0.69
0.62
0.00
0.00
0.02
0.04
0.00
0.00
0.02
0.00
0.00
0.00
0.00
0.00
0.00
0.00
concepts the same. As shown in Table 1, they all are biased
towards label 1 (struggling student). Further examinations
into D01 - D03 from Table 1 show that that they perform
similarly, with D03 having the best AUC and D02 with the
highest macro F1 score. Because both IDs have similar
results, this suggests that neither is better at representing
concepts.</p>
      <p>
        Why were DKT and the other KT approaches
unsuccessful?: The original DKT work that the D01 code is based on
states that the algorithm can leverage skill or KC tags but
doesn't need them to perform predictions [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Looking at
the results in Table 1, it is clear that the D01 model which
uses problem ID as features and incorporates the number of
attempts in the labels, has mediocre results. The only
difference between the D01 model and the original DKT model
lies in the de nition of student performance. However, there
are other di erences in the data used. The original DKT
work used non-programming data where the problem ids
represented the skills or KCs better. The original work also
uses far more data from online courses than available from a
formal education setting, so there is more data representing
TP = 298
FP = 211
      </p>
      <p>D05</p>
      <p>FN = 578
TP = 2251</p>
      <p>D02
TP = 888
FP = 1124</p>
      <p>
        FN = 220
TP = 1106
each KC. Where the smallest dataset in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] has 4K
students and 200K entries, the data used here has 400 students
and 16K entries (after cleaning). The original work used
each attempt as an entry and in this work, the last attempt
is used. Moreover, students who worked on CodeWorkout
did not all do problems in the same order for an assignment.
This makes it very di cult to predict the feature importance
of a problem based on past problems for all students.
Our results suggest that there is some improvement, but
only for models that use time-sequential information. There
is a 3% - 6% increase in the AUC for LSTM-based
models that use TF-IDF features when compared with their
counterparts that don't use them. Considering the di culty
of this task, this improvement suggests that more complex
models may improve performance more.
      </p>
      <p>When code features are added to static models such as
ASMLP (M02), there is no improvement in performance.
Comparing M02 to the nal time-sequential models, (D04, D05,
L02), there is a 7% to 10% increase in AUC suggesting that
in the presence of time-series data, the impact of code
features is more. However, only one non-time-sequential model
is implemented with code features, so it is not clear if these
results are robust.</p>
    </sec>
    <sec id="sec-7">
      <title>4. LIMITATIONS AND FUTURE WORK</title>
      <p>One limitation in this work is that the vocabulary used for
TF-IDF may not be generalizable to more advanced
curricula. The second limitation is that we only use one type of
non-time-sequential and one type of time-sequential models
to compare code features. So the results may be speci c
to LSTM or MLP based models. In the future, we plan to
work with expert-based features like PQ-grams and
incorporate other models into our experiment.</p>
      <p>In conclusion, in this work, we experimented with
models with and without both simple code features and
timesequential information. The results show that even these
simple code features can a ect model performance and that
time-sequential information is important when using these
features. These experiments mark the potential that code
features have in representing CS KCs over an entire course.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.</given-names>
            <surname>Akram</surname>
          </string-name>
          et al.
          <article-title>Assessment of students' computer science focal knowledge, skills, and abilities in game-based learning environments</article-title>
          .
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>V.</given-names>
            <surname>Aleven</surname>
          </string-name>
          .
          <source>Rule-Based Cognitive Modeling for Intelligent Tutoring Systems</source>
          , pages
          <fpage>33</fpage>
          {
          <fpage>62</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Anderson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Corbett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Koedinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R.</given-names>
            <surname>Pelletier</surname>
          </string-name>
          .
          <article-title>Cognitive tutors: Lessons learned</article-title>
          .
          <source>Journal of the Learning Sciences</source>
          ,
          <volume>4</volume>
          :
          <fpage>167</fpage>
          {
          <fpage>207</fpage>
          , 04
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Badrinath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Pardos</surname>
          </string-name>
          .
          <article-title>pybkt: An accessible python library of bayesian knowledge tracing models</article-title>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Feldon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. J. G.</given-names>
            <surname>Van Merrienboer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yates</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Early</surname>
          </string-name>
          .
          <article-title>Cognitive task analysis</article-title>
          .
          <source>Handbook of Research on Educational Communications and Technology</source>
          , pages
          <volume>577</volume>
          {
          <fpage>593</fpage>
          , 01
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A. T.</given-names>
            <surname>Corbett</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Anderson</surname>
          </string-name>
          .
          <article-title>Knowledge tracing: Modeling the acquisition of procedural knowledge. User Modeling</article-title>
          and
          <string-name>
            <surname>User-Adapted Interaction</surname>
          </string-name>
          ,
          <volume>4</volume>
          :
          <fpage>253</fpage>
          {
          <fpage>278</fpage>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>B.</given-names>
            <surname>Haberman</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Muller</surname>
          </string-name>
          .
          <article-title>Teaching abstraction to novices: Pattern-based and adt-based problem-solving processes</article-title>
          .
          <source>In 2008 38th Annual Frontiers in Education Conference</source>
          , pages
          <fpage>F1C</fpage>
          {
          <article-title>7</article-title>
          . IEEE,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>K.</given-names>
            <surname>Koedinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Corbett</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Perfetti</surname>
          </string-name>
          .
          <article-title>The knowledge-learning-instruction (kli) framework: Toward bridging the science-practice chasm to enhance robust student learning</article-title>
          .
          <source>Cognitive science</source>
          ,
          <volume>36</volume>
          :
          <fpage>757</fpage>
          {
          <fpage>98</fpage>
          , 04
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pandey</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Karypis</surname>
          </string-name>
          .
          <article-title>A self-attentive model for knowledge tracing</article-title>
          .
          <source>CoRR</source>
          , abs/
          <year>1907</year>
          .06837,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pandey</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Srivastava</surname>
          </string-name>
          . Rkt:
          <article-title>Relation-aware self-attention for knowledge tracing</article-title>
          .
          <source>Proceedings of the 29th ACM International Conference on Information Knowledge Management</source>
          ,
          <year>Oct 2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Pardos</surname>
          </string-name>
          and
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>He ernan. Kt-idem: Introducing item di culty to the knowledge tracing model</article-title>
          .
          <source>pages 243{254</source>
          , 01
          <year>1970</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Piech</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bassen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ganguli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sahami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. J.</given-names>
            <surname>Guibas</surname>
          </string-name>
          , and J.
          <string-name>
            <surname>Sohl-Dickstein</surname>
          </string-name>
          .
          <article-title>Deep knowledge tracing</article-title>
          . In C. Cortes,
          <string-name>
            <given-names>N.</given-names>
            <surname>Lawrence</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Sugiyama</surname>
          </string-name>
          , and R. Garnett, editors,
          <source>Advances in Neural Information Processing Systems</source>
          , volume
          <volume>28</volume>
          . Curran Associates, Inc.,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Shah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Marwan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Penmetsa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Price</surname>
          </string-name>
          .
          <article-title>Toward semi-automatic misconception discovery using code embeddings</article-title>
          .
          <source>In LAK21: 11th International Learning Analytics and Knowledge Conference</source>
          , pages
          <volume>606</volume>
          {
          <fpage>612</fpage>
          ,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>D.</given-names>
            <surname>Shin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Yu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kim</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Choi</surname>
          </string-name>
          . SAINT+
          <article-title>: integrating temporal features for ednet correctness prediction</article-title>
          .
          <source>CoRR</source>
          , abs/
          <year>2010</year>
          .12042,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Su</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. H. Q.</given-names>
            <surname>Ding</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Wei</surname>
          </string-name>
          , and
          <string-name>
            <given-names>G.</given-names>
            <surname>Hu</surname>
          </string-name>
          .
          <article-title>Exercise-enhanced sequential modeling for student performance prediction</article-title>
          .
          <source>In AAAI</source>
          , pages
          <volume>2435</volume>
          {
          <fpage>2443</fpage>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sy</surname>
          </string-name>
          , L. Liu, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Piech</surname>
          </string-name>
          .
          <article-title>Deep knowledge tracing on programming exercises</article-title>
          .
          <source>In Proceedings of the Fourth</source>
          (
          <year>2017</year>
          ) ACM Conference on Learning @ Scale, L@S '17, page
          <volume>201</volume>
          {
          <fpage>204</fpage>
          , New York, NY, USA,
          <year>2017</year>
          .
          <article-title>Association for Computing Machinery</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>L.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sy</surname>
          </string-name>
          , L. Liu, and
          <string-name>
            <given-names>C.</given-names>
            <surname>Piech</surname>
          </string-name>
          .
          <article-title>Deep knowledge tracing on programming exercises</article-title>
          .
          <source>pages</source>
          <volume>201</volume>
          {
          <fpage>204</fpage>
          .
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>W.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Rao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Milliken</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Martens</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Barnes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Price</surname>
          </string-name>
          .
          <article-title>Comparing feature engineering approaches to predict complex programming behaviors</article-title>
          .
          <volume>5</volume>
          <fpage>2020</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R.</given-names>
            <surname>Zhi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Price</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Lytle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Dong</surname>
          </string-name>
          , and
          <string-name>
            <given-names>T.</given-names>
            <surname>Barnes</surname>
          </string-name>
          .
          <article-title>Reducing the state space of programming problems through data-driven feature detection</article-title>
          .
          <source>07</source>
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>