You are on page 1of 6

Where Exactly Are the Difficulties in Reasoning Logically about

Code? Experimentation with an Online System


Michelle Cook, Jason O. Hallstrom Tim Schwab, Yu-Shan Sun,
Megan Fowler Comp. & Elec. Eng. and CS Murali Sitaraman
College of Education Florida Atlantic University School of Computing
Clemson University Boca Raton, FL 33431, USA Clemson University
Clemson, SC 29634, USA jhallstrom@fau.edu Clemson, SC 29634, USA
{mcook, mefowle}@clemson.edu {tschwab,yushans,murali}@clemson.edu
Joseph E. Hollingsworth
Computer Science
Indiana University Southeast
New Albany IN 47150, USA
jholly@ius.edu

ABSTRACT about Code? Experimentation with an Online System. In


CS students can typically reason about what a piece of code Proceedings of 23rd Annual ACM Conference on Innovation and
does on specific inputs. While this is a useful starting point, Technology in Computer Science Education (ITiCSE’18). ACM,
graduates must also be able to logically analyze, comprehend, and New York, NY, USA, 6 pages.
predict the behavior of their code in more general terms, no matter https://doi.org/10.1145/3197091.3197133
what the inputs are. Results of data collection and analysis from
an online educational system show it can help to pinpoint the 1 INTRODUCTION
difficulties in doing this for individual students and groups, and to The best programmers can often state in abstract terms what a
partition the groups in terms of their difficulties so that piece of code does, i.e., predict the behavior of a piece of code,
instructional interventions may be better targeted. Unlike without actually running the code on specific inputs. Clearly, this
traditional debugging, this online system helps reveal difficulties reasoning is more difficult than being able to say what the code
in reasoning in more general terms because it is equipped with a will do on particular inputs, though that is a good starting point.
verification engine. The long-term goal of this research—and a central goal of
undergraduate computing education—is to understand the exact
CCS CONCEPTS difficulties students face, and to help students reason rigorously
• Applied computing → Computer-assisted instruction and logically—about the behavioral correctness on all valid
inputs—for the software they write and maintain. Educators have
• Theory of computation → Program reasoning
much experience in achieving this objective manually on a per-
• Social and professional topics → Computational thinking student basis, an effort that is time intensive and is often not
KEYWORDS possible to offer for large classes of students given typical resource
shortages. The objective of this research and experimentation is
Activities, correctness, logic, reasoning, online system, tool
to understand where automation may be beneficial.
ACM Reference Format:
At the time of submission, we have developed versions of an
Michelle Cook, Megan Fowler, Jason O. Hallstrom, Joseph E. online system with different interfaces, and associated reasoning
Hollingsworth, Tim Schwab, Yu-Shan Sun, and Murali Sitaraman. activities that range from traditional constructs to ones involving
2018. Where Exactly Are the Difficulties in Reasoning Logically objects and calls to operations with pre- and post-conditions. Over
_______________________________ a period of two years, two institutions (with a few more joining
Permission to make digital or hard copies of all or part of this work for personal or this term), three different courses, nine sections, five instructors,
classroom use is granted without fee provided that copies are not made or distributed and over 400 students have been involved in the experiments. The
for profit or commercial advantage and that copies bear this notice and the full
citation on the first page. Copyrights for components of this work owned by others system has been used to identify specific difficulties and provide
than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, feedback and has been used with and without accompanying
or republish, to post on servers or to redistribute to lists, requires prior specific instruction on reasoning. The benefits have been assessed by
permission and/or a fee. Request permissions from Permissions@acm.org.
ITiCSE '18, July 2–4, 2018, Larnaca, Cyprus
evaluating performance objectively through data collected by the
© 2018 Association for Computing Machinery. system, attitudinal surveys, pre- and post-reasoning exercises,
ACM ISBN 978-1-4503-5707-4/18/07...$15.00 exam questions, and think-alouds with a subset of students. We
https://doi.org/10.1145/3197091.3197133 have done significant automated and subjective analysis, and

39
ITiCSE’18, July 2–4, 2018, Larnaca, Cyprus M. Cook et al.

more analysis and tool improvements are in progress. To make The reasoning system and experiment design have been guided
the presentation of this paper meaningful within the page limits, by related prior research [[35]], which discusses methods to
we restrict the focus of this paper to one experiment using the decrease intrinsic cognitive load (e.g., a sequence of simple to
simplest possible examples and discuss some findings in that complex tasks), decrease extrinsic cognitive load (e.g.,
context to show the potential of the approach. segmentation, contiguity, and signaling), and promote germane
Spohrer and Soloway have noted the difficulties novice students cognitive load (e.g., expectancy-driven models and sub-goaling).
face in reasoning about compositions of statements, even as these The system allows educators to create custom activities that
students seem to understand individual programming constructs address obstacles specific to their students. It is flexible enough to
[[29]]—so we have begun our experimentation at this level of accommodate activities targeting a variety of concepts [[15], [32]]
complexity. For example, over 50% of students deem the following and misconceptions (e.g., [[19]]) at varying levels of Bloom’s
code to be correct in an assessment exercise in a junior-level taxonomy [[7]]. Due to space limitations, this paper focuses on
software engineering course in multiple offerings: activities under the category of “correct evaluation of simple, self-
int max (int i, int j) { referential and compound assignment operators” in [[21]], which
max = i + j; includes activities for each “learning objective.”
if (i > j) { max = max – j; } The left side of the user interface shown in Figure 1 contains an
if (j > i) { max = max – i; } activity and reference material—scaffolding for a beginner. For
return max; } example, it may include a list of all available relational operators,
The error in the code is subtle. It is not correct when i = j (even or note that “:=” is the assignment operator. (We reserve “=” for
ignoring overflow/underflow errors). When the exercise is given logical equality, and this distinction appears to pose no problems
on a quiz or on an exam, and a student deems it correct, a plausible for our students.) The right side of the interface contains the
conclusion is that the student overlooked the case when i = j. activity and a button used to check correctness.
Alternatively, when a student deems the code incorrect, a We note that while Java was the programming language used in
plausible conclusion is that the student understood the error. Such the course, the slightly different language used in the presented
educator conclusions are suspect unless students are asked to code appeared to pose no problems at all for students, as indicated
show detailed steps for their answers, and those steps are by their post surveys. The reasoning does require an
evaluated carefully to give feedback [[5]]. Even assuming students understanding of two “non-programming” or logical ideas
have a proper notion of correctness (which itself is questionable described next and explained easily.
[[20]]), what if the students who deemed the code incorrect (the
expected answer) did so because they did not understand the
effect of this sequence of assignment statements?
max = i + j;
max = max – j;
While the larger objective is to improve the logical reasoning
abilities of learners, the system and experiment described in this
paper aim to understand the specific obstacles individuals or
groups of students face in generalizing their reasoning from
specific inputs. The question is important because unless we
understand these specific obstacles, it is hard to provide effective
Figure 1: Simple First Reasoning Activity Using Constants
help. When class sizes are large, some automation is critical.
This paper is focused on learning obstacles associated with code The student’s task is to trace the given code and complete the
composition; the obstacles are language-independent and logical Confirm assertion (where “=” means equals, as in logic). The
in nature. To achieve the objectives, we have built a novel online student can only change /* expression */ in the assertion,
system that is supported by the freely available RESOLVE which should not be confused with an assert statement; nothing
verification engine to help beginners reason about code [[9], [28]]. is executed. The system is robust enough to detect and prevent
Unlike debugging, the verification engine makes it possible to trivial answers, such as “Confirm K = K”. When an answer is
learn to reason about code without assuming particular input wrong, either the activity is repeated or a follow-up activity is
values. It offers a class of learner activities and directed logical given to pinpoint obstacles in the student’s reasoning. While
feedback not otherwise possible with standard IDEs. Since correct learners can run code on specific inputs and check answers with
answers do not have to be computed to check learner answers, the test-based systems (e.g., [[21],[33]]), the present system allows
engine forms the basis for a powerful pedagogical agent and reasoning over all inputs with the aid of a verification engine.
allows learner activities to be created easily. The example activity below contains a composition of self-
referential assignments and asks students to state the values of I
2 ONLINE REASONING SYSTEM and J in terms of the input values. These initial input values are
remembered to be #I and #J, respectively, at the line marked
Working memory load, also known as cognitive load [[31]], is
Remember. (This information appears in the Reference Material
implicated as a major impediment to constructivist learning [[8]].

40
Where Exactly Are the Difficulties in Reasoning Logically ... ITiCSE’18, July 2–4, 2018, Larnaca, Cyprus

on the screen; it is not shown here. Note that it is also possible to The reasoning system has been designed to provide feedback that
use extra variables to hold initial values and not use Remember.) is immediate [[4], [24]] and reduces cognitive load [[25]]. Such
feedback prevents learners from floundering and can lead to the
same level of learning in less time. If corrected immediately,
students may not encode incorrect “knowledge” into memory
[[3]].

3 EXPERIMENTAL SETUP
The experiment was conducted in laboratory sections associated
Figure 2: Reasoning Activity 3
with a second-year course on software development that
Instead of stating concrete values of I and J at the end of the code emphasizes software engineering principles; it is taught in Java.
for specific inputs, students now have to state the values Course details may be found in [[12], [16]]. The course description
symbolically, in terms of the initial values, namely #I and #J. We includes specification and reasoning among the topics covered. It
want students to understand and be able to explain that the code is required for all CS majors. No formal instruction was given on
swaps the values of I and J (ignoring overflows, for now). The reasoning before the experiment, so the tool was the first
(expected) correct answers are given below. introduction to the topic, including use of Remember and
Confirm I = #J; -- Can only edit the RHS Confirm constructs. Students were allowed to ask the TAs for
Confirm J = #I; -- Can only edit the RHS help, though few took advantage. The students were not time-
The reasoning system will attempt to confirm the answers using constrained. They took from 20 minutes to an hour to complete
the verification engine. In case of legitimate claims, such as the all the activities.
ones below, it will agree that the stated, logically equivalent The experiment was conducted in the fall of 2016, and benefitted
answers are indeed correct. from a piloting of the ideas the year before. There were five
Confirm I = #I + #J - #I; laboratory sections for the course, each with 20-25 students. There
Confirm J = #I + #J - #J; was a browser issue in the first lab section, so we did not use any
As noted earlier, the system is robust enough to reject trivial of the data from that section in our analysis. Eighty-eight students
answers, such as the ones below, though they are logically correct. in the other four lab sections participated.
Confirm I = I;
Confirm J = J; 4 QUANTITATIVE DATA ANALYSIS
Syntactically meaningless answers are also rejected:
Reasoning activities for this experiment were organized as
Confirm I = I +-;
follows. The first two were introductory activities that
Confirm J = $J;
familiarized students with basic concepts. Of the next eight, three
We discuss Activity 3 in some detail to motivate the ideas. To
involved assignment statements, three involved if-then
pinpoint the learning obstacles, follow-on activities are given. For
statements, and two involved while loops. We discuss in detail the
example, follow-on Activity 3a (not shown) has shorter code and
analysis of student responses for Activity 3. No demographic
eliminates the last assignment statement, leaving only two
analysis is reported because the sample sizes are small, and in
statements to be traced. If the student cannot answer this
these small samples, we did not notice any appreciable
simplified version, Activity 3b is given. It is the same as Activity
differences.
3a, except that it asks the student to assert the values after each
statement. This mirrors a typical step-by-step approach to identify 4.1 Student Performance on Activity 3
where, specifically, the student is encountering an obstacle. Figure
3 shows a screenshot that captures Activity 3b, a student response, Activity 3 (Figure 2) consisted of three follow-up activities (3a,
and the system response, highlighting (in red) which part of the 3aa, and 3b), as shown in Figure 4. Once a syntactically correct
answer is incorrect. answer was entered, those who answered it correctly progressed
The example illustrates several points. Once an obstacle has been to the next activity (along the edge marked with a C). Others went
identified for a specific student or group of students, the instructor to Activity 3a (along the edge marked with an I)
may guide students directly, or the system can guide them. This
guidance is not a part of the experiment in this paper.

Figure 4: Students Answering 3 Correctly and Incorrectly


Eighty-eight students attempted Activity 3, with 31 correctly
entering the assertions I = #J and J = #I. Sixty-five percent (or
57 out of 88 students) provided incorrect answers for one or both
Figure 3: Answers and Visual Feedback for Activity 3b

41
ITiCSE’18, July 2–4, 2018, Larnaca, Cyprus M. Cook et al.

of the assertions, and the system moved these students to Activity Recall that students who correctly answered Activity 3a were
3a. Qualitative analysis suggests possible reasons. moved to Activity 3aa (Figure 7, shown with correct student
Activity 3a’s code is shorter. It is identical to Activity 3’s code, responses in green). Activity 3aa is identical to Activity 3a, except
except that the third assignment statement from Activity 3 is that the third assignment statement has been reintroduced,
eliminated. Correct answers for Activity 3a are: I = #I + #J and making 3aa’s executable code identical to the original Activity 3
J = #I. That is, J has the swapped value, but I does not. (Figure 2). The only difference between Activities 3 and 3aa is the
By making the problem simpler and focusing on the first two inclusion of step-by-step Confirm assertions. The motivating idea
assignments, we begin the pinpointing process. We keep track of behind 3aa is to observe how many of the students who
how many students correctly answer this sub-problem, and then demonstrated understanding of 3a (a simplified version of
begin to gauge the level of complexity where different students Activity 3) could now demonstrate an understanding of the entire
begin to encounter insurmountable learning obstacles. Figure 5 three-assignment sequence found in the original Activity 3. The
indicates that 49% of the 57 students who attempted Activity 3a correct expressions for 3aa’s first two Confirms are exactly the
answered it correctly. The system then moved these students to same as for Activity 3a; the last Confirm should be I = #J.
Activity 3aa, and those who answered incorrectly to Activity 3b.

Figure 5: Further Pinpointing with Activity 3a


One additional obstacle pinpointing strategy incorporated into
the system is to guide step-by-step reasoning using Confirm cues
for values of variables at intermediate points. Activity 3b (Figure Figure 7: Activity 3aa Code
3) comprises the same first two assignment statements as Activity The analysis of the data for 3aa (Figure 8) shows that 50% (14/28)
3 and Activity 3a, but now a Confirm is used to cue the student of students were able to answer correctly in one attempt.
for the value of the affected variable after each assignment However, the other 50% took two or more tries at 3aa, indicating
statement. Students who failed to correctly answer Activity 3a are that they had difficulty understanding the fundamental constructs
guided in Activity 3b to tackle the problem at an even finer- of addition/subtraction, assignment, and control flow. The two
grained level. The correct answer for Activity 3b’s first Confirm groups of students–the 14 students from 3aa who took two or
is I = #I + #J, and for the second Confirm is J = #I. more tries, and the 14 students from 3b who took two or more
Figure 6 shows the results of the 29 students who attempted tries–collectively account for 31% (28/88) of the original 88
Activity 3b. They repeated Activity 3b until they succeeded. Fifty- students who attempted the sequence of activities associated with
two percent (15/29) took one attempt to determine the correct Activity 3. Importantly, many CS1 and CS2 instructors have
assertions, while 17% (5/29) took two attempts, and so on. Forty- observed overall course failure rates at this level.
eight percent (14/29) of students took two or more tries at 3b, or
approximately 15% of the original 88 students. At this point, these
15% saw a version of this problem a minimum of four times (in
Activity 3, 3a, and at least two times in 3b). This observation leads
us to believe the following: There is a significant percentage of
students who fail to understand, at a fundamental level, the
computation presented in these activities. To tease out the
difficulties of this particular population, simple manipulation of
integer variables appears to be sufficient.
Figure 8: Subset with Some Obstacles: Activity 3aa

4.2 Activity 6 Analysis with If-Then Statement


Activity 6 (Figure 9) is focused on finding the minimum of three
numbers. Unlike Activity 3, it has no follow-up activities. The
system repeats the activity until the student successfully
determines the correct answer: K <= #I, K <= #J, and K <= #K.

Figure 6: Most Struggling Students: Activity 3b Breakdown

42
Where Exactly Are the Difficulties in Reasoning Logically ... ITiCSE’18, July 2–4, 2018, Larnaca, Cyprus

Figure 12: Attempts on Activities 5–8, with No Follow-Up


Figure 9: If-then-else Activity 6
Activity 6 contains if-then branching and assignment, but no self-
5 QUALITATIVE ANALYSIS
referential assignments. Figure 10 shows the difficulty this A more full-fledged qualitative analysis, necessary for validity, is
presented to students. Surprisingly, 59% of students required two in progress using the methodology such as in [[18]]. This
or more tries at this problem, with 18% requiring more than five subsection contains a summary of the limited initial analysis. The
tries. Only the number of attempts are shown because there were analysis has benefitted from the excellent discourse in [[14]]. It is
no follow-up activities. Using our experience we have designed based on the think-alouds of eight participants, to gain insight
follow-up activities (not shown in this paper) to tease out learning into the cognitive process being used during the activities [[13]].
obstacles for reasoning about if-then and if-then-else branching. Of the eight, four were women, two were African American, and
one was Hispanic. One student had a learning disability.
Since the think-alouds were retrospective, participants were cued
to recall by completing a portion of the activities (Activities 1-3)
again. The interviews were recorded and analyzed using the
constant comparative method [[30]]; student responses were
coded to develop categories. The findings indicate the online
reasoning system helped most students pinpoint their learning
obstacles.
A subset of students who made errors on Activity 3 did seem to
understand the reasoning process, but made algebraic errors only
Figure 10: Activity 6 Breakdown
because they insisted on doing it “in their heads.” Only two of the
4.3 Summary Analysis of Activities 1-8 eight students, when offered, used a sheet of paper. For this group,
a step-by-step process would have been helpful.
Figure 11 illustrates the flow through the first four activities. Another subset of students had a more fundamental
Eighty-eight students attempted them (and possibly follow-up misconception. Their obstacle to reasoning was not revealed in
activities). The figure only shows the percentages of students the automated analysis. These students decided that the second
successfully completing the initial version of each activity. statement that assigned a value to J was not relevant in their
analysis of the value of I at the end of the code (though the third
statement uses J). In other words, to reason about the value of I,
these students crossed out the second statement and transformed
the 3-statement code in Figure 2 to the following:
I := I + J;
I := I – J;
For most of the students, the simplification of the task was
advantageous in working through their obstacles. Their
comments included that it was “less to think about” or “easier to
Figure 11: Student Performance on Activities 1–4 process.” Almost half of the students had this particular
Figure 12 shows the number of attempts for activities 5–8, with misunderstanding and were eventually able to work through it.
no follow-up, for 85 students. Once we understand the best One student relied exclusively on guessing and checking and
approaches (e.g., using cueing), they will be further refined. could not progress beyond Activity 2 within the timeframe of the
To see whether students can learn to generalize their reasoning to meeting.
cover all inputs, we gave a paper-and-pencil final exam question
about assignment compositions six weeks after too usage. Most 6 DISCUSSION AND CONCLUSIONS
students did well, with nearly 80% of the students earning full While we do not have space to report a significant number of
credit on this reasoning question. attitudinal findings, students generally either stated that the
activities were interesting and made them think, or were

43
ITiCSE’18, July 2–4, 2018, Larnaca, Cyprus M. Cook et al.

beneficial for learning. To give an idea of some of the inputs from [9] C. T. Cook, H. Harton, H. Smith, and M. Sitaraman. 2012. Specification
Engineering and Modular Verification Using a Web-Integrated Verifying
students, we discuss a follow-up replication study experiment Compiler. Proc. 34th ICSE, IEEE/ACM, NY, USA, 1379-1382.
conducted at Florida Atlantic University (a Hispanic-serving [10] C. T. Cook, S. Drachova, Y-S. Sun, M. Sitaraman, J. Carver, and J. E.
Hollingsworth. 2013. Specification and Reasoning in SE Projects Using a Web-
institution) in the spring of 2017. The user interface employed a IDE. In Procs. 26th CSEE&T, IEEE, NY, USA.
natural language-like syntax, though the underlying reasoning [11] D. De Bock, J. Deprej, W. van Duren, M. Roelens, and L. Verschaffel. 2011.
activities were the same, and the tool usage was preceded by Abstract or Concrete Examples in Learning Mathematics? A Replication an
Elaboration of Kaminsky, Stoutsky, and Heckler’s Study. Journal for Research
instruction. A total of 19 students, 10 of whom were female and in Mathematics Education 42, 2, 109-126.
10 of whom were members of a minority group, completed an [12] S. V. Drachova, J. O. Hallstrom, J. E. Hollingsworth, J. Krone, R. Pak, and M.
Sitaraman. 2015. Teaching Mathematical Reasoning Principles for Software
attitudinal survey: 16 found the interface easy to use (3 neutral), Correctness and Its Assessment. ACM Trans. Comput. Education 15, 3, 1-22.
13 (6 neutral) found the learning experience useful, and 10 (8 [13] K. A. Ericsson and H. A. Simon. 1998. How to study thinking in everyday life:
neutral) found it engaging. Contrasting think-aloud protocols with descriptions and explanations of
thinking. Mind, Culture, and Activity 5, 3, 178-186.
The quantitative data analysis in Section 4 illustrates the benefits [14] S. Fitzgerald, B. Simon, and L. Thomas. 2005. Strategies that students use to
of the system and instructional approach, and will provide a basis trace code: an analysis based in grounded theory. ICER '05 ACM, NY, 69-80.
[15] K. Goldman, et al. 2008. Identifying important and difficult concepts in
for classifying obstacles, distinguishing, for example, students introductory computing courses using a Delphi process,” In Procs. 39th
who have trouble reasoning about a single statement from those SIGCSE ’08, ACM, 256-260.
[16] J. O. Hallstrom, C. Hochrine, J. Sorber, and M. Sitaraman. 2014. An ACM 2013
who have trouble only with statement compositions. This is exemplar course integrating fundamentals, languages, and software
accomplished at a fine-grained level, so help can be targeted. engineering. In Procs. 45th SIGCSE '14. ACM, NY, USA, 211-216.
Subsequent analysis differentiates students with difficulties with [17] P. B. Henderson. 2003. Mathematical Reasoning in Software Engineering
Education. Communications of the ACM 46, 9, 45-50.
if-then or if-then-else constructs versus students with difficulties [18] C. D. Hundhausen, J. L. Brown, S. Farley, and D. Skarpas. 2006. A methodology
only when multiple such statements are composed. A junior-level for analyzing the temporal evolution of novice programs based on semantic
components. In Procs. ICER '06. ACM, NY, USA, 59-71.
software engineering course (not discussed in this paper) involves [19] T. Kohn. 2017. Variable Evaluation: An Exploration of Novice Programmers'
component-based projects [[10], [27]] and includes activities with Understanding and Common Misconceptions. In Procs. ACM SIGCSE '17, NY,
objects and operation calls with pre- and post-conditions to USA, 345-350.
[20] Y. B-D. Kolikant. 2005. Students' alternative standards for correctness. In Procs.
understand specific difficulties students have with design-by- First ICER '05. ACM, NY, USA, 37-43.
contract. Examining students’ understanding on particular inputs [21] R. Kumar, C. P. Rose, Y. Wang, M. Joshi, and A. Robinson. 2007. Tutorial
Dialog as Adaptive Collaborative Learning Support. In Procs. Conference on
is unlikely to reveal such distinctions among individuals and Artificial Intelligence in Education: Building Technology Rich Contexts That
groups. Work, IOS Press, 383-390.
Once specific difficulties are pinpointed, the reasons need to be [22] C. M. Lewis. 2014. Exploring variation in students' correct traces of linear
recursion. In Procs. ICER '14. ACM, NY, USA, 67-74.
understood. In some cases, system, scaffolding, or activity [23] C. Li, Z. Dong, R. Untch, Chasteen, and N. Reale. 2011. PeerSpace—An Online
redesign may be helpful. In some others, tutoring along the lines Collaborative Learning Environment for Computer Science Students. In Procs.
11th ICALT, 409-411.
of efforts in [[1], [6], [21], [23], [34]] might be useful. When [24] K. Martinez and M. Eisenhart. 2004. L.E.A.P. – Literature Review of Best
tutoring—manual or automated—is combined with logical Practices in College Physics and Best Practices for Women in College Physics,
January 2004.
reasoning, more effective learning can result. [25] R. Moreno. 2004. Decreasing Cognitive Load for Novice Students: Effects of
Explanatory versus Corrective Feedback in Discovery-Based Multimedia.
ACKNOWLEDGMENTS Instructional Science 32, 99-113.
[26] T. Price, Y. Dong, and D. Lipovac. 2017. iSnap: Towards Intelligent Tutoring in
We thank Emeritus Professor Bruce Weide at Ohio State for his Novice Programming Environments. SIGCSE '17, ACM, NY, 483-488.
contributions to this paper. We also acknowledge US NSF grants [27] A. L. Santos. 2015. Collaborative course project for practicing component-
DUE-1161916, DUE-1609718, and DUE-1611714. based software engineering, In Procs. 15th Koli Calling Conference on
Computing Education Research, ACM, NY, 142-146.
[28] M. Sitaraman, et al. 2011. Building a Push-Button RESOLVE Verifier: Progress
REFERENCES and Challenges. Springer Formal Aspects of Computing 23, 607-626.
[29] J. C. Spohrer, and E. Soloway. 1986. Novice mistakes: are the folk wisdoms
[1] V. Aleven, B. M. McLaren, and J. Sewall. 2009. Scaling Up Programming by
correct? Communications of the ACM 29, 7, 624-632.
Demonstration for Intelligent Tutoring Systems Development: An Open-
[30] A. L. Strauss and J. Corbin. 1998. Basics of qualitative research: Techniques and
Access Web Site for Middle School Mathematics Learning. IEEE Trans. on procedures for developing grounded theory. Sage Publications, Thousand
Learning Technologies 2, 64-78. Oaks, CA.
[2] B. S. Alqadi and J. I. Maletic. 2017. An Empirical Study of Debugging Patterns
[31] J. Sweller, P. Ayres, and S. Kalyuga, 2011. Cognitive load theory. Springer, NY,.
Among Novices Programmers. In Procs. SIGCSE ‘17, ACM, NY, USA, 15-20.
[32] A. E. Tew. 2010. Assessing fundamental introductory computing concept
[3] J. R. Anderson, A. T. Corbett, K. R. Koedinger, and R. Pelletier. 1995. Cognitive knowledge in a language independent manner, Ph.D. Dissertation, Georgia
Tutors: Lessons Learned, The Journal of the Learning Sciences 4, 167-207. Institute of Technology, 146 pages.
[4] R. Azevedo and R. M. Bernard. 1995. A Meta-Analysis of the Effects of
[33] Web-CAT is an advanced automated grading system that can grade students
Feedback in Computer-Based Instruction. Journal of Educational Computing
on how well they test their own code. http://web-cat.org/home
Research 13, 2, 111 – 127. [34] J. B. Wiggins, et al. 2015. JavaTutor: An Intelligent Tutoring System that
[5] N. Brown and A. Altadmri. 2014. Investigating novice programming mistakes: Adapts to Cognitive and Affective States during Computer Programming. In
educator beliefs vs. student data. In Procs. ICER '14. ACM, NY, USA, 43-50.
Procs. SIGCSE ’15, ACM, NY, USA, 599-599.
[6] P. Bhattacharya, L. Tao, B. W. Kai Qian, and E. K. Palmer. 2011. A Cloud-based
[35] P. Wouters, F. Paas, and J. J. G. van Merriënboer. 2008. How to Optimize
Cyberlearning Environment for Introductory Computing Programming Learning from Animated Models: A Review of Guidelines Based on Cognitive
Education. In Procs. 11th ICALT, 12-13. Load. Review of Educational Research.
[7] B. S. Bloom, et al. (Eds.) 1956. Taxonomy of Educational Objectives. The
Classification of Educational Goals, Handbook I: Cognitive Domain. David
McKay Company, Inc., NY, USA.
[8] M. P. Cook. 2006. Visual representations in science education: The influence of
prior knowledge and cognitive load theory on instructional design principles.
Science Education 90, 6, 1073-1091.

44

You might also like