Page 10 - Fister jr., Iztok, Andrej Brodnik, Matjaž Krnc and Iztok Fister (eds.). StuCoSReC. Proceedings of the 2019 6th Student Computer Science Research Conference. Koper: University of Primorska Press, 2019
P. 10
re [1] assessed CS1 students’ comprehension within ab- within our previous study, while only algorithm, abstrac-
straction, arrays of objects, and inheritance. The results tion and decomposition appeared to be relevant, domain in-
of the assessment were categorized into five computational dependent CT components. The relevance was evaluated
thinking concepts. Romero et al. [16] proposed a framework according to the frequency identified in a literature review.
for evaluating CT in creative programming activities. The Within our CTF, they are represented on the vertical axis.
intervention was applied to undergraduate students of a ba- Algorithms can be generally defined as procedural building
chelor’s degree in elementary school education. Peteranetz blocks of a computer programming, of a human thought and
et al. [14] report on fostering computational thinking thro- of a general problem solving [4]. In the theoretical computer
ugh computational creativity based on an online course that science, an algorithm is defined as a procedure that satisfies
was tailored for non-CS majors. Rambally [15] proposed a the criteria of finiteness, input, output, effectiveness, and
framework of CT skills and practices that were integrated definiteness [8]. However, in our framework an algorithm
into discrete structures course, which was a required course is associated with constructing an algorithmic solution to a
for all Information Technology majors. Finally, the two most problem to be solved. In educational context, this practice
cited papers in context of CT frameworks appear to be Bren- is referred as algorithmic thinking.
nan and Resnick [3] and Weintrop et al. [24]. Although none Abstraction can generally be characterized as the conceptual
of the papers was aimed for the CT within higher education, process of eliminating specificity by ignoring certain featu-
there are studies that build on these particular papers in the res. Abstraction is closely related to the modeling concept
context of higher education. and to the concept of generalization. The model is abstrac-
tion of a real or a conceptual complex system. Abstraction
3. PROPOSED FRAMEWORK levels and the hierarchy of abstraction are important aspects
in the models design practice. In software engineering, ab-
Algorithm, abstraction and decomposition, previously iden- straction involves the extraction of properties of an object
tified as the uppermost general, domain independent CT according to some focus: only those properties are selected
components, served as a starting point for this study. Af- which are relevant with respect to the focus [5]. In com-
terwards, each of the CT concepts were further examined puter programming abstraction practices can be observed
within the computer programming domain. This was a two- within two categories: by mechanisms or by programming
step process. Fundamental programming concepts and prac- constructs. Abstraction by specification and abstraction by
tices were grouped into four categories within the first step. parametrization are the two mechanisms that make abstrac-
The initial corpus of computer programming concepts was tions explicit and tangible. Furthermore, these two powerful
sourced from the results of research conducted by Luxton- methods for constructing computer programs contribute to
Reilly et al. [10]. Within the literature review they identified the definition of the following important programming con-
more than sixty different computer programming concepts structs: procedural abstraction, data abstraction, iteration
that were grouped into twelve master categories. To extract abstraction and type hierarchy.
only concepts relevant to algorithm, abstraction and decom- Decomposition deals with breaking down a problem into
position, each particular concept from [10] was further ana- smaller, more manageable components where each compo-
lysed with the relevant sections of the Computer Science nent can be managed independently. Levels of abstraction
Curricula 2013 [17] and chapters concerning the software need to be utilized to successfully decompose a problem into
engineering [2]. The aims of the second step were the in- smaller components. In computer science, distinct variants
tersection points between particular fundamental computer of decomposition can be observed. Parnas [13] investiga-
programming concepts and the CT concepts. Computer Sci- ted hierarchical decomposition in the context of modularity
ence Curricula 2013 [17] and the dissertation reporting on in order to decompose complex information system into a
the process of developing validated CS assessment [23] were number of smaller, manageable modules. Moreover, decom-
the primary sources for the aligning process. position is the crucial part of structured, object-oriented and
functional programming paradigms. Generally, the aim is to
The proposed framework of computational thinking for in- decompose a computer program into modules, which are set
troductory programming in higher education (CTF) is pre- of smaller programs to solve sub problems. Smaller pro-
sented in the Table 1. The CTF is envisioned to serve as the grams interact with one another in a simple, well defined
foundation for designing CT instruments and course mate- way.
rials to assess and foster computational thinking for CS ma-
jors and non-CS majors. The visual representation of the As a discipline, computer programming incorporates seve-
CTF is represented as a two dimensional grid. The axis of ral processes, skills and practices. However, our aim at this
this framework describes the main components that make up point was to identify computer programming skills and prac-
CT, as well as programming practices that are part of com- tices that correlate with particular CT concepts. The pri-
puter programming. Each grid element incorporates com- mary source for identifying programming skills and practices
puter programming concepts that are aligned with particu- was the Computer Science Curricula’s sections Fundamen-
lar CS curriculum category [17]. We envision each of these tal Programming Concepts, Development Methods, Algori-
programming concepts to be implemented as programming thms and Design [17]. Furthermore, to observe the broadest
artefacts within the specific programming methodology or spectrum, software engineering skills and practices were also
as a pseudocode. included within our study [2], [9]. Finally, problem concep-
tualization, implementation, debugging and evaluation were
Algorithm, abstraction and decomposition are the relevant, included in the framework. They are represented on hori-
domain independent CT components that were identified in zontal axis in the Table 1. We define problem conceptuali-
our previous study [4]. It should be noted that thirty-six zation as an algorithmic solution to the observed problem.
different CT concepts, skills and practices were identified
StuCoSReC Proceedings of the 2019 6th Student Computer Science Research Conference 10
Koper, Slovenia, 10 October
straction, arrays of objects, and inheritance. The results tion and decomposition appeared to be relevant, domain in-
of the assessment were categorized into five computational dependent CT components. The relevance was evaluated
thinking concepts. Romero et al. [16] proposed a framework according to the frequency identified in a literature review.
for evaluating CT in creative programming activities. The Within our CTF, they are represented on the vertical axis.
intervention was applied to undergraduate students of a ba- Algorithms can be generally defined as procedural building
chelor’s degree in elementary school education. Peteranetz blocks of a computer programming, of a human thought and
et al. [14] report on fostering computational thinking thro- of a general problem solving [4]. In the theoretical computer
ugh computational creativity based on an online course that science, an algorithm is defined as a procedure that satisfies
was tailored for non-CS majors. Rambally [15] proposed a the criteria of finiteness, input, output, effectiveness, and
framework of CT skills and practices that were integrated definiteness [8]. However, in our framework an algorithm
into discrete structures course, which was a required course is associated with constructing an algorithmic solution to a
for all Information Technology majors. Finally, the two most problem to be solved. In educational context, this practice
cited papers in context of CT frameworks appear to be Bren- is referred as algorithmic thinking.
nan and Resnick [3] and Weintrop et al. [24]. Although none Abstraction can generally be characterized as the conceptual
of the papers was aimed for the CT within higher education, process of eliminating specificity by ignoring certain featu-
there are studies that build on these particular papers in the res. Abstraction is closely related to the modeling concept
context of higher education. and to the concept of generalization. The model is abstrac-
tion of a real or a conceptual complex system. Abstraction
3. PROPOSED FRAMEWORK levels and the hierarchy of abstraction are important aspects
in the models design practice. In software engineering, ab-
Algorithm, abstraction and decomposition, previously iden- straction involves the extraction of properties of an object
tified as the uppermost general, domain independent CT according to some focus: only those properties are selected
components, served as a starting point for this study. Af- which are relevant with respect to the focus [5]. In com-
terwards, each of the CT concepts were further examined puter programming abstraction practices can be observed
within the computer programming domain. This was a two- within two categories: by mechanisms or by programming
step process. Fundamental programming concepts and prac- constructs. Abstraction by specification and abstraction by
tices were grouped into four categories within the first step. parametrization are the two mechanisms that make abstrac-
The initial corpus of computer programming concepts was tions explicit and tangible. Furthermore, these two powerful
sourced from the results of research conducted by Luxton- methods for constructing computer programs contribute to
Reilly et al. [10]. Within the literature review they identified the definition of the following important programming con-
more than sixty different computer programming concepts structs: procedural abstraction, data abstraction, iteration
that were grouped into twelve master categories. To extract abstraction and type hierarchy.
only concepts relevant to algorithm, abstraction and decom- Decomposition deals with breaking down a problem into
position, each particular concept from [10] was further ana- smaller, more manageable components where each compo-
lysed with the relevant sections of the Computer Science nent can be managed independently. Levels of abstraction
Curricula 2013 [17] and chapters concerning the software need to be utilized to successfully decompose a problem into
engineering [2]. The aims of the second step were the in- smaller components. In computer science, distinct variants
tersection points between particular fundamental computer of decomposition can be observed. Parnas [13] investiga-
programming concepts and the CT concepts. Computer Sci- ted hierarchical decomposition in the context of modularity
ence Curricula 2013 [17] and the dissertation reporting on in order to decompose complex information system into a
the process of developing validated CS assessment [23] were number of smaller, manageable modules. Moreover, decom-
the primary sources for the aligning process. position is the crucial part of structured, object-oriented and
functional programming paradigms. Generally, the aim is to
The proposed framework of computational thinking for in- decompose a computer program into modules, which are set
troductory programming in higher education (CTF) is pre- of smaller programs to solve sub problems. Smaller pro-
sented in the Table 1. The CTF is envisioned to serve as the grams interact with one another in a simple, well defined
foundation for designing CT instruments and course mate- way.
rials to assess and foster computational thinking for CS ma-
jors and non-CS majors. The visual representation of the As a discipline, computer programming incorporates seve-
CTF is represented as a two dimensional grid. The axis of ral processes, skills and practices. However, our aim at this
this framework describes the main components that make up point was to identify computer programming skills and prac-
CT, as well as programming practices that are part of com- tices that correlate with particular CT concepts. The pri-
puter programming. Each grid element incorporates com- mary source for identifying programming skills and practices
puter programming concepts that are aligned with particu- was the Computer Science Curricula’s sections Fundamen-
lar CS curriculum category [17]. We envision each of these tal Programming Concepts, Development Methods, Algori-
programming concepts to be implemented as programming thms and Design [17]. Furthermore, to observe the broadest
artefacts within the specific programming methodology or spectrum, software engineering skills and practices were also
as a pseudocode. included within our study [2], [9]. Finally, problem concep-
tualization, implementation, debugging and evaluation were
Algorithm, abstraction and decomposition are the relevant, included in the framework. They are represented on hori-
domain independent CT components that were identified in zontal axis in the Table 1. We define problem conceptuali-
our previous study [4]. It should be noted that thirty-six zation as an algorithmic solution to the observed problem.
different CT concepts, skills and practices were identified
StuCoSReC Proceedings of the 2019 6th Student Computer Science Research Conference 10
Koper, Slovenia, 10 October