approaches to work together. Their system converts
the students’ visual block code to normalized parse
trees and identifies pairs of students with similar parse
trees. Students continue working on their own code
and if a pair diverges, then the instructor may choose
to put them in different pairs during the same problem
solving activity.
Berland’s approach might be also feasible in Java
and Python programming classes if we used a real-
time version of the Spinoza-style hierarchical clus-
tering for the current problem to identify students
with similar approaches and encourage them to sit to-
gether.
Our work on hierarchical clustering is somewhat
similar to (Merceron and Yacef, 2005) in which they
report on their work on clustering students based on
their mistakes in an on-line educational tool, called
Logic-ITA, for teaching Formal Proof techniques.
The target of this clustering was the students who
tried, but were not able to solve, a collection of prob-
lems. Using a two step clustering technique which
combined k-means and hierarchical clustering, they
were able to form two groups of students based on
this error data. The students in one cluster made
more mistakes than the other and by looking closely
at the sequence of errors they discovered that one
group used a guessing strategy to approach the prob-
lem while the other group got confused and gave up
rapidly. The goal of this clustering was to give the in-
structor an evaluation of the students so based on the
cluster he could explain the problem again or appro-
priately readjust the difficulty of the exercises for the
students in each cluster.
Our research is also related to other research that
focuses on creating collaborative groups, but is con-
cerned with new techniques for forming groups, and
relies on other research into the effectiveness of dif-
ferent group formation strategies. Sadeghi (Sadeghi
and Kardan, 2015) reviews previous work on group
formation. These groups could be homogeneous or
heterogeneous and the groups formation can be based
on many criteria such as previous knowledge level,
learning style, thinking style, personal traits, degree
of interest in the subject and the degree of the motiva-
tion. Bekele’s (Bekele, 2006) work indicates that ho-
mogeneous groups are suited more for achieving par-
ticular educational goals, while heterogeneous groups
tend to be more innovative and creative and hence bet-
ter for open-ended projects.
7 FINAL REMARKS AND
FUTURE WORK
In this paper we have shown that the fine-grained pro-
gramming error data stored in log files of online IDEs
such as Spinoza can be used to extend traditional CS1
pedagogy in several interesting ways. We also spec-
ulated on the possibility of applying machine learn-
ing techniques using this data to obtain more effective
classifications of students based on subtle features of
their programming behavior.
In the future we intend to explore additional ma-
chine learning approaches such as bi-clustering to use
this type of data to gain deeper insights into the way
students solve problems and the kinds of errors they
make while learning to code. We also plan to study
the effectiveness of recitation groups formed using
these methods.
REFERENCES
Abu Deeb, F. and Hickey, T. (2015a). The spinoza code
tutor: faculty poster abstract. Journal of Computing
Sciences in Colleges, 30(6):154–155.
Abu Deeb, F. and Hickey, T. (2015b). Spinoza: the code
tutor.
Abu Deeb, F. and Hickey, T. (2017). Flipping introductory
programming classes using spinoza and agile peda-
gogy. In Frontiers in Education Conference (FIE),
2017 IEEE, pages 1–9. IEEE.
Abu Deeb, F., Kime, K., Torrey, R., and Hickey, T. (2016).
Measuring and visualizing learning with markov mod-
els. In Frontiers in Education Conference (FIE), 2016
IEEE, pages 1–9. IEEE.
Bekele, R. (2006). Computer-assisted learner group forma-
tion based on personality traits.
Berland, M., Davis, D., and Smith, C. P. (2015). Amoeba:
Designing for collaboration in computer science class-
rooms through live learning analytics. International
Journal of Computer-Supported Collaborative Learn-
ing, 10(4):425–447.
Berland, M., Martin, T., Benton, T., Petrick Smith, C., and
Davis, D. (2013). Using learning analytics to under-
stand the learning pathways of novice programmers.
Journal of the Learning Sciences, 22(4):564–599.
Byckling, P. and Sajaniemi, J. (2006). A role-based analy-
sis model for the evaluation of novices’ programming
knowledge development. In Proceedings of the sec-
ond international workshop on Computing education
research, pages 85–96. ACM.
Flieger, J. and Palmer, J. D. (2010). Supporting pair pro-
gramming with javagrinder. Journal of Computing
Sciences in Colleges, 26(2):63–70.
Horwitz, S., Rodger, S. H., Biggers, M., Binkley, D.,
Frantz, C. K., Gundermann, D., Hambrusch, S., Huss-
Lederman, S., Munson, E., Ryder, B., et al. (2009).
CSEDU 2018 - 10th International Conference on Computer Supported Education
36