scholarly journals A research model in didactics of programming

2020 ◽  
Vol 23 (1) ◽  
Author(s):  
Sylvia Rita Da Rosa ◽  
Federico Gabriel Gómez

This paper presents a research model in didactics of programming elaborated within the theoretical framework of the epistemological theory of Jean Piaget. That theory explains the construction of scientific knowledge based on empirical studies made by Piaget over many years. The model arises from the analysis of the results of the application of principles of the theory, especially the triad of intra-inter-trans stages, to the empirical study of the construction of the concepts of algorithm, data structure and program. The elaboration of the model is a contribution to the development of the didactics of programming and, in general, of the didactics of computer science, since the model can be used in other computer science topics. Didactics is a specific area within computer science, with its own foundations and methods, which studies in depth topics related to education in the discipline. Two empirical studies about the construction of knowledge of algorithms and data structures, and of the corresponding programs as executable objects, are briefly described to illustrate the model.Both examples use a search algorithm (binary and linear) and the implementations are in the programming language C.

Sensors ◽  
2021 ◽  
Vol 21 (24) ◽  
pp. 8241
Author(s):  
Mitko Aleksandrov ◽  
Sisi Zlatanova ◽  
David J. Heslop

Voxel-based data structures, algorithms, frameworks, and interfaces have been used in computer graphics and many other applications for decades. There is a general necessity to seek adequate digital representations, such as voxels, that would secure unified data structures, multi-resolution options, robust validation procedures and flexible algorithms for different 3D tasks. In this review, we evaluate the most common properties and algorithms for voxelisation of 2D and 3D objects. Thus, many voxelisation algorithms and their characteristics are presented targeting points, lines, triangles, surfaces and solids as geometric primitives. For lines, we identify three groups of algorithms, where the first two achieve different voxelisation connectivity, while the third one presents voxelisation of curves. We can say that surface voxelisation is a more desired voxelisation type compared to solid voxelisation, as it can be achieved faster and requires less memory if voxels are stored in a sparse way. At the same time, we evaluate in the paper the available voxel data structures. We split all data structures into static and dynamic grids considering the frequency to update a data structure. Static grids are dominated by SVO-based data structures focusing on memory footprint reduction and attributes preservation, where SVDAG and SSVDAG are the most advanced methods. The state-of-the-art dynamic voxel data structure is NanoVDB which is superior to the rest in terms of speed as well as support for out-of-core processing and data management, which is the key to handling large dynamically changing scenes. Overall, we can say that this is the first review evaluating the available voxelisation algorithms for different geometric primitives as well as voxel data structures.


2007 ◽  
Vol 10 (1) ◽  
Author(s):  
Jorge Villalobos ◽  
Danilo Pérez ◽  
Juan Castro ◽  
Camilo Jiménez

In a computer science curriculum, the data structures course is considered fundamental. In that course, students must generate the ability to desingn the more suitable data structures for a problem solution. They must also write an efficient algorithm in order to solve the problem. Students must understand that there are different types of data structures, each of them with associated algorithms of different complexity. A data structures laboratory is a set of computional tools that helps students in the experimentation with the concepts introduced in the curse. The main objetive of this experimentation is to generate the student's needed abilities for manipulating complex data structure. This paper presents the main characteristics of the laboratory built as a sopport of the course. we illustrate the huge possibilities of the tool with an example.


Author(s):  
Ari Korhonen

Understanding data structures and algorithms is an integral part of software engineering and elementary computer science education. However, people usually have difficulty in understanding abstract concepts and processes such as procedural encoding of algorithms and data structures. One way to improve their understanding is to provide visualizations to make the abstract concepts more concrete. In this chapter, we represent a novel idea to promote the interaction between the user and the algorithm visualization system called visual algorithm simulation. As a proof of concept, we represent an application framework called Matrix that encapsulates the idea of visual algorithm simulation. The framework is applied by the TRAKLA2 learning environment in which algorithm simulation is employed to produce algorithm simulation exercises. Moreover, we discuss the benefits of such exercises and applications of visual algorithm simulation in general.


Algorithmica ◽  
2020 ◽  
Vol 82 (12) ◽  
pp. 3707-3743
Author(s):  
Amihood Amir ◽  
Panagiotis Charalampopoulos ◽  
Solon P. Pissis ◽  
Jakub Radoszewski

Abstract Given two strings S and T, each of length at most n, the longest common substring (LCS) problem is to find a longest substring common to S and T. This is a classical problem in computer science with an $$\mathcal {O}(n)$$ O ( n ) -time solution. In the fully dynamic setting, edit operations are allowed in either of the two strings, and the problem is to find an LCS after each edit. We present the first solution to the fully dynamic LCS problem requiring sublinear time in n per edit operation. In particular, we show how to find an LCS after each edit operation in $$\tilde{\mathcal {O}}(n^{2/3})$$ O ~ ( n 2 / 3 ) time, after $$\tilde{\mathcal {O}}(n)$$ O ~ ( n ) -time and space preprocessing. This line of research has been recently initiated in a somewhat restricted dynamic variant by Amir et al. [SPIRE 2017]. More specifically, the authors presented an $$\tilde{\mathcal {O}}(n)$$ O ~ ( n ) -sized data structure that returns an LCS of the two strings after a single edit operation (that is reverted afterwards) in $$\tilde{\mathcal {O}}(1)$$ O ~ ( 1 ) time. At CPM 2018, three papers (Abedin et al., Funakoshi et al., and Urabe et al.) studied analogously restricted dynamic variants of problems on strings; specifically, computing the longest palindrome and the Lyndon factorization of a string after a single edit operation. We develop dynamic sublinear-time algorithms for both of these problems as well. We also consider internal LCS queries, that is, queries in which we are to return an LCS of a pair of substrings of S and T. We show that answering such queries is hard in general and propose efficient data structures for several restricted cases.


2019 ◽  
Vol 6 (2) ◽  
pp. 205395171985874
Author(s):  
Adam Burke

Two definitions of algorithm, their uses, and their implied models of computing in society, are reviewed. The first, termed the structural programming definition, aligns more with usage in computer science, and as the name suggests, the intellectual project of structured programming. The second, termed the systemic definition, is more informal and emerges from ethnographic observations of discussions of software in both professional and everyday settings. Specific examples of locating algorithms within modern codebases are shared, as well as code directly impacting social and ethical concerns. The structural distinction between algorithms and social concerns is explained as mirroring the engineering construct of algorithms and data structures. It is proposed that, rather than this separation being an attempt to enforce a professional boundary and evade social responsibility, it is a crucial technical distinction within code which makes it clearer and more transparent. The power structures reinforced by the broader, cultural interpretations of algorithm are reconsidered, along with what it would mean for software to have an inclusive design culture.


2019 ◽  
Vol 6 (1) ◽  
pp. 43-49
Author(s):  
Alethea Suryadibrata ◽  
Julio Cristian Young ◽  
Richard Luhulima

Among many pathfinding algorithms, A* search algorithm is an algorithm that most commonly used in grid-based pathfinding. This is due to implementation of A* search which proven to be able to generate the optimal path in a relatively short time by combining two characteristics of Djikstra's and best-first search algorithm. In the implementation of A* search, the selection of heuristic function and data structure can affect the performance of the algorithm. The purpose of this research is to find the best heuristic function and data structure with regards of the performance in A* search implementation as a pathfinding algorithm in a 3D platform. In the experiment, some known heuristic functions and data structures will be tested on the various 3D platform with a different size and obstacle percentage. Based on experiment that have been done, euclidean squared distance is best heuristic function for 3D pathfinding problem, with regards of the implementation performance. In addition, we also found that binary heap is the best data structure to be implemented for 3D pathfinding problem, with regards of implementation performance. 


1999 ◽  
Vol 9 (1) ◽  
pp. 93-104 ◽  
Author(s):  
RALF HINZE

Functional programming languages are an excellent tool for teaching algorithms and data structures. This paper explains binomial heaps, a beautiful data structure for priority queues, using the functional programming language Haskell (Peterson and Hammond, 1997). We largely follow a deductive approach: using the metaphor of a tennis tournament we show that binomial heaps arise naturally through a number of logical steps. Haskell supports the deductive style of presentation very well: new types are introduced at ease, algorithms can be expressed clearly and succinctly, and Haskell's type classes allow to capture common algorithmic patterns. The paper aims at the level of an undergraduate student who has experience in reading and writing Haskell programs, and who is familiar with the concept of a priority queue.


2021 ◽  
Vol 73 (1) ◽  
pp. 134-141
Author(s):  
A.R. Baidalina ◽  
◽  
S.A. Boranbayev ◽  

The article discusses ways of programming algorithms for complex data structures in Python. Knowledge of these structures and the corresponding algorithms is necessary when choosing the best methods for developing various software. When studying the subject "Algorithms and Data Structures", it is important to understand the essence of data structures. This is due to the fact that manipulating a data structure to fit a specific problem requires an understanding of the essence and algorithms of this data structure. Examples of programming algorithms related to dynamic lists and binary search trees in the currently widely used Python language are given. The algorithms for traversing the graph in depth and breadth are optimally and clearly implemented using the Python dictionary.


2012 ◽  
pp. 546-563
Author(s):  
Ari Korhonen

Understanding data structures and algorithms is an integral part of software engineering and elementary computer science education. However, people usually have difficulty in understanding abstract concepts and processes such as procedural encoding of algorithms and data structures. One way to improve their understanding is to provide visualizations to make the abstract concepts more concrete. In this chapter, we represent a novel idea to promote the interaction between the user and the algorithm visualization system called visual algorithm simulation. As a proof of concept, we represent an application framework called Matrix that encapsulates the idea of visual algorithm simulation. The framework is applied by the TRAKLA2 learning environment in which algorithm simulation is employed to produce algorithm simulation exercises. Moreover, we discuss the benefits of such exercises and applications of visual algorithm simulation in general.


Sign in / Sign up

Export Citation Format

Share Document