Library Carpentry Curriculum Advisory Committee Announces New Lesson: Introducing Computational Thinking

Introducing Computational Thinking, a new addition to our curriculum, is designed to teach people how to break problems down into computable steps before starting to code.

Introduction

The idea for the Introducing Computational Thinking lesson came from my own experiences of teaching Software Carpentry lessons and learning to code. While Software Carpentry taught the fundamentals of task automation and coding, it did not directly address how to break problems down or how to apply a coding mindset to research questions. As a result, when I tried to apply what I had learned, I found it challenging to break problems down into computable chunks. I therefore saw a lesson on computational thinking as a necessary precursor to learning how to code.

This workshop is for individuals at all career stages who want to understand the uses and building blocks of computational thinking. This skill is valuable for solving all kinds of problems, whether in real life or in computing. The workshop does not teach computer programming per se. Instead, it covers the thought processes involved for those who may want to learn programming in the future.

The Introducing Computational Thinkinglesson is a pen-and-paper exercise that introduces people to the four steps of computational thinking. It explains each step, provides examples, and covers tools for problem breakdown, including the use of pseudocode. Test exercises and problems are available for participants to work on individually or in groups. No prior knowledge of coding or computational thinking is required.

What is covered in this lesson?

The lesson introduces the building blocks of computational thinking, provides examples and exercises, and explains the use of pseudocode as a precursor to coding.

The key to successful coding is problem breakdown. This workshop uses structure diagrams to help participants focus on how to break complex problems down into smaller, manageable chunks.

Pseudocode helps clarify one’s thoughts about the coding steps that need to be taken, without being distracted by code syntax. It is useful in teamwork to ensure that coders agree on the tasks to be done. Pseudocode can also be a valuable tool for explaining tasks to non-coders or briefing clients on coding requirements.

Why a course on computational thinking?

Almost all research today is computational, but computational thinking and coding are not necessarily taught in many disciplines. Computational thinking is useful even for non-coders, such as project managers who need to break complex projects down into actionable steps.

I couldn’t find a step-by-step course on computational thinking, so I decided to create one myself, which led to the development of this lesson.

Course development

I developed this course while working at Griffith University. Initially, I tested its usefulness with colleagues in the university library. I also shared it with academics teaching statistical courses, and some have since adopted parts of the material for first-year courses.

Although I developed the course, I had not taught it live. To test the material and see if it needed any tweaks, I taught the lesson at the Brisbane ResBaz event in late 2023. The lesson was well-received, and I gathered useful feedback to include in future instructor notes.

Why was this lesson adopted by the curriculum advisors?

The curriculum advisors adopted this lesson because it fills a critical gap in research skills training—specifically, the ability to break down complex problems into manageable chunks. Computational thinking is essential for librarians and information professionals serving disciplines where research is computationally produced. The Introducing Computational Thinking lesson provides a practical framework for developing these skills and offers a starting point for Library Carpentry workshops that include hands-on coding lessons, such as the Unix Shell, Git, Python, and R.

What you can do

We invite Carpentries Instructors to teach the new lesson and provide feedback via the repository Issues page or by reaching out to the Maintainers.

Course author biography

Belinda Weaver is a former librarian who was very active in the Software Carpentry and Library Carpentry communities for several years before retiring in 2022 due to ill health. She has taught Library Carpentry workshops in Australia, the U.S., and New Zealand. She developed this lesson while leading a team supporting researchers at Griffith University Library. Belinda has worked as a repository manager, contributed to the Australian research cloud, and served as Community and Communications Lead for The Carpentries for 20 months.

Conclusion

This lesson serves as a precursor to coding but is also useful for anyone dealing with complex problems. Although this lesson was my own brainchild, all such lessons benefit from community involvement. I encourage users to engage with the lesson and provide feedback for future improvements.

Dialogue & Discussion

Comments must follow our Code of Conduct.

Edit this page on Github