Assignment Guide
Assignment Guide
Introduction
The knowledge to implement algorithms and data structures that solve real problems, and
knowing the purpose, complexity and use of algorithms is part of an essential toolkit for software
engineers. An algorithm is a sequence of instructions used to manipulate data held in a
structured form and together constitute design patterns for solving a diverse range of computer
problems, including network analysis, cryptography, data compression and process control.
This unit introduces students to data structures and how they are used in algorithms, enabling
them to design and implement data structures. The unit introduces the specification of abstract
data types and explores their use in concrete data structures. Based on this knowledge, students
should be able to develop solutions by specifying, designing and implementing data structures
and algorithms in a variety of programming paradigms for an identified need.
Among the topics included in this unit are abstract data types specification, formal data
notations, data encapsulation, complex data structures, programming language implementations
using handles, pointers, classes and methods, algorithm types, data structure libraries, algorithm
complexity, asymptotic testing and benchmarking.
On completion of this unit the student should be able to identify program data requirements,
specify abstract data types using a formal notation, translate into concrete data structures and
be able to develop, using a programming paradigm, different sorting, searching and navigational
algorithms that implement complex data structures and evaluate their effectiveness.
As a result of studying this unit students will develop skills such as communication literacy,
critical thinking, analysis, synthesis, reasoning and interpretation, which are crucial for gaining
employment and developing academic competence.
Learning Outcomes
LO1. Examine abstract data types, concrete data structures and algorithms.
Unit Content:
Wu, C. Thomas, An Adam Drozdek, Data Granville Barnett, and
introduction to object- Structures and Luca Del Tongo, Data
oriented programming Algorithms in Java, Structures and
with java™, fifth Second Edition Algorithms:
edition Annotated Reference
with Examples, 1st
edition
LO1. Examine abstract
data types, concrete X X X
data structures and
algorithms
P1 Create a design
specification for Chapter 0, 1
data
structures
explaining the
valid operations
that can
be carried out on
the
structures.
P2 Determine the
Chapter 4
operations of a
memory
stack and how it is
used
to implement
function
calls in a computer
P3 Using an Chapter 1
imperative
definition, specify
the
abstract data type
for a
software stack.
M3 Examine the
advantages of
encapsulation and
information hiding
when
using an ADT.
D2 Discuss the
view that
imperative ADTs
are a basis
for object
orientation and,
with justification,
state
whether you agree
LO3 Implement x X X
complex data
structures and
algorithms
ADT/algorithm
LO4 Assess the X X
effectiveness of
data structures and
algorithms
P6 Discuss how Chapter 1 Chapter 1
asymptotic analysis
can
be used to assess
the
effectiveness of an
algorithm.
P7 Determine two
ways
in which the
efficiency of
an algorithm can
be
measured,
illustrating
your answer with
an
example.
M5 Interpret what
a
trade-off is when
specifying an ADT
using
an example to
support
your answer.
D4 Evaluate three
benefits
of using
implementation
independent data
structures.