UNIT 19: DATA STRUCTURES & ALGORITHMS
Student Name/ID Number
Unit number Unit 19. Data Structures & Algorithms
Academic Year SU24
Unit Tutor Cao Tien Thanh
Assignment Title Examine and specify ADT and DSA
Issue Date
Submission Date
Submission Format
Format: This submission will have 3 components
1. Written report: The submission is in the form of an individual written report. This should
be written in a concise, formal business style using single spacing and font size 12. You are
required to make use of headings, paragraphs and subsections as appropriate, and all
work must be supported with research and referenced using the Harvard referencing
system. Please also provide a bibliography using the Harvard referencing system.
2. Implemented System (Software): The student should submit a system developed using an
IDE. Implemented program in format suitable to be run and assessed for functionality –
this could be as project/solution files or final compiled executable.
3. Presentation: With submitted system, student should do a presentation to demonstrate
the system that was developed. Time allocated is 10 to 15 minutes.
Submission Students are compulsory to submit the assignment in due date and in a way
requested by the Tutors. The form of submission will be a soft copy in PDF posted
on corresponding course of http://cms.btec.edu.vn/
Note: The Assignment must be your own work, and not copied by or from another student or
from books etc. If you use ideas, quotes or data (such as diagrams) from books, journals or other
sources, you must reference your sources, using the Harvard style. Make sure that you know how
to reference properly, and that you understand the guidelines on plagiarism. If you do not, you
definitely get fail.
Unit Learning Outcomes
LO1 Examine abstract data types, concrete data structures and algorithms
LO2 Specify abstract data types and algorithms in a formal notation
Transferable skills and competencies developed
Abstract Data Types (ADTs): Specification of ADTs with formal notation.
Data structures: Array, set, stack, queue, list, tree, types, e.g. active, passive, recursive.
Algorithm types: Recursive, backtracking, dynamic, divide and conquer, branch and bound,
greedy, randomised, brute force.
Algorithms: Sort, insertion, quick, merge, heap, bucket, selection, search linear, binary, binary
search tree, recursive, e.g. binary tree traversals, find path, travelling salesman.
Design specification: Specify ADTs using formal notation, e.g.
ASN.1. Use non-executable program specification language, e.g. SDL, VDM.
Issues, e.g. complexity in software development, design patterns, parallelism, interfaces,
encapsulation, information hiding, efficiency.
Creation: Pre-conditions, post-conditions, error-conditions.
Vocational scenario
With your role as an in-house software developer for Soft Development ABK, a software
workshop for small and medium enterprises, your manager has appointed you as the lead
software project manager.
You have been requested to create a presentation for all collaborators on how to use
abstract data types to improve design, development, testing and an introductory report for
specify abstract data types, algorithms in a formal notation.
Additionally, you are tasked with building an application that utilizes either a basic or
complex algorithm to solve a real-life problem. The requirements are that Soft Development ABK
wants a program that will allow a user to enter the following information:
Id of Student
Name of Student
Marks of Student
The program can allow users to enter the number of students in the class need to manage.
Student ranking table:
Marks Rank
[0 – 5.0) Fail
[5.0 – 6.5) Medium
[6.5 – 7.5) Good
[7.5 – 9.0) Very Good
[9.0 – 10.0] Excellent
For each student, the program will output the following information:
Student ID
Student's full name
Marks of Student
Student ranking
Add, Edit, Delete, Sort, Search for students by apply algorithms
You need to propose an alternative algorithm and evaluate the effectiveness of the
algorithm used previously.
Assignment activity and guidance
Activity 1. You will need to prepare a presentation on how to create a design specification for data
structures, explaining the valid operations that can be carried out on the structures using the
example of:
1. A stack ADT, a concrete data structure for a First In First out (FIFO) queue.
2. Two sorting algorithms.
3. Two network shortest path algorithms.
Activity 2. You will need to provide a formal written report that includes the following:
1. Explanation on how to specify an abstract data type using the example of software stack.
2. Explanation of the advantages of encapsulation and information hiding when using an
ADT.
3. Discussion of imperative ADTs with regard to object orientation.
Guidance
Create a design specification for data structures, explaining the valid operations that can be
carried out on the structures.
Identify the Data Structures
Define the Operations
Specify Input Parameters
Define Pre- and Post-conditions
Discuss Time and Space Complexity
Provide Examples and Code Snippets (if applicable)
Determine the operations of a memory stack and how it is used to implement function
calls in a computer.
Define a Memory Stack
Identify Operations
Function Call Implementation
Demonstrate Stack Frames
Discuss the Importance
Illustrate, with an example, a concrete data structure for a First in First out (FIFO) queue.
Introduction FIFO
Define the Structure
Array-Based Implementation
Linked List-Based Implementation
Provide a concrete example to illustrate how the FIFO queue works
Compare the performance of two sorting algorithms.
Introducing the two sorting algorithms you will be comparing
Time Complexity Analysis
Space Complexity Analysis
Stability
Comparison Table
Performance Comparison
Provide a concrete example to demonstrate the differences in performance
between the two algorithms
Analyse the operation, using illustrations, of two network shortest path algorithms, providing an
example of each.
Introducing the concept of network shortest path algorithms
Algorithm 1: Dijkstra's Algorithm
Algorithm 2: Prim-Jarnik Algorithm
Performance Analysis
Specify the abstract data type for a software stack using an imperative definition.
Define the data structure
Initialize the stack
Push operation
Pop operation
Peek operation
Check if the stack is empty
Examine the advantages of encapsulation and information hiding when using an ADT.
Encapsulation
+ Data Protection
+ Modularity and Maintainability
+ Code Reusability
Information Hiding
+ Abstraction
+ Reduced Complexity
+ Improved Security
Discuss the view that imperative ADTs are a basis for object orientation offering a justification for
the view.
Encapsulation and Information Hiding
Modularity and Reusability
Procedural Approach
Language Transition
Recommended Resources
Please note that the resources listed are examples for you to use as a starting point in your
research – the list is not definitive.
Learning Outcomes and Assessment Criteria
Pass Merit Distinction
LO1. Examine abstract data types, concrete data structures D1 Analyse the operation, using
and algorithms illustrations, of two network
shortest path algorithms, providing
P1 Create a design M1 Illustrate, with an an example of each.
specification for data example, a concrete data
structures, explaining the structure for a First in First
valid operations that can be out (FIFO) queue.
carried out on the
structures.
M2 Compare the
performance of two sorting
P2 Determine the operations algorithms.
of a memory stack and how
it is used to implement
function calls in a computer.
LO2. Specify abstract data types and algorithms in a formal D2 Discuss the view that imperative
notation ADTs are a basis for object orientation
P3 Specify the abstract data M3 Examine the advantages offering a justification for the view.
type for a software stack of encapsulation and
using an imperative information hiding when
definition. using an ADT.