Search and Filter

Repository Feedback

Your feedback helps us improve the repository's content relevance and usability. Please share your thoughts to help us better serve researchers and practitioners.

Submit feedback

Submit a research study

Contribute to the repository:

Add a paper

Systematically Thinking About The Complexity Of Code Structuring Exercises At Introductory Level

Date
Publisher
arXiv
Decomposition and abstraction is an essential component of computational thinking, yet it is not always emphasized in introductory programming courses. In addition, as generative AI further reduces the focus on syntax and increases the importance of higher-level code reasoning, there is renewed opportunity to teach DA explicitly. In this paper, we introduce a framework for systematically assessing the complexity of code structuring tasks, where students must identify and separate meaningful abstractions within existing, unstructured code. The framework defines three dimensions of task complexity, each with multiple levels: repetition, code pattern, and data dependency. To support practical use, we provide example tasks mapped to these levels and offer an interactive tool for generating and exploring DA problems. The framework is designed to support the development of educational tasks that build students' skills with DA in the procedural paradigm.
Study at a glance
  • Question: How can the complexity of introductory code structuring and decomposition tasks be systematically classified?
  • Setting and data: Introductory programming (CS1) code structuring problems collected from prior literature and educational resources; no human subjects.
  • Method: Conceptual framework development based on software engineering and computing education literature, supplemented by creating an interactive repository.
Why it matters

Generative AI increases the importance of higher-level code reasoning over syntax, yet educators lack a clear classification scheme to assess what makes code structuring and decomposition exercises complex for introductory students.

Key findings
  • Task complexity in introductory code structuring varies across three key dimensions: repetition, code pattern composition, and data dependency, each containing four hierarchical levels from zero to three.
  • Algorithmic patterns best align with software engineering principles of functional decomposition, making them ideal targets for extraction into separate functions.
  • An interactive online repository provides categorized, searchable procedural programming problems tagged across each complexity dimension to facilitate scaffolded learning.

Summary drafted with AI from the full paper and may contain errors. See the full paper for details.

What is the application?
Who age?