Python as First Textual Programming Language in Secondary Education
Abstract With the recent introduction of Programming in the K-12 curricula there is an opportunity to include Computer Science fundamental concepts. This paper presents the origin and evolution of Python as well as their main features that configure it as an ideal programming language. We also review and classify some educational tools in the Python ecosystem. Such tools cover a wide-open spectrum of resources from interactive books to libraries which ease the construction of student elaborated software artefacts. This work presents a multidisciplinary proposal to use the Python programming language in all levels of Secondary Stage.
- Referencias
- Cómo citar
- Del mismo autor
- Métricas
Armoni, M., Meerbaum-Salant, O., & Ben-Ari, M. (2015). From scratch to “real” programming. ACM Transactions on Computing Education (TOCE), 14(4), 25. https://doi.org/10.1145/2677087
Ateeq, M., Habib, H., Umer, A., & Rehman, M. U. (2014, April). C++ or Python? Which One to Begin with: A Learner’s Perspective. In Proceedings of the 2014 International Conference on Teaching and Learning in Computing and Engineering (LaTiCE) (pp. 64-69). EEUU: IEEE. https://doi.org/10.1109/LaTiCE.2014.20
Balanskat, A., & Engelhardt, K. (2015). Computing our future. Computer programming and coding. Priorities, school curricula and initiatives across Europe. European Schoolnet, Brussels.
Bart, A. C., Tibau, J., Tilevich, E., Shaffer, C. A., & Kafura, D. (2016, June). Implementing an Openaccess, Data Science Programming Environment for Learners. In Proceedings of the 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC) (Vol. 1, pp. 728-737). EEUU: IEEE. https://doi.org/10.1109/COMPSAC.2016.132
Braught, G., Wahls, T., & Eby, L. M. (2011). The case for pair programming in the computer science classroom. ACM Transactions on Computing Education (TOCE), 11(1), Article 2. https://doi.org/10.1145/1921607.1921609
Brown, N. C., Altadmri, A., & Kölling, M. (2016, March). Frame-Based Editing: Combining the Best of Blocks and Text Programming. In Proceedings of the 2016 International Conference on Learning and Teaching in Computing and Engineering (LaTICE) (pp. 47-53). EEUU: IEEE. https://doi.org/10.1109/LaTiCE.2016.16
Compañ-Rosique, P., Satorre-Cuerda, R., Llorens-Largo, F., & Molina-Carmona, R. (2015). Enseñando a programar: un camino directo para desarrollar el pensamiento computacional. Revista de Educación a
Distancia, 46. https://doi.org/10.6018/red/46/11
Denning, P. J. (2003). Great principles of computing. Communications of the ACM, 46(11), 15-20. https://doi.org/10.1145/948383.948400
Dorling, M., & White, D. (2015, February). Scratch: A way to logo and python. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 191-196). New York, EEUU: ACM. https://doi.org/10.1145/2676723.2677256
Elkner, J. (2000, January). Using Python in a high school computer science program. In Proceedings of the 8th International Python Conference (pp. 2000-2001).
Freeman, S., Eddy, S. L., McDonough, M., Smith, M. K., Okoroafor, N., Jordt, H., & Wenderoth, M. P.
(2014). Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences, 111(23), 8410-8415. https://doi.org/10.1073/pnas.1319030111
Gal-Ezer, J., & Stephenson, C. (2014). A tale of two countries: Successes and challenges in K-12 computer science education in Israel and the United States. ACM Transactions on Computing Education (TOCE), 14(2), Article 8. https://doi.org/10.1145/2602483
García-Peñalvo, F. J. (2016a). A brief introduction to TACCLE 3 – Coding European Project. In F. J. García-Peñalvo & J. A. Mendes (Eds.), 2016 International Symposium on Computers in Education (SIIE 16). USA: IEEE. https://doi.org/10.1109/SIIE.2016.7751876
García-Peñalvo, F. J. (2016b). Proyecto TACCLE3 – Coding. In F. J. García-Peñalvo & J. A. Mendes (Eds.), XVIII Simposio Internacional de Informática Educativa, SIIE 2016 (pp. 187-189). Salamanca, España: Ediciones Universidad de Salamanca.
García-Peñalvo, F. J. (2016c). What Computational Thinking Is. Journal of Information Technology Research, 9(3), v-viii.
García-Peñalvo, F. J., Reimann, D., Tuul, M., Rees, A., & Jormanainen, I. (2016). An overview of the most relevant literature on coding and computational thinking with emphasis on the relevant issues for teachers. Belgium. https://doi.org/10.5281/zenodo.165123
Grandell, L., Peltomäki, M., Back, R. J., & Salakoski, T. (2006, January). Why complicate things?: introducing programming in high school using Python. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (pp. 71-80). Australian Computer Society, Inc.
Guo, P. J. (2013, March). Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 579-584). New York, EEUU: ACM. https://doi.org/10.1145/2445196.2445368
Guzdial, M. (2015a). Learner-centered design of computing education: Research on computing for everyone. Synthesis Lectures on Human-Centered Informatics, 8(6), 1-165. https://doi.org/10.2200/S00684ED1V01Y201511HCI033
Guzdial, M. (2015b). What's the best way to teach computer science to beginners? Communications of the ACM, 58(2), 12-13. https://doi.org/10.1145/2714488
Hazzan, O., Gal-Ezer, J., & Blum, L. (2008, March). A model for high school computer science education: The four key elements that make it! In ACM SIGCSE Bulletin, 40(1), 281-285. https://doi.org/10.1145/1352322.1352233
Heintz, F., Mannila, L., & Färnqvist, T. (2016, October). A review of models for introducing computational thinking, computer science and computing in K-12 education. In Proceedings of 2016 IEEE Frontiers in Education Conference (FIE), (pp. 1-9). EEUU: IEEE. https://doi.org/10.1109/FIE.2016.7757410
Hubwieser, P., Giannakos, M. N., Berges, M., Brinda, T., Diethelm, I., Magenheim, J., & Jasute, E. (2015, July). A global snapshot of computer science education in K-12 schools. In Proceedings of the 2015 ITiCSE on Working Group Reports (pp. 65-83). New York, EEUU: ACM. https://doi.org/10.1145/2858796.2858799
Ihantola, P., Helminen, J., & Karavirta, V. (2013, November). How to study programming on mobile touch devices: interactive Python code exercises. In Proceedings of the 13th Koli Calling International Conference on Computing Education Research (pp. 51-58). New York, EEUU: ACM. https://doi.org/10.1145/2526968.2526974
Kirschner, P. A. (2017). Stop propagating the learning styles myth. Computers & Education, 106, 166-171. https://doi.org/10.1016/j.compedu.2016.12.006
Koulouri, T., Lauria, S., & Macredie, R. D. (2015). Teaching introductory programming: a quantitative evaluation of different approaches. ACM Transactions on Computing Education (TOCE), 14(4), Article 26. https://doi.org/10.1145/2662412
Mészárosová, E. (2015). Is Python an Appropriate Programming Language for Teaching Programming in Secondary Schools? International Journal of Information and Communication Technologies in Education, 4(2), 5-14. https://doi.org/10.1515/ijicte-2015-0005
Murphy, E., Crick, T., & Davenport, J. H. (2017). An Analysis of Introductory Programming Courses at UK Universities. The Art, Science, and Engineering of Programming, 1(2), Article 18. https://doi.org/10.22152/programming-journal.org/2017/1/18
Nuutila, E., Törmä, S., & Malmi, L. (2005). PBL and computer programming—The seven steps method with adaptations. Computer Science Education, 15(2), 123-142. https://doi.org/10.1080/08993400500150788
Papastergiou, M. (2009). Digital game-based learning in high school computer science education: Impact on educational effectiveness and student motivation. Computers & Education, 52(1), 1-12. https://doi.org/10.1016/j.compedu.2008.06.004
Parker, K. R., Chao, J. T., Ottaway, T. A., & Chang, J. (2006). A formal language selection process for introductory programming courses. Journal of Information Technology Education, 5, 133-151.
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., & Paterson, J. (2007). A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin, 39(4), 204-223. https://doi.org/10.1145/1345375.1345441
Peña Ros, R. (2015a). Paseo por la programación estructurada y modular con Python. ReVisión, 8(1), 17-17.
Peña Ros, R. (2015b). Python como primera aproximación a la programación. ReVisión, 8(2), 17-29.
Porter, L., Guzdial, M., McDowell, C., & Simon, B. (2013). Success in introductory programming: What works? Communications of the ACM, 56(8), 34-36. https://doi.org/10.1145/2492007.2492020
Ragonis, N., Hazzan, O., & Gal-Ezer, J. (2010, March). A survey of computer science teacher preparation programs in Israel tells us: computer science deserves a designated high school teacher preparation! In Proceedings of the 41st ACM technical symposium on Computer science education (pp. 401-405). New York, EEUU: ACM. https://doi.org/10.1145/1734263.1734402
Riesco Albizu, M., Díaz Fondón, M., Álvarez Gutiérrez, D., López Pérez, B., Cernuda del Río, A., & Juan Fuente, A. (2014). Informática: materia esencial en la educación obligatoria del siglo XXI. ReVisión, 7(3), 53-60.
Stefik, A., Daleiden, P., Franklin, D., Hanenberg, S., & Tichy, W. (2015). Programming Languages and Learning.
Stoilescu, D., & Egodawatte, G. (2010). Gender differences in the use of computers, programming, and peer interactions in computer science classrooms. Computer Science Education, 20(4), 283-300. https://doi.org/10.1080/08993408.2010.527691
Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016, July). From Alice to Python. Introducing Text-based Programming in Middle Schools. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (pp. 124-129). New York, EEUU: ACM.
Tang, T., Rixner, S., & Warren, J. (2014, March). An environment for learning interactive programming. In Proceedings of the 45th ACM technical symposium on Computer science education (pp. 671-676). New York, EEUU: ACM. https://doi.org/10.1145/2538862.2538908
Tedre, M., & Denning, P. J. (2016, November). The long quest for computational thinking. In Proceedings of the 16th Koli Calling Conference on Computing Education Research (pp. 24-27). https://doi.org/10.1145/2999541.2999542
Tollervey, N. H. (2015). Python in Education. Python in Education.
Van Rossum, G. (1999). Computer programming for everybody. Proposal to the Corporation for National
Research Initiatives.
Weintrop, D. (2015, February). Minding the gap between blocks-based and text-based programming. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 720-720). New York, EEUU: ACM.
Zingaro, D., & Porter, L. (2014). Peer Instruction in computing: The value of instructor intervention. Computers & Education, 71, 87-96. https://doi.org/10.1016/j.compedu.2013.09.015
Ateeq, M., Habib, H., Umer, A., & Rehman, M. U. (2014, April). C++ or Python? Which One to Begin with: A Learner’s Perspective. In Proceedings of the 2014 International Conference on Teaching and Learning in Computing and Engineering (LaTiCE) (pp. 64-69). EEUU: IEEE. https://doi.org/10.1109/LaTiCE.2014.20
Balanskat, A., & Engelhardt, K. (2015). Computing our future. Computer programming and coding. Priorities, school curricula and initiatives across Europe. European Schoolnet, Brussels.
Bart, A. C., Tibau, J., Tilevich, E., Shaffer, C. A., & Kafura, D. (2016, June). Implementing an Openaccess, Data Science Programming Environment for Learners. In Proceedings of the 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC) (Vol. 1, pp. 728-737). EEUU: IEEE. https://doi.org/10.1109/COMPSAC.2016.132
Braught, G., Wahls, T., & Eby, L. M. (2011). The case for pair programming in the computer science classroom. ACM Transactions on Computing Education (TOCE), 11(1), Article 2. https://doi.org/10.1145/1921607.1921609
Brown, N. C., Altadmri, A., & Kölling, M. (2016, March). Frame-Based Editing: Combining the Best of Blocks and Text Programming. In Proceedings of the 2016 International Conference on Learning and Teaching in Computing and Engineering (LaTICE) (pp. 47-53). EEUU: IEEE. https://doi.org/10.1109/LaTiCE.2016.16
Compañ-Rosique, P., Satorre-Cuerda, R., Llorens-Largo, F., & Molina-Carmona, R. (2015). Enseñando a programar: un camino directo para desarrollar el pensamiento computacional. Revista de Educación a
Distancia, 46. https://doi.org/10.6018/red/46/11
Denning, P. J. (2003). Great principles of computing. Communications of the ACM, 46(11), 15-20. https://doi.org/10.1145/948383.948400
Dorling, M., & White, D. (2015, February). Scratch: A way to logo and python. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 191-196). New York, EEUU: ACM. https://doi.org/10.1145/2676723.2677256
Elkner, J. (2000, January). Using Python in a high school computer science program. In Proceedings of the 8th International Python Conference (pp. 2000-2001).
Freeman, S., Eddy, S. L., McDonough, M., Smith, M. K., Okoroafor, N., Jordt, H., & Wenderoth, M. P.
(2014). Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences, 111(23), 8410-8415. https://doi.org/10.1073/pnas.1319030111
Gal-Ezer, J., & Stephenson, C. (2014). A tale of two countries: Successes and challenges in K-12 computer science education in Israel and the United States. ACM Transactions on Computing Education (TOCE), 14(2), Article 8. https://doi.org/10.1145/2602483
García-Peñalvo, F. J. (2016a). A brief introduction to TACCLE 3 – Coding European Project. In F. J. García-Peñalvo & J. A. Mendes (Eds.), 2016 International Symposium on Computers in Education (SIIE 16). USA: IEEE. https://doi.org/10.1109/SIIE.2016.7751876
García-Peñalvo, F. J. (2016b). Proyecto TACCLE3 – Coding. In F. J. García-Peñalvo & J. A. Mendes (Eds.), XVIII Simposio Internacional de Informática Educativa, SIIE 2016 (pp. 187-189). Salamanca, España: Ediciones Universidad de Salamanca.
García-Peñalvo, F. J. (2016c). What Computational Thinking Is. Journal of Information Technology Research, 9(3), v-viii.
García-Peñalvo, F. J., Reimann, D., Tuul, M., Rees, A., & Jormanainen, I. (2016). An overview of the most relevant literature on coding and computational thinking with emphasis on the relevant issues for teachers. Belgium. https://doi.org/10.5281/zenodo.165123
Grandell, L., Peltomäki, M., Back, R. J., & Salakoski, T. (2006, January). Why complicate things?: introducing programming in high school using Python. In Proceedings of the 8th Australasian Conference on Computing Education-Volume 52 (pp. 71-80). Australian Computer Society, Inc.
Guo, P. J. (2013, March). Online python tutor: embeddable web-based program visualization for cs education. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 579-584). New York, EEUU: ACM. https://doi.org/10.1145/2445196.2445368
Guzdial, M. (2015a). Learner-centered design of computing education: Research on computing for everyone. Synthesis Lectures on Human-Centered Informatics, 8(6), 1-165. https://doi.org/10.2200/S00684ED1V01Y201511HCI033
Guzdial, M. (2015b). What's the best way to teach computer science to beginners? Communications of the ACM, 58(2), 12-13. https://doi.org/10.1145/2714488
Hazzan, O., Gal-Ezer, J., & Blum, L. (2008, March). A model for high school computer science education: The four key elements that make it! In ACM SIGCSE Bulletin, 40(1), 281-285. https://doi.org/10.1145/1352322.1352233
Heintz, F., Mannila, L., & Färnqvist, T. (2016, October). A review of models for introducing computational thinking, computer science and computing in K-12 education. In Proceedings of 2016 IEEE Frontiers in Education Conference (FIE), (pp. 1-9). EEUU: IEEE. https://doi.org/10.1109/FIE.2016.7757410
Hubwieser, P., Giannakos, M. N., Berges, M., Brinda, T., Diethelm, I., Magenheim, J., & Jasute, E. (2015, July). A global snapshot of computer science education in K-12 schools. In Proceedings of the 2015 ITiCSE on Working Group Reports (pp. 65-83). New York, EEUU: ACM. https://doi.org/10.1145/2858796.2858799
Ihantola, P., Helminen, J., & Karavirta, V. (2013, November). How to study programming on mobile touch devices: interactive Python code exercises. In Proceedings of the 13th Koli Calling International Conference on Computing Education Research (pp. 51-58). New York, EEUU: ACM. https://doi.org/10.1145/2526968.2526974
Kirschner, P. A. (2017). Stop propagating the learning styles myth. Computers & Education, 106, 166-171. https://doi.org/10.1016/j.compedu.2016.12.006
Koulouri, T., Lauria, S., & Macredie, R. D. (2015). Teaching introductory programming: a quantitative evaluation of different approaches. ACM Transactions on Computing Education (TOCE), 14(4), Article 26. https://doi.org/10.1145/2662412
Mészárosová, E. (2015). Is Python an Appropriate Programming Language for Teaching Programming in Secondary Schools? International Journal of Information and Communication Technologies in Education, 4(2), 5-14. https://doi.org/10.1515/ijicte-2015-0005
Murphy, E., Crick, T., & Davenport, J. H. (2017). An Analysis of Introductory Programming Courses at UK Universities. The Art, Science, and Engineering of Programming, 1(2), Article 18. https://doi.org/10.22152/programming-journal.org/2017/1/18
Nuutila, E., Törmä, S., & Malmi, L. (2005). PBL and computer programming—The seven steps method with adaptations. Computer Science Education, 15(2), 123-142. https://doi.org/10.1080/08993400500150788
Papastergiou, M. (2009). Digital game-based learning in high school computer science education: Impact on educational effectiveness and student motivation. Computers & Education, 52(1), 1-12. https://doi.org/10.1016/j.compedu.2008.06.004
Parker, K. R., Chao, J. T., Ottaway, T. A., & Chang, J. (2006). A formal language selection process for introductory programming courses. Journal of Information Technology Education, 5, 133-151.
Pears, A., Seidman, S., Malmi, L., Mannila, L., Adams, E., Bennedsen, J., & Paterson, J. (2007). A survey of literature on the teaching of introductory programming. ACM SIGCSE Bulletin, 39(4), 204-223. https://doi.org/10.1145/1345375.1345441
Peña Ros, R. (2015a). Paseo por la programación estructurada y modular con Python. ReVisión, 8(1), 17-17.
Peña Ros, R. (2015b). Python como primera aproximación a la programación. ReVisión, 8(2), 17-29.
Porter, L., Guzdial, M., McDowell, C., & Simon, B. (2013). Success in introductory programming: What works? Communications of the ACM, 56(8), 34-36. https://doi.org/10.1145/2492007.2492020
Ragonis, N., Hazzan, O., & Gal-Ezer, J. (2010, March). A survey of computer science teacher preparation programs in Israel tells us: computer science deserves a designated high school teacher preparation! In Proceedings of the 41st ACM technical symposium on Computer science education (pp. 401-405). New York, EEUU: ACM. https://doi.org/10.1145/1734263.1734402
Riesco Albizu, M., Díaz Fondón, M., Álvarez Gutiérrez, D., López Pérez, B., Cernuda del Río, A., & Juan Fuente, A. (2014). Informática: materia esencial en la educación obligatoria del siglo XXI. ReVisión, 7(3), 53-60.
Stefik, A., Daleiden, P., Franklin, D., Hanenberg, S., & Tichy, W. (2015). Programming Languages and Learning.
Stoilescu, D., & Egodawatte, G. (2010). Gender differences in the use of computers, programming, and peer interactions in computer science classrooms. Computer Science Education, 20(4), 283-300. https://doi.org/10.1080/08993408.2010.527691
Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016, July). From Alice to Python. Introducing Text-based Programming in Middle Schools. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (pp. 124-129). New York, EEUU: ACM.
Tang, T., Rixner, S., & Warren, J. (2014, March). An environment for learning interactive programming. In Proceedings of the 45th ACM technical symposium on Computer science education (pp. 671-676). New York, EEUU: ACM. https://doi.org/10.1145/2538862.2538908
Tedre, M., & Denning, P. J. (2016, November). The long quest for computational thinking. In Proceedings of the 16th Koli Calling Conference on Computing Education Research (pp. 24-27). https://doi.org/10.1145/2999541.2999542
Tollervey, N. H. (2015). Python in Education. Python in Education.
Van Rossum, G. (1999). Computer programming for everybody. Proposal to the Corporation for National
Research Initiatives.
Weintrop, D. (2015, February). Minding the gap between blocks-based and text-based programming. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education (pp. 720-720). New York, EEUU: ACM.
Zingaro, D., & Porter, L. (2014). Peer Instruction in computing: The value of instructor intervention. Computers & Education, 71, 87-96. https://doi.org/10.1016/j.compedu.2013.09.015
García Monsálvez, J. C. (2017). Python as First Textual Programming Language in Secondary Education. Education in The Knowledge Society, 18(2), 147–162. https://doi.org/10.14201/eks2017182147162
Downloads
Download data is not yet available.
Publication Facts
Metric
This article
Other articles
Peer reviewers
0
2.4
Reviewer profiles N/A
Author statements
Author statements
This article
Other articles
Data availability
N/A
16%
External funding
N/A
32%
Competing interests
N/A
11%
Metric
This journal
Other journals
Articles accepted
21%
33%
Days to publication
10
145
Indexed in
-
—
- Academic society
- N/A
- Publisher
- Ediciones Universidad de Salamanca
+
−