Reducing Abstraction in High School Computer Science Education (original) (raw)
Related papers
Abstraction in Computer Science Education: An Overview
Informatics in Education, 2021
When we "think like a computer scientist," we are able to systematically solve problems in different fields, create software applications that support various needs, and design artefacts that model complex systems. Abstraction is a soft skill embedded in all those endeavours, being a main cornerstone of computational thinking. Our overview of abstraction is intended to be not so much systematic as thought provoking, inviting the reader to (re)think abstraction from different-and perhaps unusual-perspectives. After presenting a range of its characterisations, we will explore abstraction from a cognitive point of view. Then we will discuss the role of abstraction in a range of computer science areas, including whether and how abstraction is taught. Although it is impossible to capture the essence of abstraction in one sentence, one section or a single paper, we hope our insights into abstraction may help computer science educators to better understand, model and even dare to teach abstraction skills.
Abstract Examining Instruction for Abstraction in K-12 Computer Science
Abstraction is a term that is difficult to navigate as an educator because multiple definitions of abstraction exist. Computer scientists have been working towards a common definition of abstraction; however, the instruction and assessment of abstraction remains categorically under researched. Because abstraction is often cited as a component of computational thinking, abstraction has been summarily likened to a higher order thinking skill. Educators have studied critical thinking more than computational thinking, and overlapping characteristics provide educators with instructional guidance. Interestingly, as Fuller et al. (2007) indicate, students likely have multiple pathways for learning abstraction and critical thinking, just as students have multiple pathways for learning computer science. In this basic qualitative examination of instruction using thematic coding analysis, I will explore the instructional strategies, development of objectives, and assessments K-12 computer science teachers use to teach abstraction. Practical descriptive insights illuminate additional variables to research the instruction of abstraction qualitatively and quantitatively, as well as provide anecdotal instructional successes.
The United Kingdom and Ireland Computing Education Research (UKICER) conference
We currently conduct an extensive research project that investigates the implementation of a national computer science (CS) curriculum for the 4 th grade. This research explores the curriculum's evolution, from the policymakers' visions, through the formal (intended) curriculum, teachers' training, and the actual implementation in class, to the educational outcomes (attained curriculum). As part of this research, we identified the educational goals of the policymakers who initiated this curriculum and examined how their goals were reflected in the formal curriculum. This paper focuses on one of the policymakers' goals-the development of algorithmic abstraction. To this end, we developed a method to investigate how algorithmic abstraction is addressed in the formal curriculum. In a recent paper, we focused on one facet of this method. Here, we will complete the presentation of this method by describing its two other facets and present the corresponding findings. Our findings indicate that the formal curriculum emphasized programming, whereas the more abstract concept of an algorithm was not sufficiently stressed. This was reflected in three ways: Most of the algorithmic problems included in the curriculum were presented using programmingrelated terms; algorithms and algorithm-related terms comprised a notably smaller part of the curriculum; and CS concepts were mostly introduced in terms of programming. We generalized our method to obtain a framework for assessing CS introductory curricula through the lens of algorithmic abstraction. Since abstraction is widely acknowledged as a CS fundamental idea, such a framework has significant merit for the CS educational research community.
Teaching abstraction to novices: Pattern-based and ADT-based problem-solving processes
2008 38th Annual Frontiers in Education Conference, 2008
Abstraction is taught to computer-science students as part of a comprehensive curriculum. The students encounter the concept of abstraction in various contexts while learning the different modules, each of which emphasizes some specific aspects of the concept. In this paper we present two instructional approaches, both related to utilizing abstraction in problem-solving processes: (1) pattern-oriented instruction (POI), and (2) abstract data type (ADT)-oriented instruction. We present these methods with respect to their employment in teaching problem solving to novices, and elaborate on abstraction processes.
Comparison of Abstraction in Computer Coding and in Critical Thinking
As the concept of abstraction as a computer science skill is being defined, comparing the nature of abstraction to critical thinking theories provides instructional guidance. The conceptual frameworks for abstraction and computational thinking from Armoni and Fuller et al, compared to Bloom's and Marzano & Kendall's taxonomies of critical thinking offer possible instructional and assessment strategies. Effective computer science education can occur at different rates and along variable pathways. Assessment may be most effective engaging cognitive domains. Instruction may be most effective engaging affective domains.
A systematic approach to teaching abstraction and mathematical modeling
Proceedings of the 17th ACM annual conference on Innovation and technology in computer science education - ITiCSE '12, 2012
Abstraction is the process of developing a conceptual veneer that hides the complexity of internals. It is central to computational thinking, in general, and high quality software development, in particular. Use of mathematical modeling makes the abstraction precise. The need for undergraduate CS students to create and understand such abstractions is clear, yet these skills are rarely taught in a systematic manner, if they are taught at all. This paper presents a systematic approach to teaching abstraction using rigorous mathematical models. The paper contains a series of representative examples with varying levels of sophistication to make it possible to teach the ideas in a variety of courses, such as introductory programming, data structures, and software engineering.
Proceedings of the 2nd International Conference on Higher Education Advances, 2016
Many technical disciplines require abstraction skills, such as the ability to deduce general rules and principles from sets of examples. These skills are the basis for creating solutions that address a whole class of similar problems, rather than merely focusing a single specific instance. Experience shows that many freshmen students are ill equipped with these skills. Therefore, we developed an intervention that systematically teaches abstraction skills to students, and applied our approach to a cohort of freshmen students in computer science.
Abstraction in Computer Science
Minds and Machines, 2007
We characterize abstraction in computer science by first comparing the fundamental nature of computer science with that of its cousin mathematics. We consider their primary products, use of formalism, and abstraction objectives, and find that the two disciplines are sharply distinguished. Mathematics, being primarily concerned with developing inference structures, has information neglect as its abstraction objective. Computer science, being primarily concerned with developing interaction patterns, has information hiding as its abstraction objective. We show that abstraction through information hiding is a primary factor in computer science progress and success through an examination of the ubiquitous role of information hiding in programming languages, operating systems, network architecture, and design patterns.
Dealing With Abstraction: Reducing Abstraction in Teaching (RAiT)
2014
One of the most important challenges for mathematics teachers involves dealing with mathematical abstraction, specifically; figuring out efficient ways to translate abstract concepts into more easily understandable ideas for their students. Reducing abstraction is one of the theoretical frameworks originally proposed by Hazzan (1991) to examine how learners deal with mathematical abstraction while working with new mathematical tasks or concepts. However, very little is known about how teachers deal with mathematical abstraction while implementing mathematical tasks in the classroom. To complement this body of research, my study seeks to understand the features of teaching practices in real classroom situations with regard to dealing with mathematical abstraction. In this study, the level of abstraction involved in a situation has been interpreted from three distinct perspectives: 1) as the quality of the relationships between the mathematical concept and the learner; 2) as a reflection of the process-object duality; and 3) as the degree of complexity of a mathematical task or concept. Upon close analysis of the primary (classrooms observation) and secondary (TIMSS 1999 Public Release video lessons) data, various behaviours and strategies used by teachers to reduce abstraction while implementing tasks have been identified in each of the above three categories. As a result, a framework of "Reducing Abstraction In Teaching" (RAiT) has emerged, thus offering a new perspective on and an application of the notion of reducing abstraction. While reducing abstraction in teaching is often intended to make the mathematical concept or object more accessible to students and, thus, to achieve meaningful learning, this study discovered and exemplified some instances in which RAiT activity may not necessarily be supportive for that purpose. Hence, this study suggests a need for teachers to pay attention to the possible deficiencies of students' understanding that may arise as a consequence of some of the strategies of reducing abstraction in teaching. Finally, the study concludes with a number of recommendations and suggestions, including avenues for future research.