0% found this document useful (0 votes)
12 views3 pages

Wa0082.

Uploaded by

pamusulacikala
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views3 pages

Wa0082.

Uploaded by

pamusulacikala
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

E3.

5 COM321: Data structures and Algorithm

E3.5.1 Background and Rationale

This module will provide learners with a detailed insight into data structure and
algorithms examining and introducing the basic mathematical concepts needed for the
analysis of algorithms and for the study of computational complexity. The inversion,
assessment, structured description and implementation of algorithms and data
structures is a basic skill in computer science. Knowledge of the basic material in
algorithms is therefore very important. Students should gain both the theoretical
background in correctness and complexity, and the practical experience of
implementing algorithms and data structures and assessing their performance.

This module is to allow students comprehend abstract data structures, algorithm


analysis, strings, lists, trees, binary search trees, priority queues, hashing, graphs,
object oriented programming.

E3.5.2 Learning Objectives

By the end of this course, students should be able to:

 Impart the basic concepts of data structures and algorithms.


 Analyse problems and writing program solutions to problems using the above
techniques
 Implementation linked data structures such as linked lists and binary trees
 Comprehend basic concepts about stacks, queues, lists, trees and graphs.
 Apply algorithms and step by step approach in solving problems with the help of
fundamental data structures

E3.5.3 Learning Outcomes

After completing this course satisfactorily, a student will be able to:

 Describe how arrays, records, linked structures, stacks, queues, trees, and graphs
are represented in memory and used by algorithms.
 Create programs that use arrays, records, linked structures, stacks, queues, trees,
and graphs
 Demonstrate different methods for traversing trees
 Compare alternative implementations of data structures with respect to performance
 Compare and contrast the benefits of dynamic and static data structures
implementations
 Describe the concept of recursion, give examples of its use, describe how it can be
implemented using a stack
 Design and implement an appropriate hashing function for an application
 Discuss the computational efficiency of the principal algorithms for sorting,
searching, and hashing
E3.5.4 Prerequisites

1.0. Programming in C, Java


2.0. Mathematics in Computing

E3.5.5 Course content


1.0. Introduction to Data structures and Algorithm

1.1. Data structure and analysis of algorithm


1.2. Classification of data structure
1.3. Need for data structures

2.0. Sequential & linked


2.1. Introduction
2.2. Pointers
2.3. Linked lists
2.4. Doubly and circular linked list

3.0. Arrays and their memory representations


3.1. Type of arrays
3.2. Array Index, Element, Length
3.3. Array operation
3.4. Types of arrays (Single and Multi – Dimensional arrays)

4.0. Types of queues and stacks.


4.1. Introduction
4.2. Stack
4.3. Expressions
4.4. Queues
4.5. Circular Queues

5.0. Linked lists and their representations, insertion, deletion


5.1. Linked list representation
5.2. Types of linked list
5.3. Basic operation

6.0. Types of trees and their operations, traversal, threading.


6.1. Complete binary tree
6.2. Binary tree traversal
6.3. Expression tree
6.4. Binary Tree Search

7.0. Definitions and terminology, sorting and searching techniques


7.1. Sorting algorithms
7.2. Bubble sort
7.3. Insertion sort
7.4. Tree sort
7.5. Selection sort
7.6. Searching algorithm
7.7. Sequential searching
7.8. The indexed sequential search
8.0. Hash table, hashing functions
8.1. Choosing a Hash function
8.2. Perfect Hash function

E3.5.6 Course Delivery


 Lectures
 Discussions
 Project Presentations
 Group work
 Laboratory work

E3.5.7 Assessment
Component of assessment Number Contribution to overall
grading (%)
Continuous assessment
Assignments 1 10
Presentation 1 10
Tests 1 20
Final examination 1 60
Total Marks 100

E3.5.8 Prescribed readings


1. Clifford A. Shaffer (2012), A Practical Introduction to Data Structures and
Algorithm Analysis, Industrial Press, Inc.
2. Micheal T. Goodrich et al. (2014) Data Structures and Algorithms in Java.

E3.5.9 Recommended readings

1. Knuth D. E. (2010). The art of computer Programming. Volume 1:


Fundamental Algorithms, Pearson.

2. Budd Timothy (2011): Data structures in C++: Using the Standard Template
Library, Addison Wesley. Pearson Education Limited

You might also like