Teaching Coding in K-12 Schools – Research and Application

To be Edited by A/Prof Therese Keane & A/Prof Andrew Fluck


About The Book

The largest commercial enterprises in the world are digital. For school students to become productive and independent citizens of this digital era, they need to develop skills throughout schooling. Teaching Coding is clearly focused on key skills for this digital apprenticeship. It provides a progression path for students aged from birth to 18 years, identifying key skills. Based on the global perspectives and research at each stage, it shows how these findings can be applied in the classroom. Teaching coding to students in K-12 has been a skillset that has been debated across educational jurisdictions globally for some time. There are examples of schools that are teaching coding to students in engaging and relevant ways delivered via well thought out  compulsory curriculums. However, there are others where coding is not mandated in the curriculum and is taught in an ad-hoc manner. There is also an increasing school of thought that teaching coding is a skill that is already obsolete, and the focus should be on computational thinking. The debate is a serious one and requires a clearly defined thematic response with evidence on all sides of the argument presented rationally.



We are looking for short chapters for a research book (10 pages maximum). Each chapter will follow the chapter template. We would like to include the author’s own research as much as possible. We would be looking at how coding/programming and computational thinking is taught to K-12 students globally and what the emphasis is. Also, we would like to explore the various coding environments that are used globally to teach programming at different age levels within the K-12 space.

The book would be broken down into three main schooling sections with a focus on – Early Childhood (K), Primary (Foundation – Year 6) and Secondary School (Years 7-12). Chapters would then be dedicated to how coding and computational thinking is taught at each level of schooling. For example, at the early childhood stage, the way students are taught coding is through cards/blocks and very basic programming toys, whereas by the time students are in their senior levels of secondary schooling, more complex techniques through sophisticated programming environments are used.

The topics to be covered include, but are not limited to:

  • Kinaesthetic coding with programmable toys (with a focus on early childhood)
  • Solving simple problems with branching algorithms (physical contexts) (with a focus on early primary/elementary school)
  • Tell a story [backdrops, sprites, costumes, motion, pen, looks] (with a focus on early primary/elementary school)
  • Solving complex problems with branching algorithms (data handling) using visual programming; use peripheral devices (sensors, actuators) and respond to user input [control, sensing, go direct force & acceleration] i.e./ Robotics. (with a focus on children under the age of 11)
  • Creating a musical instrument [sound, music, video sensing] for gaming (with a focus on upper primary/elementary school)
  • Use visual programs to collect, interpret and display data [lists, operators, variables] (with a focus on upper primary/elementary school)
  • Design & create a user interface for a digital system; solve more complex problems with branching algorithms and iteration [events, make a block, text to speech & translate] (with a focus on upper primary/elementary school)
  • Teaching of robotics programming to students (with a focus on early to mid-High school students)
  • Create a graphics action game [functions and recursion; data structures such as lists, strings & references] (with a focus on early to mid-High school students)
  • Building digital systems with inter-connected components in teams; programming apps for mobile devices [classes, arrays, multi-media, inheritance & threads]. (with a focus on senior High school students)

We anticipate theoretical aspects of the area will be examined in full, particularly the pedagogical techniques for teaching coding. Examples include structured approaches to teaching programming (PRIMM); procedural, visual, and object-oriented programming language paradigms; programming by de-bugging; code analysis; immersion; learner-centred and sociocultural approaches. There will also be more specific aspects of computer science to consider, such as abstraction, cyber-security, machine learning and non-deterministic computing.

Key Dates



Authors informed of EoI outcome


Draft chapters due to Editors      


Drafts chapters sent to reviewers      


Peer Reviews due to Editors      


Reviews considered & sent to authors


Author revisions due to Editors          


Edited manuscript to Publisher          


Indicative chapter structure

Page 1                       

Page 2

Page 3

Pages 4-6

Page 7

Page 8

Pages 9-10


Introduction – An example problem in this domain: Global perspectives on the skill set needed

Local research vignette or literature synthesis

Key findings from research and examples of applying these in schools

Evidence for assessing mastery of achievement

Facilitating diagram and links/2 sentence descriptions of three supporting resources (embodying the research findings).



Andrew Fluck: University of Tasmania – Andrew.Fluck@utas.edu.au

Therese Keane: Swinburne University – tkeane@swin.edu.au