Empirical studies of computer-science learning

Understanding how people learn software modelling and development

As software governs increasingly more of our lives, we need more people to be able to understand software and software development and to actively engage with it. This requires training: we need to teach people how software works, and how to develop it themselves. To do so, we need to understand how people learn software development. What are the key concepts? In what order should they be presented? What are good pedagogic approaches? What are common misconceptions and how can we address them? Does modelling make it easier for people to engage in software development and if so, how?

We have been doing some initial work using qualitative studies to improve our understanding of how students learn programming and software development. More work is needed in this area and I am looking for PhD students to help with this work. I’m particularly interested in extending this work into understanding and supporting students learning modelling and model-driven engineering.


Journal Articles


  1. Transformative and Troublesome? Students’ and Professional programmers’ perspectives on difficult concepts in programming
    Lucy YeomansSteffen Zschaler, and Kelly Coate
    ACM Transactions on Computing Education (TOCE) 19(3), 2019

Technical Reports


  1. Identifying the challenges of learning programming at undergraduate level: A Threshold Concept approach
    Lucy YeomansSteffen Zschaler, and Kelly Coate