[go: up one dir, main page]

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

DSI 136 Module Outline

This document outlines a module on data structures and algorithms. The module objective is to analyze fundamental data structures and use them to design efficient computer programs. Students will learn to write algorithms, implement abstract data structures, use algorithms to solve problems, and understand tradeoffs of data structures and algorithms. Topics include arrays, linked lists, stacks, queues, trees, graphs, searching, and sorting algorithms. Students will be assessed through assignments, tests, and an exam. Recommended study materials include Python textbooks and online references.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
144 views3 pages

DSI 136 Module Outline

This document outlines a module on data structures and algorithms. The module objective is to analyze fundamental data structures and use them to design efficient computer programs. Students will learn to write algorithms, implement abstract data structures, use algorithms to solve problems, and understand tradeoffs of data structures and algorithms. Topics include arrays, linked lists, stacks, queues, trees, graphs, searching, and sorting algorithms. Students will be assessed through assignments, tests, and an exam. Recommended study materials include Python textbooks and online references.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 3

MIDLANDS STATE UNIVERSITY

FACULTY OF BUSINESS SCIENCES


DEPARTMENT OF INFORMATION AND MARKETING SCIENCES
MODULE NAME AND CODE: DATA STRUCTURES AND ALGORITHMS - DSI136

MODULE OBJECTIVE: This module covers the analysis and design of fundamental data
structures and engages learners to use data structures as tools to algorithmically design efficient
computer programs that will cope with the complexity of actual applications. Python is used for
demonstration of concepts.

LEARNING OUTCOMES
 Read and write algorithms in pseudocode
 Implement and use abstract data structures
 Use known algorithms to solve programming problems
 Appreciate the impact on memory usage and computation speed to make informed
decisions about the most appropriate data structures and algorithms to use when
designing software
 Demonstrate an understanding of trade-offs when making design decision about data
structures and algorithms

TOPICS AND SUB-TOPICS

1. Introduction
 Overview of data structures
 Characteristics of data structures
 Data structures, abstract data types, design patterns, manipulation, and operations
 Types of data structures – linear and nonlinear
 Overview of algorithms
 Characteristics of algorithms
 Algorithm design and analysis process
 Asymptotic notations and Analysis of algorithms
 Time and Space complexity
 Writing an algorithm, Pseudocode, and designing a flowchart
 Basic terminology

2. Arrays and Linked Lists


 Arrays: Dynamic memory allocation, one-dimensional arrays, multidimensional
arrays, operations on arrays, storage – Row major order, Column major order.
 Linked lists: types of linked lists – singly, doubly, and circularly linked lists,
operations on linked lists.

3. Stacks, Queues, and Tries


 Stacks: Implementation of stacks– array and linked list, operations on stacks,
Applications of Stacks, Notations – infix, prefix and postfix, Conversion and
evaluation of arithmetic expressions using Stacks.
 Queues: Implementation of queues– array and linked list, operations on queues,
Types of queues – queue, double-ended queue, and priority queue.
 Tries: Implementation and operations

4. Trees and Graphs


 Trees: Binary tree, Binary search tree, threaded binary tree, Height balanced trees,
Tries, Heaps, Hash tables
 Graph traversals: Breadth-First Search, Depth First Search,
 Shortest path: Depth-first search in directed and undirected graphs.
 Union-find data structure and applications
 Directed acyclic graphs
 Topological sort
5. Searching Techniques
 Linear search
 Binary search
 Interpolation search
 Hash Tables and Functions
 Hash Tables and Hash Functions
6. Sorting techniques:
 Sorting algorithms
 Bubble sort,
 Selection sort,
 Insertion sort,
 Quick sort,
 Merge sort,
 Radix sort
 Shell sort
7. Recursion Basics
 Properties
 Implementation
 Analysis of recursion

ASSESSMENT CRITERIA

Assessment: CA: (At Least 2 Assignments + 1 Test): 40% of FEM + Written Exam: 60% of
FEM
RECOMMENDED STUDY MATERIAL
LIST OF REFERENCE BOOKS:

1. Y Daniel 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.

WEB REFERENCES:
1. https://docs.python.org/3/tutorial/datastructures.html
2. http://interactivepython.org/runestone/static/pythonds/index.html
3. http://www.tutorialspoint.com/data_structures_algorithms
4. http://www.geeksforgeeks.org/data-structures/
5. http://www.studytonight.com/data-structures/
6. http://www.coursera.org/specializations/data-structures-algorithms

You might also like