You are on page 1of 3

DEBRE BERHAN College of Computing

UNIVERSITY Science

Department: Software Engineering


Module Title:
Pre-requisites: Programming Fundamentals I &II
Course Tile: Data Structures and Algorithms Course Code: SENG2022
Instructor Name: Erku K, Course ECTS: 5
E-mail: kifleerku@gmail.com
1. Course Description
Builds on the foundation provided by the computing & fundamental of programming introduces
the fundamental concepts of data structures and the algorithms that proceed from them. Topics
include recursion, fundamental data structures (including stacks, queues, linked lists, hash
tables, trees, and graphs), the basics of algorithmic analysis, sorting and searching algorithms.
Syllabus:
Review of elementary programming concepts
Basic algorithmic analysis: Asymptotic analysis of upper and average complexity bounds;
identifying differences among best, average, and worst-case behaviors; big "O," little "o,"
omega, and theta notation; standard complexity classes; empirical measurements of
performance; time and space tradeoffs in algorithms; using recurrence relations to analyze
recursive algorithms
Fundamental computing algorithms: O (N log N) sorting and Searching algorithms; hash
tables, including collision-avoidance strategies; binary search trees; representations of graphs;
depth- and breadth-first traversals.
Fundamental data structures: Stacks; queues; linked lists; hash tables; trees; graphs
Recursion: The concept of recursion; recursive mathematical functions; simple recursive
procedures; divide-and-conquer strategies; recursive backtracking; implementation of recursion
Algorithmic strategies: Brute-force algorithms; greedy algorithms; divide-and-conquer;
backtracking; branch-and-bound; heuristics; pattern matching and string/text algorithms;
numerical approximation algorithms
2. Course Goals or Learning Outcomes:
After completing this course students should be able to:

 Discuss the representation and use of primitive data types and built-in data structures.
 Describe how the data structures in the topic list are allocated and used in memory.
 Describe common applications for each data structure in the topic list.
 Implement the user-defined data structures in a high-level language.
 Compare alternative implementations of data structures with respect to performance.
 Write programs that use each of the following data structures: arrays, records, strings,
linked lists, stacks, queues, and hash tables.
 Compare and contrast the costs and benefits of dynamic and static data structure
implementations.
 Choose the appropriate data structure for modeling a given problem.
3. Course Schedule, topics, activities, and readings

Week Topic Activities Reading


Chapter one: Control statements; Arrays; Structures; Functions;
1-2 Review of elementary Pointers
programming concept

Chapter Two: Understanding of data structure; Asymptotic analysis of


3-4 Basic algorithmic upper and average complexity bounds; identifying
Analysis differences among best, average, and worst-case
behaviors; big "O," little "o," omega, and theta notation;
standard complexity classes; empirical measurements of
performance; time and space tradeoffs in algorithms;
using recurrence relations to analyze recursive algorithms
Chapter Three: Searching Algorithm: (Linear Search and Binary Search);
5-6 Fundamental Sorting Algorithms: (Insertion Sort, Selection Sort and
computing algorithms Bubble Sort)

Chapter Four: linked lists; Stacks; queues; hash tables;


7-11 Fundamental data trees; graphs; Advanced Sorting and Searching algorithm
Structures
Chapter Five: The concept of recursion; recursive mathematical
12-13 Recursion functions; simple recursive procedures; divide-and-
conquer strategies; recursive backtracking;
implementation of recursion
Chapter Six: Brute-force algorithms; greedy algorithms; divide-and-
14-16 Algorithmic strategies conquer; backtracking; branch- and-bound; heuristics;
pattern matching and string/text algorithms; numerical
approximation algorithms
4. Summary of Assessment Methods:

Assessment % of Final Grade


Attendance & Participation 5
individual & group Assignment 20
Quizzes 10
Tests 15
Final Exam 50
Reference:
1. Data Structure and Algorithm by A.A puntambekar
Principles of Data structure with C and C++ (use as course module) by VIN c Das
2. E. Horowitz, S.Sahni and Dinesh Mehta. Fundamentals of data structures in C++, W.H
Freeman and Company (1995
3. Sanjay Pahuja, A practical approach to data structures and algorithms, New age
International publishers, 2008
4. Weiss, Mark. Data structures and algorithm analysis in C, Benjamin Cummings
Publishing (1997)
5. The Design and Analysis of Computer Algorithms. Aho, Hopcroft, and Ullman

You might also like