Data Structure Assignment: Weekly Reflective Journal On Data Structure & Algorithms
Question
Task: In this data structure assignment, students are required to write a Reflective Journal in which they reflect on unit content and learning experiences from 11 weeks. In this assignment you should describe an interesting or important aspect of each week’s content/experiences, analyse this aspect of the week critically by incorporating and discussing academic or professional sources, and then discuss your personal learning outcomes.
Answer
Introduction
In this reflective journal on data structure assignment, all the learning material between week 1 to week 11 will be illustrated. The main focus of the learning unit is to evaluate various aspects of the data structure and algorithm. In order to understand the nature of any problem, data structure and algorithm is vital approaches that must be analyzed by the learners. However, programmers solve any kind of problems and issues with the help of different algorithms and the result is stored in the data structure. Therefore, this report will include all the necessary aspects of the data structure and algorithm which have been discussed between week 1 and week 11. However, the main body of the report has been divided into three main sections that are description, analysis, and outcomes. In each section, several questions have been illustrated that will be addressed in this reflective journal. Furthermore, a comprehensive concept of data structure and algorithm will be illustrated in this report.
Discussion
Week 1
Description
The main focus of this week’s lecture is to provide a brief knowledge ofthe Java programming language and its data structures. On the other hand, the benefits of the learning algorithm have also been included in this week's material.The linear data structure is one of the most interesting concepts throughout the week’s learning material. This type of data structure is arranged with linked data types or similar type of data that follows a linear trend.
Analysis
In the above section, the linear data structure has been mentioned in which array is the primary concept for programming. After going through the arrays, I feel that this is the basic concept of data structure that could help me a lot in future programming projects. According to Salvy (2019), the array is an effective way to store the same type of data to calculate by simply adding an offset to a base value. If the data is fixed and does not need to be deleted then the array is abetter option.
Outcomes
I have learned different aspects of data structure and algorithms from this unit. At the same time, I have to make a strong base on data structure and algorithms to conduct further projects and programming tasks. Practical implementation of arrays and lists should be learned to get a better understanding of the programming language. I want to know about the type of applications in which arrays and lists could be implemented. This experience on data structure and algorithms will be automatically utilized in different object-oriented programming tasks.
Week 2
Description
The main focus of the second week’s learning material is to provide knowledge on stacks and queues that are the linear data structure. In this unit, data insertion and deletion techniques are the most interesting topics I feel. Stack followsthe LIFO (last in first out) method to insert and extract data. On the other hand, the queue follows FIFO (first in first out) method.
Analysis
One specific aspect of this learning material is the conceptual view of stack and queues. The conceptual view gives an overview of data insertion and deletion from the array. I was able to get a clear understanding of stacks and queues with the help of a conceptual view. According to Stigall, and Sharma (2018), in a stack, just one endpoint of both the list, named the top, is used for data insertion and deletion. In queues, data manipulation occurs from opposite ends of both lists. The deletion occurs from the beginning of the list, whereas the addition occurs at the back of the list.
Outcomes
From this unit, I have learned about the data insertion and deletion process in a list or array during object-oriented programing. The basic concept of linear data structure has been illustrated through this learning material. Still, it needs to learn the implementation of stack and queues in different applications and tasks. This learning outcome could be used in future projects and programs where data manipulation is to be performed.
Week 3
Description
This week's learning material mainly focuses on the theoretical aspects related to the analysis of algorithms. Here, algorithm efficiency, Big-Oh notation, the concept of asymptotic complexity, and growth function complexity have been illustrated.The algorithm efficiency is the most interesting aspect of this unit. It is measured by the average time of execution of an algorithm on a given data set.
Analysis
Based on the efficiency,algorithms are categorized. I got an overview of the efficiency calculation for different algorithms.According to Yousaf et al. (2019), if two algorithms for the same application have the same sequence, they are roughly equivalent in terms of computational efficiency. Algorithm efficiency is important for assessing the difficulty of implementing specific challenges.
Outcomes
From this unit, various aspects of algorithm analysis in data structure and algorithm have been achieved. I have learned that the theoretical concept of algorithm analysis is necessary to implement in real-time projects. The practical implementation of different algorithms must be evaluated further. I feel that the calculation of memory usage by different algorithms needs to be analyzed briefly for practical implementation.However, this learning outcome could help to improve my algorithm selection capabilities in further projects.
Week 4
Description
This week’s learning material mainly focuses on the illustration of the searching and recursion programming method. Recursive programming is the most interesting approach in this unit that helps to express a concept during programing. In order to develop algorithms, recursive programming is a vital approach that could be utilized by programmers.
Analysis
In recursive programming, a problem can be identified as a recursive model that helps to determine the suitable algorithm for the issue. Sometimes, recursion may become less efficient as compared to iteration. I feel that recursion programming can only be used in some specific types of problems. According toMaioranaet al. (2020), if the situation can be divided into smaller forms, we might be capable of solving either of these small boxes of issues and then work our way up to a resolution for the overall problem which is the main theme of the recursion method.
Outcomes
From this week's learning material, I have learned about the simple form of programming to solve problems like recursion and searching. There are several types of search that have also been discussed in this learning material which helped me to understand the variety of data structures. I still need to learn about the practical implementation of different algorithms in different problems.
Week 5
Description
In this week’s learning material, elementary sorts have been illustrated that helps to arrange data in a specified order. There are several sorting applications that use this algorithm to arrange data properly. However, both the selection sort and insertion sorts are interesting factors that have been illustrated in this lecture material. Selection sort is the simplest method of sorting. On the other hand, the insertion sorting method is mainly applied by the card players which isalso a simple method of sorting.
Analysis
In the selection sorting method, a scan is done from left to right. Data or entries are scanned from the left side and arranged in ascending order. The selection sorting method is implemented into the mathematical and animation works. I feel that the sorting technique is widely being used by most data storage applications. According to Gupta, Singh and Kaur (2020), a sorting technique is a sequence of instructions that accepts an array as data, executes predefined procedures on the array, and returns a binary sequence.
Outcomes
I have learned the sorting approach in programming and its applications. This is the most effective approach that must be analyzed properly to arrange data in a proper sequence or order. I still need to get better at the selection of algorithmswith respect to different problems and challenges.However, the selection and insertion method has been evolving with new algorithms and programs.
Therefore, this learning outcome could be utilized in the future to manage huge data or storage devices.
Week 6
Description
The sixth week of the lecture is mainly focused on the Merge sort and it will accomplish breaking the array in half & combining the two sides of the programming languages. Therefore, the most interesting topic from this learning unit is Java implementation and, in this section, I have focused on the Java implementationstructure that includes many unique implementations of the fundamental interfaces.
Analysis
On the other hand, this week, it was determined that one learning factor involves the technical rate of an issue that cuts across multiple categories.I will get the impression that the java implementation programs have been created a critical that the additional array not be created in the repeated routine.Basically, programmers are allocating the memory for a bunch of arrays that aren't necessary. According to Marcellinoet al. (2021), java implementation is a HashSet that is often used implementation of the set interface.
Outcomes
From this unit, I have learned that the Merge sort combine has multiple adjacent categories, &break the database into the base unit, then compare every component with the adjacent table. it will help me in the future with any type of merge sort work. There is still plenty to learn about divide-and-conquer recurrence.In the future, it will be necessary to learn about Java implementation for resolving the programs. There are no questions regarding the Merge sort. Yes, the experience would help me to acknowledge the merge sort for becoming a professional in the future.
Week 7
Description
This week of the lecture is focused on Quicksort of the algorithms and it will include the array is shuffled & sequentially sort every subarray. However, the most interesting topic from this learning unit is Quicksort properties and, in this section, I have focused on the Sort algorithms is used to find out the information,&because Quicksort is indeed the quickest algorithm results fora better approach to searching.
Analysis
On the other hand, this week, it was determined that one learning factor involves the additional empty components are created to retain items smaller than the pivot element.I will get the impression that the Quicksort algorithms have been created a proportional detail by repeating on the lesser subarray after the bigger subarray. According to Taiwoet al. (2020), Quicksort properties are used for arrays, it is a cache-friendly method due to the high quality of access.
Outcomes
From this unit, I have learned that the Quicksort algorithms to understand the Quicksort lab for sort data rapidly & use recurrence. It will help me in the future with any type of Quicksort algorithm work. There is still a lot to learn about Quicksort mathematical analysis.In the future, it will be necessary to learn about sorting algorithms for resolving the algorithms. There are no questions regarding the Quicksort. Yes, the experience would help me to acknowledge the Quicksort for becoming a professional in the future.
Week 8
Description
This week's lecture material is mainly dedicated to the Heap sort of the algorithm & it will accomplish the nodes that are either empty with links to the left and right two trees. Therefore, the most interesting topic from this learning unit is sorting with a binary heap and, in this section, I have focused on the Heap sort is based on the sorting process that uses in the binary heap data framework.
Analysis
On the other hand, various aspects of this week that one learning element includes theHeap is often a completed binary tree, which implies all of the tree levels are completely filled.I will get the impression that the heap sort algorithms have been constructing the array by first converting it to a maximum heap. According to Shah and Jani (2018), the data structure, Heap Sort is used once the lowestor greatestitem is required immediately.
Outcomes
In this unit, I have learned the major concept that needs to be Heap sort & preserve the heap property, heap construction, and prioritized queues. It will help me in the future with any type of Heap sort algorithm work. There is still a lot to learn about Heap sort construction.In the future, it will be necessary to learn about the heap-ordered binary tree for resolving the algorithms. Regarding this lecture, I have a question about the Heap sort mathematical analysis. Yes, I intend to use my experiences to advance professionally in the future.
Week 9
Description
This week's lecture material is mainly dedicated to the Binary Search tress & it will accomplish both the left and right subtrees then there can be no redundant nodes. Therefore, the most interesting topic from this learning unit is Binary Search Tree (BST) representation in java, and, in this section, I have focused on a binary tree as a recurrent data model and that each node can have no more than two offspring.
Analysis
On the other hand, various aspects of this week that one learning element includes the Binary Search trees are mainly used for searching and sorting since they give a location to organize data hierarchical structures.I will get the impression that the type of grounded binary tree for that the nodes are placed in a certain way. According to Fuchset al. (2021), BST enables quick item entry, retrieval, and finding while providing an effective technique to repeat them in a proper array.
Outcomes
In this unit, I have learned the major concept that needs into the BST & insertion, deletion, and traversal that are performed on binary trees. It will help me in the future with any type of Binary Search tree work. There is still a lot to learn about BST insertion in random order visualization.In the future, it will be necessary to learn about BST implementation for resolving the algorithms. Regarding this lecture, I have a question about the Hibbard deletion. Yes, I intend to use my experiences to advance professionally in the future.
Week 10
Description
This week’s lecture material is mainly focused on the Balanced Search Trees &and it will ensure that the tree data structure has more information about the size of nodes. Therefore, the most interesting topic from this learning unit is Local transformations in a 2-3 tree, and, in this context, I have focused on the persistent figure of operation in severe into a 4-nodes for local transformation.
Analysis
On the other hand, various aspects of this week that one learning element includes that the series of insertions and deletions, it constantly maintains its height minimal to be assured in logarithmic.I will get the impression that the binary search is a self-balancing tree that has been used to keep a categorized amount of information. According to Andersson, Fagerberg and Larsen (2018), the mobility required to ensure balance in binary search nodes is to enable nodes in their trees to carry or more one key.
Outcomes
In this unit, I have learned the major concept that needs the nodes allows for improved search times & preferable to maintain the height to a minimum. It will help me in the future with any type of Balance search tree work. There is still a lot to learn about the search implementation for red-black BTSs.In the future, it will be necessary to learn about the 2-3 tree insertion technique is based on each of these alterations. Regarding this lecture, I have no question about this context. Yes, I intend to use my experiences to advance professionally in the future.
Week 11
Description
This week's lecture material is mainly dedicated to the Hash Tables & it will accomplish the hash database is a data framework that holds data associatively. However, the most interesting topic from this learning unit is Java hash code conventions, and, in this section, I have focused on the hash code technique is used on the identical object multiple times throughout the operation of a Java program.
Analysis
On the other hand, this week, it was determined that one learning factor is hash algorithm allocates the data "uniformly" over the complete array of potential hash values.I will get the impression that the Hash tables utilize a hash algorithm to identify the position through an array into which a component would be placed or found. According to Amme, Heinze and Schäfer (2021), a hash table is a database format that supports the abstract data type withthe correlated array and a structure that could also link into the keys.
Outcomes
From this unit, I have learned that the Hash table opens referencing and linking are two alternative variants of the Hash Map interface to implement. It will help me in the future with any type of Hash table work. There is still a lot to learn about implementing hash code user define.In the future, it will be necessary to learn about java hash code for resolving the algorithms. There are no questions regarding the Hash table. Yes, the experience would help me to acknowledge the Hash table for becoming a professional in the future.
Conclusion
In this reflective report, the learning materials from week 1 to week 11 have been analysed properly and the interesting aspects from each week have been identified and illustrated. However, data structure and algorithm for the Java programming language and its different aspects have been discovered from the learning materials. The most essential aspects are linear data structure, algorithm efficiency, searching, and recursion, sorting, Java implementation, quick sorting, and binary search tree representation. All these aspects are very much helpful for the development and application of programs and codes during product development. Therefore, all the aspects discussed in this report could be effectively implemented in future product developments or object-oriented programming projects.
References
Amme, W., Heinze, T.S. and Schäfer, A., 2021, September. You look so different: Finding structural clones and subclones in java source code. In 2021 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 70-80).IEEE.
Andersson, A., Fagerberg, R. and Larsen, K.S., 2018. Balanced binary search trees.In Handbook of Data Structures and Applications (pp. 151-170).Chapman and Hall/CRC.
Fuchs, M., Holmgren, C., Mitsche, D. and Neininger, R., 2021.A note on the independence number, domination number and related parameters of random binary search trees and random recursive trees.Data structure assignment Discrete Applied Mathematics, 292, pp.64-71.
Gupta, A., Singh, D. and Kaur, M., 2020. An efficient image encryption using non-dominated sorting genetic algorithm-III based 4-D chaotic maps. Journal of Ambient Intelligence and Humanized Computing, 11(3), pp.1309-1324.
Maiorana, F., Csizmadia, A., Richards, G. and Riedesel, C., 2020, October. Recursion Versus Iteration: A Comparative Approach for Algorithm Comprehension. In International Conference on Interactive Collaborative and Blended Learning (pp. 247-259).Springer, Cham.
Marcellino, M., Pratama, D.W., Suntiarko, S.S. and Margi, K., 2021, October. Comparative of Advanced Sorting Algorithms (Quick Sort, Heap Sort, Merge Sort, Intro Sort, Radix Sort) Based on Time and Memory Usage. In 2021 1st International Conference on Computer Science and Artificial Intelligence (ICCSAI) (Vol. 1, pp. 154-160).IEEE.
Salvy, B., 2019.Linear differential equations as a data structure. Foundations of Computational Mathematics, 19(5), pp.1071-1112.
Shah, D. and Jani, K., 2018. A New Approach Toward Sorting Technique: Dual-Sort Extraction Technique (DSET). In Information and Communication Technology for Sustainable Development (pp. 219-227). Springer, Singapore.
Stigall, J. and Sharma, S., 2018, April.Usability and Learning Effectiveness of Game-Themed Instructional (GTI) Module for Teaching Stacks and Queues.In SoutheastCon 2018 (pp. 1-6).IEEE.
Taiwo, O.E., Christianah, A.O., Oluwatobi, A.N. and Aderonke, K.A., 2020. Comparative Study of Two Divide and Conquer Sorting Algorithms: Quicksort and Mergesort. Procedia Computer Science, 171, pp.2532-2540. Yousaf, Q.H., Shah, M.A., Naseem, R., Wakil, K. and Ullah, G., 2019. An Effective Approach to Analyze Algorithms with Linear O (n) Worst-Case Asymptotic Complexity. International Journal of Advanced Computer Science and Applications, 10(3), p.337.