Date of Award


Document Type

Open Access Dissertation

Degree Name

Doctor of Philosophy in Computer Science (PhD)

Administrative Home Department

Department of Computer Science

Advisor 1

Linda Ott

Committee Member 1

Charles Wallace

Committee Member 2

Stefka Hristova

Committee Member 3

Robert Pastel


Learning to program can be a novel experience. The rigidity of programming can be at odds with beginning programmer's existing perceptions, and the concepts can feel entirely unfamiliar. These observations motivated this research, which explores two major questions: What factors influence how novices learn programming? and How can analogy by more appropriately leveraged in programming education?

This dissertation investigates the factors influencing novice programming through multiple methods. The CS1 classroom is observed as a "whole system", with consideration to the factors present in it that can influence the learning process. Learning's cognitive processes are elaborated to ground exploration into specifically learning programming. This includes extensive literature review spanning multiple disciplines. This allows positioning to guide the investigation. The literature survey also contributes to greater understanding of learning cognition within computing education research through its disciplinary depth.

The focus on analogy with the second question is motivated through the factors observed in the first question. Analogy's role in cognition and in education is observed, and the analogical inclinations of technology as a field are showcased. Stigma surrounds the use of analogy in computer science education in spite of these indications. This motivated investigation on how the use of analogy could be better addressed in programming education in order to utilize its value. This research presents a tool for the design of well-formed analogy in programming to answer this question. It also investigates additional forms analogy can take in the classroom setting, proposing relevant cultural forms such as memes can be analogical vehicles that promote learner engagement.

This research presents a strong case for the value of analogy use in the CS1 classroom, and provides a tool to facilitate the design of well-formed analogies. In identifying ways to better leverage analogy in the programming classroom, presenting this research will hopefully contribute to dispelling analogy's "bad reputation" in computing education.

By exploring factors that contribute to the learning process in CS1, this research frames education design as experience design. This motivates methods and considerations from user experience design, and investigates aspects of the "whole system" that can promote or deter a learner's experience.

This dissertation presents findings on understanding the learner's experience in the programming classroom, and how analogy can be used to benefit their learning process.