Module Code: 553/23/M09
Module Title: DESIGN AND ANALYSIS OF ALGORITHMS
ZNQF Level: 5
Credits: 15
Duration: 150 hours
Relationship with Based on Unit Standard DESIGN AND ANALYSIS OF
Qualification ALGORITHMS of Qualification Standard for ICT
Standards: TECHNICIAN
Pre-requisite PROGRAMMING CONCEPTS
modules:
Purpose of Module: This module describes the skills, knowledge and attitudes required
by an ICT TECHNICIAN to apply data structures in software
development. This includes Apply program design tools, outline
object oriented programming (OOP) concepts, apply OOP
concepts using a specific language and solve business-oriented
programming problems. Advantages of implementing data
structures in software development include, providing reusability
and abstraction, saving a good amount of time while performing
operations such as storage, retrieval, or processing of data. Access
to this module is open to all target groups including unemployed
youths, women and men wishing to establish or improve SMEs in
the development and maintenance of software
List of Learning LO1: Apply object oriented design concepts
Outcomes: LO2: Solve programming problems using recursion
LO3: Determine efficiency of algorithms
LO4: Implement algorithms for sorting and searching in data
structures
LO5: Implement stack and queue data structures
LO6: Implement linked list data structures
LO7: Apply tree data structure in problem solving
LO8: Apply graph data structure in problem solving
Learning Outcome 01 APPLY OBJECT ORIENTED DESIGN CONCEPTS
Assessment Criteria: 1.1 Propose appropriate programming paradigm
1.2 Use OOP concepts
1.3 Classify algorithms
1.4 Classify data structures
Content: 1.1 Propose appropriate programming paradigm
Define programming paradigm
Explain types of programming paradigm
Imperative Programming
Object-Oriented Programming
Functional Programming
Event-Driven Programming.
Distinguish between OOP and POP
1.2 Use OOP concepts
Explain OOP concepts
Encapsulation
Polymorphism
Inheritance
Data abstraction
Class and object
Demonstrate use of OOP concepts in programming
1.3 Classify algorithms
Define algorithm
Outline characteristics of an algorithm
Describe benefits of using algorithms
Outline factors to consider when designing an
algorithm
Explain types of algorithms
Brute force
Greedy
Recursive
Backtracking
Divide and conquer
Dynamic programming
1.4 Classify data structures
Define data structure
Outline the advantages of using data structures in
programming
Distinguish between linear and non-linear data
structures
Distinguish between static and dynamic data
structures
Outline the major operations on data structures
Assessment Tasks: 1. Written and/or oral assessment on the skills and knowledge
required to apply object oriented design concepts as
outlined in the assessment criteria.
2. Practical assessment on application of object oriented
design concepts including the following: SHEQ
requirements, the consideration of computer laboratory
environmental factors which affect the planning, problem
solving, knowledge of development platform, knowledge
of software installation and teamwork based on the
performance criteria of the relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer
Internet connection
Interactive board
Storage devices
Networking devices.
Learning Outcome 02 SOLVE PROGRAMMING PROBLEMS USING
RECURSION
Assessment Criteria 2.1 Use recursion in programming
2.2 Write recursive functions
Content 2.1 Use recursion in programming
Define recursion
Distinguish between recursion and iteration
Outline the types of recursion
Critique the use of recursion in programming
Explain the laws of recursion
2.2 Write recursive algorithms/functions (using C++)
Factorial
Towers of Hanoi
Binary search
Fibonacci sequence etc.
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to apply recursion in data structures
and algorithms as outlined in the assessment criteria.
2. Practical assessment on application of recursion the
following: SHEQ requirements, the consideration of
computer laboratory environmental factors which affect
the planning, problem solving, knowledge of development
platform, knowledge of software installation and
teamwork based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 03 ANALYSE ALGORITHMS
Assessment Criteria 3.1 Use Big Oh analysis
3.2 Calculate complexity of an algorithm
Content 1.1 Use Big Oh analysis
Define algorithm complexity
Explain the two (2) types of algorithm complexity
Outline the need for algorithm analysis
Describe algorithm complexities
Best case
Worst case
Average case
1.2 Calculate complexity of an algorithm
Outline the different algorithm time and space
complexities
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to analyze algorithms as outlined in
the assessment criteria.
2. Practical assessment on analysis of algorithms including
the following: SHEQ requirements, the consideration of
computer laboratory environmental factors which affect
the planning, problem solving, knowledge of development
platform, knowledge of software installation and
teamwork based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer with a C++ compiler
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 04 IMPLEMENT ALGORITHMS FOR SORTING AND
SEARCHING IN DATA STRUCTURES
Assessment Criteria 4.1 Develop searching algorithms
4.2 Develop sorting algorithms
Content 4.1 Develop searching algorithms
Define searching
Explain the need for searching algorithms
Outline searching algorithms
Linear search
Binary search
Compare searching algorithms
4.2 Develop sorting algorithms
Define sorting
Distinguish between in-place and not in-place sorting
Explain stable and unstable sorting, adaptive and non-
adaptive sorting
Describe sorting algorithms
Bubble sort
Selection sort
Insertion sort
Shell sort
Merge sort
Heap sort
Compare sorting algorithms
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to implement algorithms for sorting
and searching in data structures as outlined in the
assessment criteria.
2. Practical assessment on sorting and searching including
the following: SHEQ requirements, the consideration of
computer laboratory environmental factors which affect
the planning, problem solving, knowledge of development
platform, knowledge of software installation and
teamwork based on the performance criteria of the
relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 05 IMPLEMENT STACK AND QUEUE DATA
STRUCTURES
Assessment Criteria 5.1 Write algorithms to implement stacks
5.2 Write algorithms to implement queues
Content 5.1 Write algorithms to implement stacks
Define stack
Illustrate how to check whether a stack is empty of full
Explain stack operations
Push
Pop
Outline the applications of stacks
5.2 Write algorithms to implement queues
Define queue
Distinguish between stack and queue
Illustrate how to check for empty or full queue
Explain queue operations
Enqueue
Dequeue
Explain circular queues and priority queues
Outline the applications of queues
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to implement stack and queue data
structures as outlined in the assessment criteria.
2. Practical assessment on implementation of stacks and
queues including the following: SHEQ requirements, the
consideration of computer laboratory environmental
factors which affect the planning, problem solving,
knowledge of development platform, knowledge of
software installation and teamwork based on the
performance criteria of the relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer with a C++ compiler
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 06 IMPLEMENT LINKED LIST DATA STRUCTURES
Assessment Criteria 6.1 Write programs to implement linked lists
Content 6.1 Write algorithms to implement linked lists
Define linked list
Distinguish between array based list and linked list
Describe singly, doubly and circular lists
Use algorithms to perform the following on linked
lists
Create a linked list
Insert into a linked list
Traverse a linked list
Search for nodes in a linked list
Reverse a linked list
Delete from a linked list
Count the number of nodes in a linked list
Traverse a linked list
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to implement linked list data
structures as outlined in the assessment criteria.
2. Practical assessment on implementation of linked lists
including the following: SHEQ requirements, the
consideration of computer laboratory environmental
factors which affect the planning, problem solving,
knowledge of development platform, knowledge of
software installation and teamwork based on the
performance criteria of the relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer with a C++ compiler
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 07 APPLY TREE DATA STRUCTURE IN PROBLEM
SOLVING
Assessment Criteria 7.1 Declare tree data structure
7.2 Implement the tree data structure
Content 7.1 Declare tree data structure
Define tree data structure
Outline the properties of a tree data structure
Explain different types of trees
7.2 Implement the tree data structure
Outline binary tree operations
Describe binary tree traversals
Explain binary search trees
Outline the applications of binary
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to apply tree data structure in problem
solving as outlined in the assessment criteria.
2. Practical assessment on application of tree data structure
in problem solving including the following: SHEQ
requirements, the consideration of computer laboratory
environmental factors which affect the planning, problem
solving, knowledge of development platform, knowledge
of software installation and teamwork based on the
performance criteria of the relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer with a C++ compiler
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Learning Outcome 08 APPLY GRAPH DATA STRUCTURE IN PROBLEM
SOLVING
Assessment Criteria 8.1 Declare graph data structure
8.2 Illustrate graph data structure
8.3 Implement graphs
Content 8.1 Declare graph data structure
Define graph data structure
Outline the components of a graph data structure
Explain the different types of graphs
8.2 Illustrate graph data structure
Explain graph traversals (DFS, BFS)
Describe graph representations (adjacency list,
adjacency matrix)
8.3 Implement graphs
Describe the following
Topological sort
Minimum spanning trees (using Prim’s and
Kruskal’s algorithms)
Shortest path algorithm (Djikstra’s algorithm)
Transitive closure (Warshall’s algorithm)
Assessment Tasks 1. Written and/or oral assessment on the skills and
knowledge required to apply graph data structure in
problem solving as outlined in the assessment criteria.
2. Practical assessment on application of graph data
structures including the following: SHEQ requirements,
the consideration of computer laboratory environmental
factors, which affect the planning, problem solving,
knowledge of development platform, knowledge of
software installation and teamwork based on the
performance criteria of the relevant unit standard.
Conditions/Context of 1. Written and/or oral assessment can be conducted in a
assessment classroom environment. Oral assessment can also be
conducted by the assessor during the performance of the
practical assessment by the trainees.
2. The practical assessment will be conducted in the
workplace or simulated work environment in the training
institution.
3. The context of assessment should include the facilities,
tools, equipment and materials listed below.
Computer with a C++ compiler
Program design software
Internet connectivity
Interactive board
Storage devices
Networking devices.
Approach to Teaching and Learning:
1. Observation of adult learning principles.
2. Both institution-based and work-based learning to facilitate the integration of theory and
practice.
3. Face-to-face education and learning.
4. Problem-based learning.
5. Online/distance education and learning.
6. Blended/hybrid education and learning.
7. Use of social media.
Approach to Assessment:
1. Weighting of practical and theory assessment: 60% theory and 40% practical.