Undergraduate Students' Experiences in Programming: Difficulties and Obstacles

Programlama dersleri, özellikle bilgisayar eğitimi veren bölümlerde üniversite öğrencilerinin en başarısız olduğu derslerden biri olarak öne çıkmaktadır. Öğrenciler bu dersleri diğer derslere oranla oldukça zor bulduklarını ifade etmektedirler. Bu doğrultuda, üniversite öğrencilerinin programlama derslerindeki başarısızlıklarının nedenlerini ortaya koymak ve programlama sürecinde yaşadıkları zorlukları incelemek amacıyla nitel araştırma yöntemlerinden biri olan fenomenoloji yaklaşımı kullanılmıştır. Bu kapsamda, 2013-2014 yılı güz döneminde Türkiyede bir devlet üniversitesinde İnternet Tabanlı Programlama dersinin laboratuvar etkinlikleri gözlemlenmiş ve bu derse devam eden 12 öğrenci ile görüşme yapılmıştır. Sonuç olarak, öğrencilerin programlama sürecinde yaşadıkları zorluklar programlama bilgisi, programlama becerisi, programın mantığını kavrama ve hata ayıklama olarak belirlenmiştir. Öğrenciler, programlamadaki başarısızlıklarının en büyük nedenlerini pratik eksikliği, algoritma oluşturmama ve bilgi eksikliği olduğunu vurgulamışlardır. Ek olarak, programlama deneyimi yüksek olan öğrencilerin programlama başarılarının ve programlamaya ilişkin öz yeterlilik algılarının yüksek olduğu görülmüştür.

Üniversite Öğrencilerinin Programlama Deneyimleri: Güçlükler ve Engeller

Programming courses become prominent as one of the courses in which undergraduate students are unsuccessful especially in departments which offer computer education. Students often state that these courses are quite difficult compared to other courses. Therefore, a qualitative phenomenological approach was used to reveal the reasons of the failures of the undergraduate students in programming courses and to examine the difficulties they confronted with programming. In this scope, the laboratory practices of the Internet Programming course were observed in fall term of the 2013-2014 academic year in a university at central Anatolia. Interviews were made with 12 undergraduate students taking this course. Finally, the difficulties students experienced in the programming were determined as programming knowledge, programming skills, understanding semantics of the program, and debugging. Students emphasized that the biggest causes of failure in programming languages are lack of practice, not using algorithms and lack of knowledge. In addition, it was seen that the students who had high programming experience possess higher programming success and self-efficacy related to programming.

___

Akpınar, Y., & Altun, A. (2014). Bilgi toplumu okullarında programlama eğitimi gereksinimi. İlköğretim Online (13)1, 1-4.

Ala-Mutka, K. (2004). Problems in learning and teaching programming. Institute of Software Systems, Tampere University of Technology. Altun, A., & Mazman, S. G. (2012). Programlamaya İlişkin Öz Yeterlilik Algısı Ölçeğinin Türkçe Formumun Geçerlilik ve Güvenirlik Çalışması. Eğitimde ve Psikolojide Ölçme ve Değerlendirme Dergisi, Kış 2012, 3(2), 297- 308.

Ambrosio, A. P., Costa, F. M., Almeida, L., Franco, A., & Macedo, J. (2011). Identifying cognitive abilities to improve CS1 outcome. Frontiers in Education Conference (FIE). , 12-15 October. Arabacıoğlu, T., Bülbül, H. İ., & Filiz, A. (2007). Bilgisayar programlama öğretiminde yeni bir yaklaşım. Akademik Bilişim 2007, Kütahya Dumlupınar Üniversitesi.

Aşkar, P., & Davenport, D. (2009). An investigation of factors related to self-efficacy for Java programming among engineering students. The Turkish Online Journal of Educational Technology (TOJET), 8(1). Bednarik, R., & Tukiainen, M. (2004). Visual attention and representation switching in java program debugging: a study using eye movement tracking. In Proceedings of 16th Annual Psychology of Programming Interest Group Workshop (PPIG'04), Institute of Technology Carlow, Ireland, April 5-7, 2004, pp. 159-169.

Bergersen, G. R., & Gustafsson, J. E. (2011). Programming skill, knowledge, and working memory among professional software developers from an investment theory perspective. Journal of Individual Differences, 32(4), 201-209.

Caspersen, M. E. (2007). Educating Novices in the Skills of Programming. (PhD), University of Aarhus Denmark. Cegielski, C. G., & Hall, D. J. (2006). What makes a good programmer? Communications of the ACM, 49(10), 73-75.

Clements, D., & Sarama, J. (2003). Strip mining for gold: research and policy in educational technology – a response to “fool’s gold”. AACE Journal. ISSN: 1551-3696, 11(1), 7–69, Association for the Advancement of Computing in Education, Norfolk, VA, USA. Crescenzi, P., Malizia, A., Verri, M. C., Diaz, P., & Aedo, I. (2012). Integrating algorithm visualization video into a first-year algorithm and data structure course. Educational Technology and Society, 15(2), 115-124.

Creswell, J. W. (2008). Educational research: Planning, conducting, and evaluating quantitative and qualitative research (3rd ed.). Upper Saddle River, New Jersey: Pearson Education, Inc. Creswell, J. W. (2007). Qualitative Inquiry and Research Design: Choosing among five approaches (2nd ed.). Thousand Oaks, CA: Sage. diSessa, A.A., & Abelson, H.(1986). Boxer: A reconstructible computational medium. Communications of the ACM, 29(9), 859–868.

Eryılmaz, S. (2003). Algoritma tasarlama ve programlamaya giriş. Ankara: Detay Yayıncılık. Ferrer-Mico, T., Prats-Fernandez, M. A., & Redo-Sanchez, A. (2012). Impact of Scratch programming on students´ understanding of their own learning process. Procedia - Social and Behavioral Sciences 46 (2012), 1219-1223.

Fessakis, G., Gouli, E., & Mavrodi, E. (2013). Problem solving by 5–6 years old kindergarten children in a computer programming environment: A case study. Computers and Education 63 (2013), 87- 97.

Glesne, C. (2013). Nitel Araştırmaya Giriş (Çeviri Editörleri: Ali Ersoy & Pelin Yalçınoğlu). 2. Baskı. Ankara: Anı Yayıncılık. Hawi, N. (2010). Causal attributions of success and failure made by undergraduate students in an introductory-level computer programming course. Computers and Education 54 (2010), 1127- 1136.

Holvikivi, J. (2010). Conditions for Successful Learning of Programming Skills. In N. Reynolds & M. Turcsányi-Szabó (Eds.), Key Competencies in the Knowledge Society . 324, 155-164.

Springer Berlin Heidelberg. Hwang W.Y., Shadiev, R., Wang C. Y., & Huang, Z. H. (2012). A pilot study of cooperative programming learning behavior and its relationship with students’ learning performance. Computers and Education 58 (2012), 1267–1281.

Jegede, P. O. (2009). Predictors of java programming self–efficacy among engineering students in a Nigerian University. International Journal of Computer Science and Information Security (IJCSIS), 4(2). Jiau, H. C., Chen, J. C., & Su, K. F. (2009). Enhancing self-motivation in learning programming using game-based simulation and metrics. IEEE Transactions on Education, 52(4), 555-562.

Lau, W. W. F., & Yuen, A. H. K. (2009). Exploring the effects of gender and learning styles on computer programming performance: implications for programming pedagogy. British Journal of Educational Technology, 40(4), 696-712.

Lau, W. W. F., & Yuen, A. H. K. (2011). Modeling programming performance: Beyond the influence of learner characteristics. Computers and Education, 57(1), 1202-1213.

Law, K., Lee, V., & Yu, Y. T. (2010). Learning motivation in e-learning facilitated computer programming courses. Computers and Education 55 (2010), 218-228.

Liao, Y. C., & Bright, G. W. (1991). Effects of computer programming on cognitive outcomes: a meta- analysis. Journal of Educational Computing Research, 7(3), 251–266. Mannila, L., Peltomaki, M., & Salakoski, T. (2006). What about a simple language? Analyzing the difficulties in learning to program. Computer Science Education, 16(3), s:211-227.

Papert, S. (1991). Mindstorms: Children, computers and powerful ideas. Athens: Odysseas Publications (in Greek). Patton, M. Q. (1990). Qualitative evaluation and research methods (2nd ed.). Newbury Park, CA: Sage Publications. Rajala, T., Laakso, M.J., Kaila, E., & Salakoski, T. (2008). Effectiveness of program visualization: a case study with the VILLE tool. Journal of Information Technology Education: Innovations in Practice, 2008(7), 15-32.

Robins, A., Rountree, J., & Rountree, N. (2003). Learning and Teaching Programming: A Review and Discussion. Computer Science Education, 13(2), 137-172.

Shaw, R. S. (2012). A study of the relationships among learning styles, participation types, and performance in programming language learning supported by online forums. Computers and Education 58 (2012), 111–120.

Sivasakthi, M., & Rajendran, R. (2011). Learning difficulties of 'object-oriented programming paradigm using Java': students’ perspective. Indian Journal of Science and Technology, 8(4), 983-985.

Sullivan, A., & Bers, M. U. (2012). Gender differences in kindergarteners' robotics and programming achievement. International Journal of Technology and Design Education, 23(3), 691-702.

Tan, P. H., Ting, C. Y., & Ling, S. W. (2009). Learning difficulties in programming courses: Undergraduates’ perspective and perception. 2009 International Conference on Computer Technology and Development, Kota Kinabalu, Malaysia. Utting, I., Cooper, S., Kölling, M., Maloney, J., & Resnick, M. (2010). Alice, Greenfoot, and scratch - a discussion. ACM Transactions on Computing Education, 10(4), 1-11.

Yıldırım, A., & Şimşek, H. (2008). Sosyal Bilimlerde Nitel Araştırma Yöntemleri (6. Baskı), Ankara: Seçkin Yayınevi. Yurdugül, H., & Aşkar, P. (2013). Learning programming, problem solving and gender: A longitudinal study. Procedia - Social and Behavioral Sciences, 83, 605-610.

Ziatdinov, R., & Musa, S. (2012). Rapid mental computation system as a tool for algorithmic thinking of elementary school students development. European Researcher, 25(7), 1105-1110.