Abstract
Even though there is a trend to integrate programming through Python into education in lower secondary schools, Python is usually assumed to be more appropriate for older students. Besides, few teaching guidelines or materials are offered to teachers on programming through Python at lower secondary schools. Therefore, this study in an ordinary public lower secondary school in Prague, Czech Republic, tested guidelines for introductory steps in teaching Python (using the platform Codeboard.io) to eighth-grade students (N = 60). The study aimed to investigate how programming in Python can be introduced in lower secondary schools and examine how suitable the programming in Python is for students aged 13–14. The teaching approach to Python was based on student’s motivation to design their own game using RPG Maker. The authors found out that the key factors influencing lower secondary school students’ understanding of text-based programming languages are, primarily, a teacher’s expertise in computer science and programming, a student’s motivation and her/his previous experiences with programming.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
ZŠ Rýnovice (https://zsrynovice.cz); ZŠ Základní škola Dany a Emila Zátopkových, Třinec (https://zszatopkovych.eu/); ZŠ a MŠ Všechovice (https://zs.zsvsechovice.cz/; Gymnázium Broumov); etc.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
An IDLE (Integrated Development and Learning Environment) for Python-based scripts at lower secondary school.
- 12.
Example assignment structure:
-
task_1.py
-
task_2.py
-
results.py (h)
(h) stands for hidden file; results.py contains “feedback processing” of students’ work. Upon clicking the RUN button, results.py processed students’ outputs and printed feedback in the console.
-
- 13.
RPG Maker is suitable mainly for designing games based on storytelling, not so much on games which need images and schemes.
References
Černochová, M., & Selcuk, H. (2022). Primary education student teachers’ perceptions of computational thinking through Bebras tasks. In D. Passey, D. Leahy, L. Williams, J. Holvikivi, & M. Ruohonen (Eds.), Digital transformation of education and learning – Past, present and future (OCCE 2021. IFIP Advances in Information and Communication Technology) (Vol. 642). Springer. https://doi.org/10.1007/978-3-030-97986-7_2
EC. (2020). Digital Education Action Plan 2021–2027: Resetting education and training for the digital age.
Dorling, M., & White, D. (2015, March 4–7). Scratch: A way to logo and Python. In SIGCSE’15, Kansas City, MO, USA.
Duncan, C., Bell, T., & Tanimoto, S. (2014, November). Should your 8-year-old learn coding? In WiPSCE '14: Proceedings of the 9th workshop in primary and secondary computing education.
Jeong, I., & Chun, S.-J. (2021). The effects of programming learning using entry Python on elementary school students’ logical thinking ability. Journal of The Korean Association of Information Education., 25(4), 603–610.
Jeeves, L. (2021, October 22). Programming for all: Introducing Cambridge primary and lower secondary computing. Cambridge Learners, Curriculum. https://blog.cambridgeinternational.org/programming-for-all-introducing-cambridge-primary-and-lower-secondary-computing/
Klement, M., Dragon, T., & Bryndová, L. (2020). Computational thinking and how to develop it in the educational process. Palacký University Olomouc.
Matsuzawa, Y., Tanaka, Y., & Sakai, S. (2016). Measuring an impact of block-based language in introductory programming. In T. Brinda et al. (Eds.), Stakeholders and Information Technology in Education, SaITE 2016 (Vol. 2017, pp. 16–25). Springer.
Mladenović, M., Krpan, D., & Mladenović, S. (2016). Introducing programming to elementary students novices by using game development in Python and Scratch. In EDULEARN16 Proceedings (pp. 1622–1629).
Morris, A. (2016, Fall). . Magazine McCormick School of Engineering, Northwestern University. https://www.mccormick.northwestern.edu/magazine/fall-2016/the-exponential-power-of-computer-science.html
Niemela, P. (2017). All Rosy in Scratch lessons: No bugs but guts with visual programming. IEEE Frontiers in Education Conference, 2017, 1–9.
Robinson, W. (2016). From Scratch to Patch: Easing the Blocks-Text Transition. In Proceedings of the 11th Workshop in Primary and Secondary Computing Education (pp. 96–99).
Qian, Y., Yan, P., & Zhou, M. (2019). Using data to understand difficulties of learning to program: A study with Chinese middle school students. In Proceedings of the ACM conference on global computing education (pp. 185–191). ACM.
Sentance, S., Barendsen, E., & Schulte, C. (Eds.). (2018). Computer science education. Perspective on teaching and learning in school.
Settle, A., Vihavainen, A., & Sorva, J. (2014). Three Views on Motivation and Programming. In ITiCSE '14 Proceedings of the 2014 conference on Innovation & technology in computer science education (Annual Conference on Innovation & Technology in Computer Science Education: [proceedings]) (pp. 321–322). ACM.
Severance, C. R. (2009). Python for everybody. Exploring Data Using Python 3. [01.04.2022]. https://www.py4e.com/html3/
So, M. H., & Kim, J. (2018). An analysis of the difficulties of elementary school students in python programming learning. International Journal on Advanced Science, Engineering and Information Technology, 8, 1507–1512.
Tabet, N., Gedawy, H., Alshikhabobakr, H., & Razak, S. (2016, July). From Alice to Python. Introducing Text-based Programming in Middle Schools. In: ITiCSE '16: Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education (pp. 124–129).
Tsukamoto, H., Takemura, Y., Nagumo, H., Ikeda, I., Monden, A., & Matsumoto, K. I. (2015). Programming education for primary school children using a textual programming language. In Frontiers in Education Conference (FIE) (pp. 1–7). IEEE.
Vahldick, A., Mendes, A.J., & Marcelino, M. J. (2014). A review of games designed to improve introductory computer programming competencies. In 2014 IEEE Frontiers in Education Conference (FIE) Proceedings, (pp. 1–7).
Vahldick, A., Mendes, A. J., & Marcelino, M. J. (2021). Analyzing novices’ fun and programming behaviors while playing a serious blocks-based game. Revista Brasileira de Informática na Educação, 29, 1337–1355.
Weintrop, D. (2015, February). Minding the gap between blocks-based and text-based programming (abstract only). Poster. In SIGCSE '15: Proceedings of the 46th ACM Technical Symposium on Computer Science Education.
Weintrop, D., & Holbert, N. (2017, March 8–11). From blocks to text and back: Programming patterns in a dual-modality environment. In SIGCSE '17 (pp. 633–638).
Yoon, S. H., & Jang, B. S. (2020). The meta-analysis on effects of education of Python for elementary school students. Journal of Industrial Convergence, 18(5), 97–101.
Acknowledgement
This study is a result of the research funded by the COOPERATIO Science Education, Subject Specific Education Research.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendices
Appendices
1.1 Appendix 19.1: Activities in Python in Lessons L1–L5 (Activity #2)
L1 | What’s going on at the console? # edit the greeting variable to include the word hello and then print the variable to the console
| L1 solution: 3 + 5 = 8 addition 2*2 = 4 multiplication 4 / 2 = 2 division 10%6 = 4 modulo (remainder after division) L1 solution: greeting = “hello” print(greeting) # hello |
L2 | # one line below, create a variable name that will contain any name # use the variable called my_name # one line below, fill the output variable with any name and the phrase rides a bike. Using the variable my_name # example of ascent: Peter rides a bike. # use the variable −> output | L2 solution: my_name = “Peter” output = my_name + “rides a bike.” print(output) # Peter rides a bike |
L3 | # create a program that calculates the perimeter and content of the rectangle | L3 solution print(“Enter sizes of the sides of the rectangle:”) a = int(input(“a:”)) b = int(input(“b:”)) circumference = a * 2 + b * 2 content = a * b print(“Content:”, content) print(“Circumference:”, circumference) |
L4 | # create a program that computes the contents of an equilateral triangle # the user can enter any page size | L4 solution a = input(“Enter length of a: ”) content = (a * a) / 2 |
L5 | Test: Show what you have learned | see Appendix 19.2 |
1.2 Appendix 19.2: Questionnaire “Show What You Have Learned” (Activity #2)
What does the following program do (what could it be used for)? What is written to the console?
Q1 | greetings = “Hello” print(greetings) |
Q2 | name = input(“What is your name?”) print(“My name is” + name) |
Q3 | number_1 = 20 number = 15 print(number_1 + number_2) |
Q4 | number_1 = 7 number_2 = 4 result = (number_1 * number_2) / 2 print(result) |
Q5 | height = int(input(“How tall are you?”)) If height > 120: print(“You can ride the train.”) else: print(“You are not tall enough, you cannot ride the train..” |
Q6 | number = “3” result = number * 3 print(result) |
Q7 | print(“Enter sizes of the sides of the rectangle:”) a = int(input(“a:”)) b = int(input(“b:”)) circumference = a * 2 + b * 2 content = a * b print(“Content:”, content) print(“Circumference:”, circumference) |
Q8 | mass = int(input(“How much do you weight?”)) height = int(input(“How tall are you?”)) bmi = mass / (height/100 * height/100) print(“Your BMIis: ”, bmi) |
Q9 | Find a bug in the following programs greetings = hello print(greetings) name = “Peter” If name == Peter: print(Hello, Peter) |
Q10 | Explain these concepts: Console Variable print() Condition If else input() |
1.3 Appendix 19.3: A Final Questionnaire (at the End of Activity #3)
-
1.
Have you ever programmed a game in the past? In what environment? And what game?
-
2.
What intrigued you about programming a game in RPG Maker? Story? Method of programming? Creating in RPG Maker?
-
3.
Did you consider working on a game in RPG Maker to be programming? And why?
-
4.
Do you see any connection between what you did in Python and how you created the game in RPG Maker?
What did you learn when programming in Python? What do you learn from teaching about Python? What exactly do you remember from teaching about Python?
Rights and permissions
Copyright information
© 2023 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Černochová, M., Selcuk, H., Beneš, M. (2023). Initial Steps in Teaching Python at Lower Secondary School Using the Platform Codeboard.io. In: Keane, T., Fluck, A.E. (eds) Teaching Coding in K-12 Schools. Springer, Cham. https://doi.org/10.1007/978-3-031-21970-2_19
Download citation
DOI: https://doi.org/10.1007/978-3-031-21970-2_19
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-21969-6
Online ISBN: 978-3-031-21970-2
eBook Packages: EducationEducation (R0)