Pedagogy of teaching introductory text‐based programming in terms of computational thinking concepts and practices


Programming can be an intellectually satisfying skill and is definitely considered useful. However, problem-solving with a computer involves much more than just learning programming language syntax. The theory and practice are interrelated in fascinating ways. Whether one thinks that the purpose of college or higher education is to prepare students for an occupation or to develop foundational knowledge with lifetime benefits (or both), computer science (CS) has become a fundamental part of 21st-century life. Even students studying in areas other than CS are likely to have significant encounters with computational thinking (CT) later on in life.

Motivation and Objectives
Colleges and universities offer the opportunity for students to take as many courses as they desire in coding, programming, and CS taught by faculty members from that discipline area. However, this approach alone is deemed insufficient for computer-based problem-solving and computer programming. Effective programming teaching pedagogy also requires organizational principles that can guide us in formulating the overall design of a programming science curriculum (CS). In particular, we need strategies that help us structure multiple paradigm-based teaching curricula into manageable modules. This study aims to develop a framework for programming pedagogy.

Research Methodology and Methods
A systematic literature review was conducted for identifying, evaluating, and interpreting relevant research to explore programming paradigms that could be incorporated for novice programmers, possible implementation strategies, and instructional methods for teaching text-based programming, CT concepts, and practices.

Results and Findings
This paper’s focus was on the pedagogical phenomenon of teaching programming considering the evolving paradigms, implementation strategies, and instructional methods and techniques through the lens of CT. Hence, a framework to design a learning path for pedagogical approaches that consist of CT concepts and practices within text-based programming were proposed. The proposed framework is based on the assumption that “any ongoing research on computing pedagogy requires a review of what CT is, how it impacts on teaching and learning and its role within the pedagogy advocated.” The programming pedagogy framework consists of four fundamental components: programming paradigm, implementation strategy, instructional methods, and instructional techniques.