Some methods for improving data structure teaching eﬃciency

. Computer simulation and modeling are now widely used in computer science teaching. There are various approaches to make the educational process more eﬃcient. Visualization is one of them, and the ﬂipped classroom approach is another. The goal of this research is to show how to improve the eﬃciency of teaching data structures (hashing, trees) in the Algorithms and Data Structures course. We conducted two tests with four study groups of second-year bachelor students in two Algorithms and Data Structures subjects – (1) Hashing, (2) Trees (BST, RBT, AVL). In the ﬁrst experiment, study groups on subjects (1) and (2) were formed using the same type of teaching technique, either with or without visualization tools. In contrast to the ﬁrst experiment, we employed ﬂipped classroom approaches for one study group and a traditional teaching method for the other.


Introduction
Computer modeling and simulation has become a widely used tool for solving real-world problems, for training and research on human-computer interaction with complex work and different environments. A simulation is defined as a working representation of reality [9] and can be an abstracted, simplified, or accelerated model of a process or system. Computer modeling and simulation allow exploration cases even if reality is too expensive, complex, or dangerous [9]. For purpose of appropriately using computer modeling and simulation, we need to prepare students to develop and operate with such applications.
Many concepts of computer science and software engineering are difficult for students to understand [24]. Algorithms and Data structures are one of the most important subjects in Computer Science, which is required by all programmers. Programmers need to know how to handle the data in huge quantities, how the data should be stored in the memory and how the memory should be used efficiently. We search the effective ways for implementing pedagogical tools and approaches for proper demonstration of important concepts of algorithms and data structures.
Lee and Lee [12], Knutas et al. [11], Ling et al. [13] discuss the flipped classroom methods for programming courses and promoting student engagement using this method for ordinary or large-scale courses.
The topics of team-based learning and other trends in higher education are considered by Vlachopoulos et al. [27], Burbules et al. [4]. Chang et al. [5] examine the difference in student motivation during data structure courses conducted with the visual programming language and Java.
In [2,3,10,17,23] described the taxonomy of algorithm animation languages, multimedia applications for data structure visualization, and tools for visualizing contents media of data structure courses for mobile learning. Wang [28] proposes a public computer lab management system with four functional parts that provide a convenient and efficient way for the teachers and students to communicate and improves the management level of a public computer lab.
The flipped classroom approaches presented in [1,7,8,16,26]. These studies show the effectiveness of flipped classrooms in a wide range of subjects like Engineering, Education Technology, Mathematics, and Statistics, etc. The studies also show the effectiveness of flipped classrooms in programming courses. These studies also found that the flipped classroom method facilitated learning, helped students to develop soft and hard skills, improved students' innovative consciousness and attitudes.
To study this problem, we use such methods as a literature review, own experience in teaching algorithms and data structures, tasks, tests, statistical analysis, etc.

Algorithms and Data Structures learning roadmap
Algorithms and Data structures are really important courses for every concept used in computer science and software engineering. There are many concepts involved in the subjects of Algorithms and Data structures. There will be many questions for educators like how to learn Algorithms and Data structures, as there are many concepts involved without getting confused during attending the course. For teaching the one-semester course "Algorithms and Data structures" we used the third edition of the fundamental classic CLRS book [6].
The roadmap of teaching and learning and Data structures we define as two main parts presented in schemes on figure 1 (part 1 -Algorithms) and figure 2 (part 2 -Data structures). Part 1 includes such topics as: -Algorithms analysis technics -asymptotic analysis and notations, Big-Oh, complexities of algorithms, worst, average, best cases of algorithm performing, recurrences, master theorem for solving some types of recurrence equations; -Sorting algorithms with comparisons -bubble sort, selection sort, insertion sort, merge sort, heap sort, quicksort; -Sorting algorithms without comparisons (in linear-time) -bucket sort, counting sort, radix sort; -Searcher algorithms -linear search, binary search, jump search.
Algorithms and Data structures are used to design an efficient algorithm, organize data access, and economize the execution time of programs. Data structures are widely used in operating systems, database management systems, statistical soft-ware, compiler design, numerical analysis, and artificial intelligence simulations. Algorithms and Data structures play a significant role in the computer science and soft-ware engineering domain. The course of algorithms and data structure introduces the basic data type, such as byte and character string, and presents collective data types, linked lists, stacks, arrays, queues, trees, heaps, and priority queues and complex data structures and, and focuses on programming methodologies, problem-solving strategies, and algorithm development.
The algorithms and data structures courses are typically conducted with lectures with homework, labs, and projects. Students are asked to learn algorithms implementation, data structures representations. However, students often have misconceptions. Without proper knowledge of the many classical algorithms and data structures considered in the course, it is difficult for students to understand when best to use which data structures. Such approach with the in-class lecture was mostly teacher-centered and student-teacher interaction in the class was not enough.
To find more effective ways of teaching algorithms and data structures we considered different approaches -visualization and flipped classroom concept. We decided to compare the effect on students learning results of using both approaches. The results of our research are presented in the last section. We chose Hashing and Trees topics for our research study.
The main problem of hashing, studied in the classical course Algorithms and Data Structures includes the following topics: hash tables (a generalization of an array representation), direct addressing (using an array, the size of which is comparable to the number of actual keys stored in it), resolving possible collisions (avoiding cases of different keys entering the same slot), constructing hash functions (there are a large number of implementation options), open addressing (collision resolution method), universal and ideal hashing (used to maintain O(1) time in the worst case for a statistical set of keys when performing dictionary operations).
Binary Search Trees (BST) support operations: queries -tree traversal, finding the minimum by value, finding the maximum by value, finding the next by value, finding the previous by value, finding a node with a given key value, and operations that update BST -Insertion and Removal of a Node. When studying these operations, it is necessary to draw the attention of students to the peculiarities of performing these operations, as well as the peculiarities of inserting and removing nodes. When deleting nodes, students need to consider all three possible deletion scenarios.
Red and Black Trees (RBT) are challenging enough for students to learn. RBT is a binary search tree that has an additional field x.color (red or black) and obeys the red-black properties (RB properties): each node is either red or black; tree root and leaves (nil[T]) are black; if the node is red, then both child nodes are black; for each node, all paths from it to the leaves, descendants of this node, contain the same number of black nodes.
The color field and RB properties allow the tree to be balanced. Query operations in the RB-tree are performed in the same way as in the BST. Structurealtering operations, INSERTs, and DELETEs can violate RB properties and require balancing. In the case of RB trees, the ROTATE operation is used to restore the RB property. In codes, the rotation operation is implemented by redesignating node pointers.
Another example of a balanced binary search tree that we recommend to study with students is AVL trees, which for balancing are supplemented with a node height parameter (or store the value of the difference in heights of the left and right subtrees, i.e., one of the values -1, 0, +1), and also obey the property of the AVL tree: the value of the left and right subtrees of any node should not differ by more than 1. The operations supported by AVL trees are the same as in the BST (binary search tree), RBT (red-black trees). Searching for the smallest (MIN), largest (MAX), next, and preceding element by value, searching for a node with a given key -are performed according to the same algorithms as in BST. The operations of inserting and deleting a node are first performed, as in the binary search tree, but then it is necessary to check whether the AVL property is violated. After that, it is necessary to carry outbalancing.
Flipped classroom approach has become popular in education in recent decades. The flipped classroom is a student-centered pedagogical approach in which the typical course lecture and homework are reversed. Successful flipped classroom implementation involves not just having lecture videos available before class.
The algorithms and data structures course lasts 18 weeks over a semester. The class meets twice a week. We chose two topics of data structures -Hashing and Trees -for using flipped classroom concept. Each week, we recorded the lecture in several 15-to-30-minute videos. The lecture videos are made available on Moodle before the in-class lecture. Students were instructed to watch the lecture videos before coming to class each week. In a class, face-to-face meeting, students are given worksheets, which ask students to practice the topics of data structures presented in the lecture videos each week. At the end of class, the worksheets are checked for completeness and returned to the students. Students are encouraged to help answer any questions by a teacher, to discuss, and to work out the tasks on the worksheets together with other students.
The same two topics -Hashing and Trees -we chose for implementing the visualization approach. There are a lot of algorithms and data structures visualization systems available. And it is not easy to find tools that fully meet the needed requirements. As a tool of visualization, we chose the visualization modules suggested by Mathematica 12.0 that include visualization features of hashing and trees.
Algorithms and data structures visualization can be seen as a valuable supporting pedagogical tool, used as an addition to standard classical ways of education in the field of computer science and software engineering.
Simoňák [21] concludes, that studies in which students only viewed visualizations, usually did not indicate significant learning advantages over students using conventional learning materials. It can mean that using visualizations does not guarantee students' better understanding of algorithms.

Experiments and results
We conducted two experiments with four study groups of the two subjects of the Algorithms and Data Structures -(1) Hashing, (2) Trees (BST, RBT, AVL),taught second-year bachelor students. In the first experiment, we had two study groups (A1, B1). These study groups were prepared on the subjects (1) and (2) by the same level of teaching technique (same level of explanation by the same teacher using the traditional approach). The difference was that that group A1 used visualization tools while group B1 did not apply such tools. We divided both groups as A1_h, B1_h when we collected results of experiment 1 on the "Hashing" topics, A1_t, B1_t -in case then students were learning "Trees" topics.
The second experiment involved two groups -A2, B2. They also studied Hashing (A2_h, B2_h) and Trees (A2_t, B2_t) topics. Unlike the first experiment, in the second experiment, we used flipped classroom concept for group A2 as a pedagogical approach. Study group B2 was prepared by the same teacher in a standard way using the whiteboard.
In the first experiment, the number of students in group A1 was 28, group B1 had 26 students. In the second experiment, the number of students in group A2 was 31, the number of students in group B2 was 25.
The tests at the end of studying topics of subjects (1)  In both experiments questions on Hashing were selected from the set of questions from trivial hashing, chaining for collision handling, open addressing, double hashing, perfect hashing. For a test on Trees subjects, we selected questions from BST, RBT, and AVL trees.
The total scores achieved by students from group A1 on Hashing (A1_h) and Trees (A1_t) were 30 and 22 respectively. Average scores within the group A1 on Hashing (A1_h) and Trees (A1_t) were approximately 1.071 points and 0.789 points respectively.
The total scores for group B1 on Hashing (B1_h) and Trees (B1_t) were 20 and 20 respectively. Average scores within the group B1 on Hashing (B1_h) and Trees (B1_t) were approximately 0.769 points for B1_h and B1_t.
The total scores achieved by students from group A2 on Hashing (A2_h) and Trees (A2_t) were 32 and 31.5 respectively. Average scores within the group A2 on Hashing (A2_h) and Trees (A2_t) were approximately 1.032 points and 1.016 points respectively. The total scores for group B2 on Hashing (B2_h) and Trees (B2_t) were 19 and 19.5 respectively. Average scores in group B2 were approximately 0.760 points for B2_h and 0.780 for B2_t.   result for the topic (1) was much better for group A1 than for group B1. The result for the topic (2) was almost the same for both groups A1 and B1. -In the second experiment, group A2 that used flipped classroom concept achieved better results. In the case of topic (1) Hashing the difference in average score was 1.032 vs. 0.760, with a standard deviation of 0.752 and 0.723 respectively. In the case of topic (2) Trees, the difference in average score was 1.016 vs. 0.780, with a standard deviation of 0.723 and 0.693 respectively. Thus, the result for topics (1) and (2) was much better for group A1 than for group B1.

Conclusions
There are a lot of approaches to the implementation of some ways of increasing the efficiency of teaching data structures (hashing, trees). We conducted two experiments with four study groups of two subjects of the Algorithms and Data Structures -(1) Hashing, (2) Trees (BST, RBT, AVL), -taught second-year bachelor students. In the first experiment, study groups were prepared on the subjects (1) and (2) by the same level of teaching technique with or without visualization tools. Unlike the first experiment, in the second experiment, we used flipped classroom concept for one study group and a standard way of teaching for another group. Flipped classroom and visualization as pedagogical tools can be used to teach students the necessary skills and competencies in algorithms and data structures.