You are on page 1of 2

Faculty Science

Department Computer Science


Course Title Data Structures and Algorithms
Course Code HCT 108
Course level 1.2
Credits Lecture hrs: 18 Practical hrs: 24 Tutorial hrs: 6
Individual Study hrs: 53 Assessment: 19
Notional Hours: 120 Credits: 12
Lecturer Information Name: T D Kavu Office Hours: Wed 08-
16:00hrs
Office No: Contact: 0773365952
Email:
Prerequisites Fundamental Mathematics, Introduction to Programming
Course Description After learning Basic programming generally it is advised to learn Data Structures and
Algorithms as it is very much helpful to solve a single program in different methods
Course Aim To equip students with the knowledge of creating and analysing algorithms
Learning Outcomes By the end of the course students should be able to :
 define basic static and dynamic data structures and relevant standard algorithms for
them: stack, queue, dynamic ally linked lists, trees, graphs, heap, priority queue,
hash tables, sorting algorithms, min-max algorithm,
 demonstrate advantages and disadvantages of specific algorithms and data
structures,
 select basic data structures and algorithms for autonomous realization of simple
programs or program parts
 determine and demonstrate bugs in program, recognise needed basic operations with
data structures
 formulate new solutions for programing problems or improve existing code using
learned algorithms and data structures,
 evaluate algorithms and data structures in terms of time and memory complexity of
basic operations.
Core Synopsis The purpose of this course is to develop students’ knowledge in data structures, the associated
algorithms and design techniques within an object-oriented framework. Topics covered include:
Problem solving, algorithms, compilation, variable, I/O Control Structures, data structures
subprograms, data types, storage elements, control constructs, logical programming; scope and
extensibility; Data structures – pointers, linked lists, queues, stacks, trees and operations,
space/time, tradeoffs abstraction, sorting and hashing. Orders of Growth, Recurrences, Solving
Recurrences, Divide and Conquer Technique, Greedy programming, Scheduling Algorithms,
Dynamic Programming, Backtracking, n-queens problem, Randomized Algorithms and
Randomized technique, Graph Algorithms, Minimum, Spanning Tree, Single Source Shortest
Path (Dijkstra, Bellman Ford).

Course Assessment Assessment comprises of continuous assessment and a written final examination as follows.
1 Assignment 10%
Project 15%
Tests: 2 In- Class Tests 15%
Final Examination: 60%

Textbooks and References Problem Solving with Algorithms and Data Structures (Brad Miller, David Ranum)
Software Python IDE, Jupyter Notebook/ Anaconda, PyCharm

Topics to Be Covered
Week Number Topic Subtopics( Areas to be covered)
Week 1 Why Study Data  Getting started with Python
Structures and Abstract
Data Types? ◦ syntanx,functions, lists, tuples, sets, dictionaries,numpy arrays
 Error handling and Object-Oriented Programming in Python: Defining
Classes

Week 2 Basic Data Structures  What Are Linear Structures?


 Stacks
 Queues

 Dequeues

 Unordered List: Linked Lists

 The Ordered List (Assignment 1)

Week 3 Analysis  Pseudo_Codes


 What Is Algorithm Analysis?
 Big-O Notation
Week 4 Recursion  What Is Recursion?
 Calculating the Sum of a List of Numbers
 The Three Laws of Recursion
 Converting an Integer to a String in Any Base
 Stack Frames: Implementing Recursion
 Dynamic Programming

Week 5 &6 Sorting and Searching  Searching( The Sequential Search,Binary Search)
 Sorting(The Bubble Sort, The Selection Sort, Insertion Sort ,The Merge
Sort ,The Quick Sort )(Test 1)

Week 7 & 8 Trees and Tree  Examples of Trees


Algorithms  Vocabulary and Definitions
 List of Lists Representation
 Nodes and References
 Parse Tree
 Tree Traversals
 Priority Queues with Binary Heaps(Binary Heap Operations ,Binary Heap
Implementation)
Week 9&10 Graphs and Graph  Vocabulary and Definitions
Algorithms  The Graph Abstract Data Type
 An Adjacency Matrix
 An Adjacency List
 The Word Ladder Problem
 Building the Word Ladder Graph
 Implementing Breadth First Search
 Breadth First Search Analysis
 General Depth First Search
 Depth First Search Analysis
 Shortest Path Problems
 Dijkstra’s Algorithm
 Analysis of Dijkstra’s Algorithm
 Prim’s Spanning Tree Algorithm

Week 11 Data Science with  Basics of Python for Data Analysis


Python
 Python libraries and data structures
 (Test 2)

You might also like