Software development is moving from procedural programming towards object-oriented programming (OOP). Past studies in cognitive aspects of programming have focused primarily on procedural programming languages. Object...
详细信息
The use of Scratch programming in introducing text-based programming to novices at all levels of education has gained prominence in computer science but is still hardly known among pre-service teachers. With affordanc...
详细信息
The use of Scratch programming in introducing text-based programming to novices at all levels of education has gained prominence in computer science but is still hardly known among pre-service teachers. With affordances of Scratch in learning text-based programming, we present an experience report on how we supported our first-year pre-service teachers’ learning of procedural programming concepts with Scratch for the first time. The study follows an action research strategy conducted over two cycles with 58 pre-service teachers who were purposively sampled. Findings revealed that Scratch supported the learning of procedural programming by our first-year pre-service teachers to some extent. We, therefore, recommend that pre-service teachers be exposed to more exercises while focusing on challenging concepts such as algorithms, use of variables, repetition and control structures.
Genetic programming (GP), a method of evolutionary computation, is used in producing a variety of programs. In order to generate a procedural program, handling variables is required. It increases the number of combina...
详细信息
ISBN:
(纸本)9781479941735
Genetic programming (GP), a method of evolutionary computation, is used in producing a variety of programs. In order to generate a procedural program, handling variables is required. It increases the number of combinations of generated programs. This paper proposes a method including the automatic initialization of variables and decreasing the number of combinations of them. For this propose, two major revisions are introduced. One is the introduction of new parameters, the maximum depth and the minimum depth of the height of a program tree. These make programs easy to have a specific structure. The other is the addition of genetic operations. These are for avoiding convergence of programs. Owing to these revisions, it is possible to improve the success rate of the generation of program that includes all of requirement.
This study investigated first year college students' programming skills, from the visual to the procedural. The main research question sought to investigate how the integration of a visual programming environment ...
详细信息
This study investigated first year college students' programming skills, from the visual to the procedural. The main research question sought to investigate how the integration of a visual programming environment (Scratch) could support the design of a new teaching and learning process framework towards the teaching of procedural (QBASIC) programming in Nigeria. In a quest to answer this central question, four secondary research questions guided the study which was situated in an interpretative philosophy and supported by a multi-method qualitative design. Using hermeneutic phenomenological inquiry, two cycles of practical action research (AR) strategy, involving five stages, were used. Data were collected through open ended and structured classroom observations, interviews, artefacts, instruments and documents. While the whole class was observed, the lived experiences of thirteen students were obtained. Data were thematically analysed based on the hermeneutic cycle principles. In the first AR cycle, the teaching and learning process framework (TLPF 1 ) guided teaching and learning. Outcomes from the first AR cycle influenced the design of the TLPF 2. Findings from the study revealed that the teaching intervention using the TLPF 1 and TLPF 2 promoted student learning and engagement in diverse forms. Scratch supported and enabled students to learn procedural (QBASIC) programming concepts whilst, simultaneously, enhancing their interest and motivation in this field. Understanding gained in Scratch helped students to build a correct mental representation of the Block model for procedural programming, with exception of the relations. The study also established that students learned programming through different means including: accommodation and disequilibrium, social interaction, self-regulation and problem-solving techniques. Students, therefore, suggested that Scratch programming be included in the computer science curriculum for colleges of education in Nigeria. How
This research examines the structural complexity of software and, specifically, the potential interaction of the two dominant dimensions of structural complexity, coupling and cohesion. Analysis based on an informatio...
详细信息
This research examines the structural complexity of software and, specifically, the potential interaction of the two dominant dimensions of structural complexity, coupling and cohesion. Analysis based on an information processing view of developer cognition results in a theoretically driven model with cohesion as a moderator for a main effect of coupling on effort. An empirical test of the model was devised in a software maintenance context utilizing both procedural and object-oriented tasks, with professional software engineers as participants. The results support the model in that there was a significant interaction effect between coupling and cohesion on effort, even though there was no main effect for either coupling or cohesion. The implication of this result is that, when designing, implementing, and maintaining software to control complexity, both coupling and cohesion should be considered jointly, instead of independently. By providing guidance on structuring software for software professionals and researchers, these results enable software to continue as the solution of choice for a wider range of richer, more complex problems.
A low-cost alternative to using a full-scale Lisp machine for list processing is proposed. The ASLP, a PC-based, highly pipelined list processor with two memory modules, supplements a procedural programming language t...
详细信息
A low-cost alternative to using a full-scale Lisp machine for list processing is proposed. The ASLP, a PC-based, highly pipelined list processor with two memory modules, supplements a procedural programming language to solve the list-manipulation problems in AI programs. This hardware-assisted processor was designed for use on an IBM PC AT to support list-manipulation functions. A discussion of Lisp and its internal structure and a review of existing Lisp machines are included. An estimation of the theoretical execution time for some typical list-manipulation functions, expressed in terms of machine cycles and memory cycles, is presented.
Tangible programming tools enable children to easily learn the programming process, previously considered to be difficult for them. While various tangible programming tools have been developed, there is still a lack o...
详细信息
Tangible programming tools enable children to easily learn the programming process, previously considered to be difficult for them. While various tangible programming tools have been developed, there is still a lack of available tools to help students experience the general programming process. This study therefore developed a tool called Algorithmic Bricks (A-Bricks), to improve the programming language experience by considering and utilizing characteristics of procedural language. Specifically, elements such as sequence, repetition, condition, function, and parameter were used to develop A-Bricks. In addition, this study observed the benefits of A-Bricks and confirmed its potential as a tangible educational programming tool by comparing and analyzing elementary school students using A-Bricks to control groups using Scratch.
This research investigated the cognitive characteristics for learning a visual programming language, Visual Basic. It replicated an earlier study by White (72) that used C++, an object-oriented programming language. T...
详细信息
This research investigated the cognitive characteristics for learning a visual programming language, Visual Basic. It replicated an earlier study by White (72) that used C++, an object-oriented programming language. The two cognitive characteristics investigated in this research with Visual Basic were 1) cognitive development, as measured by the Proposition Logic Test (PLT) and 2) cognitive hemispheric style, as measured by the Hemispheric Mode Indicator (HMI). Prior research has shown that object-oriented and procedural programming involves a high level of cognitive development and that procedural programmers are left brain hemispheric style thinkers. The findings from this study using a visual programming language, contradicts prior research with other programming paradigms. This study found visual programming being left cognitive hemispheric style, just like procedural programming. However, cognitive development was unimportant. While procedural and object-oriented languages require a high cognitive development level, visual programming languages require a lower level. This supports the theory that different programming language paradigms require different cognitive characteristics (73).
The paper analyzes the possibilities of transforming C programming language constructs into objects of EO programming language. The key challenge of the method is the transpilation from a system programming language i...
详细信息
The paper analyzes the possibilities of transforming C programming language constructs into objects of EO programming language. The key challenge of the method is the transpilation from a system programming language into a language of a higher level of abstraction, which does not allow direct manipulations with computer memory. Almost all application and domain-oriented programming languages disable such direct access to memory. Operations that need to be supported in this case include the use of dereferenced pointers, the imposition of data of different types in the same memory area, and different interpretation of the same data which is located in the same memory address space. A decision was made to create additional EO-objects that directly simulate the interaction with computer memory as in C language. These objects encapsulate unreliable data operations which use pointers. An abstract memory object was proposed for simulating the capabilities of C language to provide interaction with computer memory. The memory object is essentially an array of bytes. It is possible to write into memory and read from memory at a given index. The number of bytes read or written depends on which object is being used. The transformation of various C language constructs into EO code is considered at the level of the compilation unit. To study the variants and analyze the results a transpiler was developed that provides necessary transformations. It is implemented on the basis of Clang, which forms an abstract syntax tree. This tree is processed using LibTooling and LibASTMatchers libraries. As a result of compiling a C program, code in EO language is generated. The considered approach turns out to be appropriate for solving different problems. One of such problems is static code analysis. Such solutions make it possible to isolate low-level code fragments into separate program objects, focusing on their study and possible transformations into more reliable code.
Thousands of programming languages have been designed to meet different demands of application. Among the languages, many have been proposed merely for research exploration, while others have been developed for indust...
详细信息
ISBN:
(纸本)9781479957279
Thousands of programming languages have been designed to meet different demands of application. Among the languages, many have been proposed merely for research exploration, while others have been developed for industrial software productions. Whatever the languages are targeted for, they are vehicles for implementing solutions in software engineering. Therefore, it is vital criteria to evaluate a language by principles of software engineering. But to our best knowledge, modern languages, especially the newly designed ones, are mostly designed to address domain-specific requirements, instead of focusing on the basic principles of software engineering. Thus, we develop a general-purpose language, SIMPLE, which supports the concise concepts adhering to the fundamental software engineering principles. To this end, simplicity, readability, reliability, security, scalability, and efficiency are established as goals of the language and various modular language features are provided. In this paper, we introduce the design of SIMPLE and discuss how its language features comply with the software engineering principles.
暂无评论