Nội dung text FRONTSHEET ASM FINAL REPORT (IND).docx
Summative Feedback: Resubmission Feedback: Grade: Assessor Signature: Date: Internal Verifier’s Comments: Signature & Date:
Introduction 6 I. Create a design specification for data structures, explaining the valid operations that can be carried out on the structures. 7 1.1. Definition and role of ADTs 7 1.2. Description of each data structure: Stack, Queue, Linked List 7 1.3. Specific illustrative examples 7 1.4. Analysis of operations 7 II. Determine the operations of a memory stack and how it is used to implement function calls in a computer. 8 2.1. Overview of the memory stack 8 2.2. How the memory stack works 8 2.3. Stack and recursion 8 2.4. Advantages and disadvantages of the memory stack 8 2.5. Visual illustration 8 III. Illustrate, with an example, a concrete data structure for a First in First out (FIFO) queue. 9 3.1. Overview of the FIFO queue 9 3.2. Basic operations of a queue 9 3.3. Implementing a queue using an array 9 3.4. Implementing a queue using a linked list 9 3.5. Comparison of the two implementations 9 IV. Compare the performance of two sorting algorithms. 10 4.1. Overview of sorting algorithms 10 4.2. Selection of two algorithms for comparison 10 4.3. Description of the two algorithms 10 4.4. Comparison of the two algorithms 10 4.5. Practical testing 10 V. Analyse the operation, using illustrations, of two network shortest path algorithms, providing an example of each. 11 5.1. Overview of the shortest path problem 11 5.2. Dijkstra's algorithm 11 5.3. Bellman-Ford algorithm 11 5.4. Comparison of the two algorithms 11 5.5. Choosing the appropriate algorithm 11 VI. Specify the abstract data type for a software stack using an imperative definition. 12 6.1. Overview of ADT and imperative definition 12 6.2. Example of defining an ADT using the imperative approach 12 6.3. Implementation of the example using pseudocode or Java 12 6.4. Advantages of imperative definition 12 6.5. Practical application 12
VII. Examine the advantages of encapsulation and information hiding when using an ADT. 13 7.1. Definition of concepts 13 7.2. Benefits of encapsulation and information hiding when using ADTs 13 7.3. Illustrative example 13 7.4. Comparison before and after applying encapsulation and information hiding 13 VIII. Discuss the view that imperative ADTs are a basis for object orientation offering a justification for the view. 14 8.1. Definition of concepts 14 8.2. Role of imperative ADTs in OOP 14 8.3. Discussion: ADTs as the foundation of OOP 14 8.4. Practical example 14