Module Outline Data Structures and Algorithms

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

University of Zimbabwe

Faculty of Computer Engineering Informatics and Communications


Department of Computer Science
Module Title: Data Structures and Algorithms

Instructor: Dr. Nelson Ruwa [email protected]

Module description:

This module aims at training the students in fundamental algorithms and data structures for
implementation, techniques for solving problems by programming, Linked lists, stacks, queues,
directed graphs. Trees: representations, traversals. Searching (hashing, binary search trees,
multiway trees). Garbage collection, memory management. Internal and external sorting.

The module compliments skills already learnt in programming languages such as Java, Python
and PHP. The module content is structured to help students towards attempting Professional
Certifications such as Oracle Java Certification, Certified Associate in Python Programming and
PHP Developer Certification.
General Learning Outcomes:

I. Learn the basic techniques of algorithm analysis.


II. Demonstrate several searching and sorting algorithms.
III. Implement linear and non-linear data structures.
IV. Demonstrate various tree and graph traversal algorithms.
V. Analyze and choose appropriate data structures to solve problems in the real world.

Module Content:

Monday 17-04-2023
INSTRUCTOR
Introduction to Data Structures and Algorithms
Creation of groups for learners

Wednesday 19-04-2023 to Friday 21-04-2023


ALL STUDENTS
Unsupervised research on Group Task

Page 1 of 5
Monday 24-04-2023
FACILITATORS:
GROUP 1
Stack data structure. LIFO principle. Basic operations. Applications. Algorithm. Implementation
in Python.

GROUP 2
Simple Queue data structure. FIFO principle, Basic operations. Limitations of queue.
Applications. Algorithm. Implementation in Python.
Basic operations and Applications of a Double-Ended Queue.

GROUP 3
Basic operations, Applications, Algorithms and Implementation in Python of Circular Queue and
Priority Queue.

Tuesday 25-04-2023
FACILITATORS:
GROUP 4
Linked list data structure. Basic operations. Applications. Algorithm. Implementation in Python.

GROUP 5
Hash table. Hash function. Hash collision. Collision resolution. Application. Implementation in
Python.

GROUP 6
Tree data structure. Types of Tree. Basic operations of a Binary Tree. Application. Algorithm.
Implementation in Python

Wednesday 26-04-2023
FACILITATORS:
GROUP 7
Heap data structure. Basic operations. Application. Algorithm. Implementation in Python

GROUP 8
B-Tree data structure. Basic operations. Application. Algorithm. Implementation in Python

GROUP 9
Graph data structure. Basic operations. Application. Algorithms (DFS and BFS). Implementation
in Python

Page 2 of 5
Thursday 27-04-2023
FACILITATORS:
GROUP 10
Spanning Tree and Minimum Spanning Tree. Basic operations. Application. Algorithm.
Implementation in Python

GROUP 11
Bubble Sort algorithm. Basic operations. Application. Implementation in Python. Optimised
Bubble Sort. Time and Space complexity of simple and optimised Bubble Sort.

GROUP 12
Selection Sort algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

Friday 28-04-2023
FACILITATORS: Natalie Chakwanda
GROUP 13
Selection Sort algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

GROUP 14
Insertion Sort algorithm. Basic operations. Application. Algorithm. Implementation in Python.
Time and Space complexity.

GROUP 15
Merge Sort algorithm. Basic operations. Application. Implementation in Python. Time and Space
complexity.

Tuesday 02-05-2023
FACILITATORS:
GROUP 16
Quick Sort algorithm. Basic operations. Application. Implementation in Python. Time and Space
complexity.

GROUP 17
Counting Sort algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

GROUP 18
Radix Sort algorithm. Basic operations. Application. Implementation in Python. Time and Space
complexity.

Page 3 of 5
Wednesday 03-05-2023
FACILITATORS:
GROUP 19
Bucket Sort algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

GROUP 20
Heap Sort algorithm. Basic operations. Application. Implementation in Python. Time and Space
complexity.

Thursday 04-05-2023
FACILITATORS:
GROUP 21
Shell Sort algorithm. Basic operations. Application. Implementation in Python. Time and Space
complexity.

GROUP 22
Linear Search algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

Friday 05-05-2023
FACILITATORS:
GROUP 23
Binary Search algorithm. Basic operations. Application. Implementation in Python. Time and
Space complexity.

GROUP 24
Comparison among the following algorithm design approaches: Greedy, Divide and Conquer,
Dynamic Programming, Backtracking. Python code to demonstrate a simple aspect of each
approach. Time and space complexity.

INDIVIDUAL TASK
Designing and implementing Algorithms and Data Structures to solve real-life problems.

1. Draw a well-annotated Graph data structure that contains at least 7 cities in Zimbabwe or
other mentioned country. The vertices of the Graph should be letters of the Alphabet.
Place a key for names of the cities below the graph. The weights of the edges of the
Graph should be real-life distance between the cities in kilometers (not to scale). Submit
your work in a single Word document. [7]
2. Use Python to implement the Graph in (1) above. The Graph system should be able to
suggest the shortest path a traveler could take between any cities (to and from). Make
sure your code is well documented with comments, blank lines, indentions and necessary
explanations. Submit your work in a single Jupyter Notebook file. [10]
3. If you use any code template, make sure you make substantial contribution for you to
deserve some marks. Include interface for the user to be able to enter source and
destination by typing and also by selection from a drop down menu. [8]

Page 4 of 5
ASSESSMENT
Coursework: 50% [Individual Task 25% , Group Task 25% (Submitted Document = 10%,
Running Code = 5%, Presentation in Class = 10%)]
Examination: 50%

PLAGIARISM WILL BE HEAVILY PENALISED

IMPORTANT LINKS
Google Classroom: https://classroom.google.com/c/NTExMTc5NDgyNTAx?cjc=6oryhvw
WhatsApp Group: https://chat.whatsapp.com/KbG0XY3ORqwDkYGRKmMWiA
Group Register: Groups - DSA

References:
1. Daniel Y. Liang, “Introduction to Programming using Python”, Pearson.
2. Benjamin Baka, David Julian, “Python Data Structures and Algorithms”, Packt
Publishers,2017.
3. Rance D. Necaise, “Data Structures and Algorithms using Python”, Wiley Student
Edition.
4. Martin Jones, “Python for Complete Beginners”, 2015.
5. Zed A. Shaw, “Learn Python the Hard Way: a very simple introduction to the
terrifyingly beautiful world of computers and code”, 3e, Addison-Wesley, 2014.
6. Hemant Jain, “Problem Solving in Data Structures and Algorithms using Python:
programming interview guide”, 2016.
7. https://docs.python.org/3/tutorial/datastructures.html
8. http://interactivepython.org/runestone/static/pythonds/index.html
9. http://www.tutorialspoint.com/data_structures_algorithms
10. http://www.geeksforgeeks.org/data-structures/
11. http://www.studytonight.com/data-structures/
12. http://www.coursera.org/specializations/data-structures-algorithms

Page 5 of 5

You might also like