# Data Structures & Algorithms

## Description

Data Structure is a way of collecting and organising data in such a way that we can perform operations on these data in an effective way. Data Structures is about rendering data elements in terms of some relationship, for better organization and storage.

An algorithm is a finite set of instructions or logic, written in order to accomplish a certain predefined task. Algorithm is not the complete code or program, it is just the core logic(solution) of a problem, which can be expressed either as an informal high-level description as pseudocode or using a flowchart.

## Content

- Complexity analysis + Array + Amortized Complexity analysis + Dynamic array
- Linked list (Singly and Doubly)
- Stack + Queue
- Sorting algorithms (Selection sort + Insertion sort + Bubble sort + Count sort) + Divide & Conquer (Binary search + Merge sort + Quick sort)
- Binary tree + recursion
- Hash Map
- Heap + Heap sort
- Graph + Graph traversal (Breadth first search + Depth first search)
- String + Dynamic programming + Greed

## Perquisites:

Programming in C or C++

## Instructor:

Eng. Abo-Elhamd Ali

Eng. Mennatallah samier

## Course length

The course consists of 7 sessions

Each session is 3 hours

## Fees

Members: 110

Non-members: 120