Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems 2016
DOI: 10.1145/2858036.2858252
|View full text |Cite
|
Sign up to set email alerts
|

Programming, Problem Solving, and Self-Awareness

Abstract: More people are learning to code than ever, but most learning opportunities do not explicitly teach the problem solving skills necessary to succeed at open-ended programming problems. In this paper, we present a new approach to impart these skills, consisting of: 1) explicit instruction on programming problem solving, which frames coding as a process of translating mental representations of problems and solutions into source code, 2) a method of visualizing and monitoring progression through six problem solvin… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

1
84
1
2

Year Published

2017
2017
2024
2024

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 173 publications
(88 citation statements)
references
References 49 publications
1
84
1
2
Order By: Relevance
“…For example, if a programmer was proficient in Python, but needed to learn R, they would need to consult numerous learning resources such as documentation, code examples, and training lessons. Unfortunately, current learning resources typically do not take advantage of a programmer's existing knowledge and instead present material as if they were a novice programmer [2]. This style of presentation does not support experienced programmers [3] who are already proficient in one or more languages and harms their ability to learn effectively and efficiently [4].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…For example, if a programmer was proficient in Python, but needed to learn R, they would need to consult numerous learning resources such as documentation, code examples, and training lessons. Unfortunately, current learning resources typically do not take advantage of a programmer's existing knowledge and instead present material as if they were a novice programmer [2]. This style of presentation does not support experienced programmers [3] who are already proficient in one or more languages and harms their ability to learn effectively and efficiently [4].…”
Section: Introductionmentioning
confidence: 99%
“…0 Which one of these correctly subsets the first five rows and the first column of a data frame df and returns the result as a data frame? 0 All of these statements correctly select the column 'c' from a data frame df except 0 Total number of participants who answered correctly in pre-test 2. Difference in the number of participants who answered correctly in pre-test and post-test.…”
mentioning
confidence: 99%
“…Our premise is that when working independently, a developer is left to plan and monitor plan execution while also reasoning about code, retrieving information, and devising design solutions. Novices lack many of these skills, which lessens their ability to be systematic in their reasoning [46], and experts often engage in similar externalization strategies to regulate planning and information persistence during a task [57]. Moreover, prospective memory (their memory for future plans) is faulty, especially as people age, making external memory aids critical to avoid failure [17].…”
Section: Explicit Programming Strategiesmentioning
confidence: 99%
“…To explain these effects, some studies demonstrated that self-regulation strategies, such as monitoring one's work and explicitly evaluating one's progress and use of time, and self-explanation, were associated with greater problem solving success [57,19]. Other studies showed experimentally that explicit training on these general self-regulation strategies [7] or self-regulation strategies specifically related to programming [46], can cause significant increases in task productivity and programming self-efficacy. Other work has explored the possibility of teaching specific problem solving strategies to novice programmers and the challenges that this brings [36].…”
Section: Introductionmentioning
confidence: 99%
“…Essentially, a system could leverage the stage model discussed in our results to keep track of progress and provide strategic advice. Future work could use this model as a starting point for educational strategies in programming, similar to the problem solving strategies introduced by Loksa et al [78].…”
Section: High Failure Rates Regardless Of Annotationmentioning
confidence: 99%