Session Information
16 SES 11 B, Programming / Computational Thinking
Paper Session
Contribution
Learning programming is difficult (Powers et.al, 2007) and yet arguably the most important skill of a computer science graduate. Without programs computers are useless, especially when most of our day-to-day interactions, whether in healthcare, education or doing a food shop, all involve the use of a different software application (Eranki and Moudgalya, 2015; Jenkins, 2002). Therefore, it is important that as educators we understand the difficulties students have in learning programming so that we can adapt our teaching and assessment practices to help students both understand and enjoy programming.
Programming is a new subject for many of the students who take computer science courses. Dijkstra (1989) argues that learning is a slow and perpetual process of transforming the "novel into the familiar". He goes on to define programming as a "radical novelty" in which the traditional teaching styles are no longer successful. Furthermore, this will be the students first time attempting to program and their first time away from a familiar academic setting with small class sizes where they most probably performed well academically using dependable learning and study skills, (Jenkins, 2002). They are now challenged with a new subject that does not respond to their habitual study approaches, where a single semicolon is the difference between “glorious success and ignominious failure”, (Jenkins, 2002).
There are many accepted reasons as to why learning programming is so problematic. As Gomes and Mendes (2007) point out, these could be because programming demands a high level of abstraction, or that it requires a good knowledge of and ability to problem solve. They also point out, along with Almadzadeh et.al (2011), that given the number of students on undergraduate courses it is impossible to provide an individualised learning environment without increasing inconsistency of information provided to students and yet learning-by-doing is required to learn programming (Daly and Horgan, 2004). Jenkins (2002) argues that although we look for “visual hooks and props” to engage our students we should also identify, or at least consider, the psychology of how students learn and their motivations of choosing a degree in computing to enable us to better address our students’ experiences with learning to program.
This study will consider a first-year Java programming course to determine the learning styles and motivations of students and to analyse the problems encountered when first learning to program. Eranki and Moudgalya (2015) point out that many beginner programmers struggle with basic concepts such as control structures. However, there appears to be a more fundamental issue relating to the syntax of a programming language which students perceive to be bugs of the program. This is problematic as students often cannot get support quickly enough, given the large class sizes, and if they can do not know what they are asking. Therefore, they do not ask for help and the problems continue to build.
The main research questions are:
- What are the learning styles and motivations of the students in a first-year computer science course and does this positively or negatively affect their mark in the first assessment?
- What are the main problems students have when first learning to program?
- Can the identification of student learning styles, motivations and initial programming issues impact on changes to the teaching and assessment practices of lecturers?
- If there are changes in the teaching and assessment practices, then do they have an impact on the students learning of programming?
The answer to these questions will help to provide an understanding of the real issues students face when first introduced to programming and help inform the teaching, delivery and assessment of programming courses.
Method
Expected Outcomes
References
Ahmadzadeh, M., Namvar, S. and Soltani, M. (2011) JavaMarker: A Marking System for Java Programs. International Journal of Computer Applications, Vol. 20, No. 2, pp15-20 Daly, C and Horgan, J.M. (2004) An Automated Learning System for Java Programming. IEEE Transactions on Education, Vol. 47, No. 1, pp10-17 Dijkstra, E.W. (1989) On the Cruelty of Really Teaching Computer Science. Communications of the ACM, Vol.32, No.12, pp1398-1404 Eranki, K.L.N. and Moudgalya, K.M. (2015) Evaluation of Programming Competency using Student Error Patterns. International Conference on Learning and Teaching in Computing and Education, pp34-41 Gomes, A. and Mendes, A.J. (2007) An Environment to Improve Programming Education. International Conference on Computer Systems and Technologies, pp19.1-19.6 Jenkins, T. (2002) On the Difficulty of Learning to Program. In proc. Of the 3rd Annual LTSN_ICS Conference (Loughborough University, UK), The Higher Education Academy, pp53-58 Powers, K., Ecott, S. and Hirshfield, L.M. (2007) Through the Looking Glass: Teaching CS0 with Alice. In ACM SIGCSE Bulletin, Vol. 39, pp213-217
Search the ECER Programme
- Search for keywords and phrases in "Text Search"
- Restrict in which part of the abstracts to search in "Where to search"
- Search for authors and in the respective field.
- For planning your conference attendance you may want to use the conference app, which will be issued some weeks before the conference
- If you are a session chair, best look up your chairing duties in the conference system (Conftool) or the app.