Skip to main content

Advertisement

Log in

Microworlds, games, animations, mobile apps, puzzle editors and more: What is important for an introductory programming environment?

  • Published:
Education and Information Technologies Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7

Similar content being viewed by others

References

  • Barnes, D., & Kölling, M. (2004). Objects First with Java: A practical introduction using BlueJ. Englewood Cliffs: Prentice Hall.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • Cooper, S., Dann, W., & Pausch, R. (2003). Teaching objects-first in introductory computer science. ACM SIGCSE Bulletin, 35(1), 191–195.

    Article  Google Scholar 

  • Deek, F., & McHugh, J. (1998). A survey and critical analysis of tools for learning programming. Journal of Computer Science Education, 8(2), 130–178.

    Article  Google Scholar 

  • Georgantaki, S., & Retalis, S. (2007). Using educational tools for teaching object oriented design and programming. Journal of Information Technology Impact, 7(2), 111–130.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Stelios Xinogalos.

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

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10639-015-9433-1

Keywords

Navigation