Thesis (Ph.D.)--University of Washington, 2021Learning to write programs is hard, but many fail to even learn basic program reading skills, such as mentally tracing a program to predict its behavior. This dissertation argues a new theory of programming language knowledge that includes mappings from syntax to semantics and their nested combinations can serve as the basis for more granular tools for learning and more precise assessments of that knowledge. First, I created a new theory of basic programming language knowledge as knowing the mapping from token-level syntax to semantics encoded in a PL interpreter's execution paths, and nested combinations of those paths. I proposed this knowledge can be learned by humans via causal inference, dr...
© ACM, 2014. This is the author's version of the work. It is posted here by permission of ACM for yo...
Why is learning to program so difficult? One difficulty is that learning to program needs the acquis...
Current learning outcomes for introductory programming courses are relatively general, specifying ta...
This paper reports on a replication of earlier studies into a possible hierarchy of programming skil...
As technologies advance and play an increasingly larger role in our lives, computational thinking---...
Novice programming students often fail or drop out of beginner’s programming courses. One reason for...
Instructional designers must consider learners' learning trajectories and design tasks that are neit...
I present a new approach to teaching a graduate-level programming languages course focused on using ...
The way in which novice programmers learn to write code is of considerable interest to computing ed...
Research into the teaching of computer programming seldom examines the profound and abundant knowled...
Research in the field of education has shown that learning a new skill or subject is enhanced when p...
Processing is a high-level programming language that is based on Java, and is known for its abstract...
This working group asserts that Program Comprehension (Prog-Comp) plays a critical part in the proce...
This thesis presents a longitudinal study of novice programmers during their first year learning to ...
It is consensual to consider teaching and learning programming difficult. A lot of work, dedication...
© ACM, 2014. This is the author's version of the work. It is posted here by permission of ACM for yo...
Why is learning to program so difficult? One difficulty is that learning to program needs the acquis...
Current learning outcomes for introductory programming courses are relatively general, specifying ta...
This paper reports on a replication of earlier studies into a possible hierarchy of programming skil...
As technologies advance and play an increasingly larger role in our lives, computational thinking---...
Novice programming students often fail or drop out of beginner’s programming courses. One reason for...
Instructional designers must consider learners' learning trajectories and design tasks that are neit...
I present a new approach to teaching a graduate-level programming languages course focused on using ...
The way in which novice programmers learn to write code is of considerable interest to computing ed...
Research into the teaching of computer programming seldom examines the profound and abundant knowled...
Research in the field of education has shown that learning a new skill or subject is enhanced when p...
Processing is a high-level programming language that is based on Java, and is known for its abstract...
This working group asserts that Program Comprehension (Prog-Comp) plays a critical part in the proce...
This thesis presents a longitudinal study of novice programmers during their first year learning to ...
It is consensual to consider teaching and learning programming difficult. A lot of work, dedication...
© ACM, 2014. This is the author's version of the work. It is posted here by permission of ACM for yo...
Why is learning to program so difficult? One difficulty is that learning to program needs the acquis...
Current learning outcomes for introductory programming courses are relatively general, specifying ta...