Why is programming so difficult to learn?: Patterns of Difficulties Related to Programming Learning Mid-Stage

New software engineers and casual developers are needed in many different areas. However, students face many difficulties while learning the logic of computer programming, frequently failing in university courses. This Ph.D. research aims to identify difficulty patterns related to learning how to program, a crucial part of software engineers training. The research methodology comprises studies that put together results from a systematic literature review and empirical data collected from qualitative and quantitative studies. The difficulties identified will be compiled into a model, which may assist students in sharpening their focus, and teachers in preparing their lessons and teaching material, as well as researchers in employing methods and tools to support learning

[1]  Felienne Hermans,et al.  Do Code Smells Hamper Novice Programming , 2016 .

[2]  Leon E. Winslow,et al.  Programming pedagogy—a psychological overview , 1996, SGCS.

[3]  Harry T Rez's Domains of experience: Investigating relationship processes from three perspectives. , 2013 .

[4]  Romenig da Silva Ribeiro,et al.  Programming web-course analysis: How to introduce computer programming? , 2014, 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

[5]  Marco Aurélio Gerosa,et al.  As Disciplinas de Introdução à Programação na USP: um Estudo Preliminar , 2015 .

[6]  Leônidas de Oliveira Brandão,et al.  Programming web-course analysis: How to introduce computer programming? , 2014, FIE.

[7]  MasonJohn,et al.  Why the high attrition rate for computer science students , 2005 .

[8]  A. Strauss,et al.  Grounded theory , 2017 .

[9]  Ewan D. Tempero,et al.  Understanding the syntax barrier for novices , 2011, ITiCSE '11.

[10]  N. Bolger,et al.  Diary methods: capturing life as it is lived. , 2003, Annual review of psychology.

[11]  Miguel P Caldas,et al.  Research design: qualitative, quantitative, and mixed methods approaches , 2003 .

[12]  Jens Bennedsen,et al.  Failure rates in introductory programming , 2007, SGCS.

[13]  John Mason,et al.  Why the high attrition rate for computer science students: some thoughts and observations , 2005, SGCS.

[14]  Christoph Treude,et al.  Overcoming Open Source Project Entry Barriers with a Portal for Newcomers , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[15]  John W. Creswell,et al.  Designing and Conducting Mixed Methods Research , 2006 .

[16]  M. Crowne,et al.  Why software product startups fail and what to do about it. Evolution of software product development in startup companies , 2002, IEEE International Engineering Management Conference.

[17]  Anthony V. Robins,et al.  My Program is Correct But it Doesn t Run: A Preliminary Investigation of Novice Programmers Problems , 2005, ACE.

[18]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[19]  Marco Aurélio Gerosa,et al.  A systematic literature review on the barriers faced by newcomers to open source software projects , 2015, Inf. Softw. Technol..

[20]  Paolo Ciancarini,et al.  Learning Agile Software Development in High School: An Investigation , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering Companion (ICSE-C).

[21]  Benjamin S. Bloom,et al.  A Taxonomy for Learning, Teaching, and Assessing: A Revision of Bloom's Taxonomy of Educational Objectives , 2000 .