Abstract
Teaching and learning programming constitutes a challenge. Although several teaching approaches and programming tools have been proposed, it seems that they have limited impact on classroom practice. This article investigates students’ perceptions on five educational programming environments that are widely used and the features that any introductory programming environment should have. The environments investigated are: BlueJ; objectKarel; Scratch; Alice; and MIT App inventor. These environments were studied and used by experienced undergraduate students of Informatics in the context of a fourth year course. The main features of the environments and the way of presenting them to students, as well as the assignments in the context of the course are presented, in order to help the reader realize what experience was gained by the students that evaluated the environments. Based on a questionnaire filled in by students interesting conclusions were drawn. Students identified the main features of the environments and evaluated them positively, although problems were identified. An introductory programming environment should engage students through the development of programs connected to their interests, such as games and mobile apps. Moreover, an ideal introductory programming environment should provide a simple and user-friendly Graphical User Interface (GUI) that supports visualization of objects and classes, includes a puzzle-like editor for program development, reports simple and understandable error messages in natural language, and finally the ability to execute the program in a step by step manner. Although no single environment fulfils all these features, it seems that the most successful environment is Scratch.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Barnes, D., & Kölling, M. (2004). Objects First with Java: A practical introduction using BlueJ. Englewood Cliffs: Prentice Hall.
Bergin, J., Stehlik, M., Roberts, J., & Pattis, R. (1997). Karel++ - a gentle introduction to the art of object-oriented programming, 2nd edn. New York: John Wiley and Sons.
Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini-languages: a way to learn programming principles. International Journal of Education and Information Technologies, 2, 65–83.
Buck, D., & Stucki, D. (2001). JKarelRobot: a case study in supporting levels of cognitive development in the computer science curriculum. ACM SIGCSE Bulletin, 33(1), 16–20.
Cooper, S., Dann, W., & Pausch, R. (2003). Teaching objects-first in introductory computer science. ACM SIGCSE Bulletin, 35(1), 191–195.
Deek, F., & McHugh, J. (1998). A survey and critical analysis of tools for learning programming. Journal of Computer Science Education, 8(2), 130–178.
Georgantaki, S., & Retalis, S. (2007). Using educational tools for teaching object oriented design and programming. Journal of Information Technology Impact, 7(2), 111–130.
Green, T. R. G., & Petre, M. (1996). Usability analysis of visual programming environments: a ‘cognitive dimensions’ framework. Journal of Visual Languages & Computing, 7(2), 131–174.
Gross, P., & Powers, K. (2005). Evaluating assessments of novice programming environments. In Proceedings of the first international workshop on Computing education research, 99–110.
Guzdial, M. (2004). Programming environments for novices. In Computer science education research, 2004, 127–154.
Kelleher, C., & Pausch, R. (2005). Lowering the barriers to programming: a taxonomy of programming environments and languages for novice programmers. ACM Computing Surveys (CSUR), 37(2), 83–137.
Kölling, M., & Rosenberg, J. (2001). Guidelines for teaching object orientation with Java. In Proceedings of the 6th annual conference on Innovation and technology in computer science education (ITiCSE '01). ACM, New York, NY, USA, 33–36.
Kölling, M., Quig, B., Patterson, A., & Rosenberg, J. (2003). The BlueJ system and its pedagogy. Computer Science Education, Special issue on Learning and Teaching Object Technology, 13(4), 249–268.
Maloney, J., Resnick, M., Rusk, N., Silverman, B., & Eastmond, E. (2010). The Scratch Programming Language and Environment. Trans. Comput. Educ. 10, 4, Article 16 (November 2010), 15 pages.
McIver, L. (2002). Evaluating languages and environments for novice programmers. In Fourteenth Annual Workshop of the Psychology of Programming Interest Group (PPIG 2002), Brunel University, Middlesex, UK.
Miller, P., Pane, J., Meter, G., & Vorthmann, S. (1994). Evolution of novice programming environments: τhe structure editors of Carnegie Mellon University. Interactive Learning Environments, 4(2), 140–158.
Papadakis, S., Kalogiannakis, M., Orfanakis, V., & Zaranis, N. (2014). Novice Programming Environments. Scratch & App Inventor: a first comparison. In H. M. Fardoun & J. A. Gallud (Eds.), Proceedings of the 2014 Workshop on Interaction Design in Educational Environments (IDEE '14) (p. 1). New York: ACM. 7 pages.
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., Devlin, M., & Paterson, J. (2007). A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin, 39(4), 204–223.
Ragonis, N., & Ben-Ari, M. (2005). A Long-Term Investigation of the Comprehension of OOP Concepts by Novices. International Journal of Computer Science Education, 15(3), 203–221.
Utting, I., Cooper, S., Kölling, M., Maloney, J., & Resnick, M. (2010). Alice, Greenfoot, and Scratch -- A Discussion. Transactions on Computing Education, 10, 4, Article 17, 11 pages.
Valentine, D. W. (2004). CS educational research: a meta-analysis of SIGCSE technical symposium proceedings. SIGCSE Bull, 36(1), 255–259.
Xinogalos, S. (2012). Didactical Approach for Object-Oriented Programming: application in BlueJ. Proceedings of the 6th PanHellenic Conference on Didactics of Informatics, Florina 20–22 April, 63–72 (in Greek).
Xinogalos, S., Satratzemi, M., & Dagdilelis, V. (2006a). An introduction to object- oriented programming with a didactic microworld: objectKarel. Computers and Education, 47(2), 148–171.
Xinogalos, S., Satratzemi, M., & Dagdilelis, V. (2006b). Evaluating objectKarel - an educational programming environment for object oriented programming. In A. Mendez-Vilas et al. (Eds.), Current Developments in Technology-Assisted Education, vol. 2, 821–825, Formatex Press.
Author information
Authors and Affiliations
Corresponding author
Appendix - Questionnaire
Appendix - Questionnaire
Question 1 (Q1): Did any of the environments help you comprehend or deepen on concepts (i.e. object, class, inheritance) that you had been taught in other courses and you had not fully comprehended?
Question 2 (Q2): What is the most effective environment for an introduction to programming independently of the educational level?
For each environment give one answer in the scale of 1 to 5 where 1 = least effective and 5 = most effective.
1 | 2 | 3 | 4 | 5 | |
BlueJ | |||||
objectKarel | |||||
Scratch | |||||
Alice | |||||
MIT App Inventor |
Question 3 (Q3): For what aim(s) is each one of the environments appropriate? You can choose one or more from the following or define other aim(s):
-
Introduction to basic algorithmic structures & concepts
-
Introduction to programming
-
Introduction to OOP
-
Introduction to fundamental OO concepts (e.g. object, class, inheritance)
Question 4 (Q4): What are the main advantages and disadvantages of each environment?
Question 5 (Q5): What are the main characteristics that an introductory programming environment should incorporate for each one of the following modules: GUI, Visualization, Editor, Compiler/Error messages, Execution? You can make reference to the environments you used.
Rights and permissions
About this article
Cite this article
Xinogalos, S., Satratzemi, M. & Malliarakis, C. Microworlds, games, animations, mobile apps, puzzle editors and more: What is important for an introductory programming environment?. Educ Inf Technol 22, 145–176 (2017). https://doi.org/10.1007/s10639-015-9433-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10639-015-9433-1