Understanding what makes programming hard for 1st-year UG Computer Science students at King’s

Project Overview

There are multiple reasons for why students find it difficult to learn programming, including the broad range of skills in programming students bring when joining university and the high levels of feedback required to teach a practical skill such as programming effectively. Challenges in learning programming contribute substantially to the unsatisfactory progression rates of 1st-year UG Computer Science students at King’s. In this project, we aim to make a contribution to improving student learning and progression rates by improving our understanding of what students find challenging and what are the key threshold concepts they have to understand to help them make substantive and lasting progress in programming. As a recent systematic literature survey we have taken demonstrates, there is surprisingly little work on this issue available from the literature. We will therefore use observation and semi-structured interviews with students to gain an insight into what the key obstacles and stepping stones are for our students. As a result of this project, we will be able to make proposals for the mid and long-term change and improvement of the teaching provided to 1st-year Computer-Science undergraduates at King’s with a view of improving grades and progression rates.

Project Progress


We have just published an executive summary of our research and findings (see below).


We have recruited a researcher and are getting started with the work.


Funding has been secured and we are now working to recruit a PhD student to help us do the work.

Project team

Researcher working on the project.

Steffen Zschaler


Co-investigator from the King's Learning Institute



Project funded through King's College London NMS Teaching Fund 2015.


£ 5,000.00


[-] 2019

Lucy Yeomans, Steffen Zschaler, and Kelly Coate: Transformative and Troublesome? Students’ and Professional programmers’ perspectives on difficult concepts in programming. ACM Transactions on Computing Education (TOCE) 19(3), 2019.
[pdf] [http] Refereed Journal Article,  research areas: Teaching
Research contribution:  Writing contribution:

[+] 2016