Skip to content

ZAhmaad/Data-Structure-and-Algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Data-Structure-and-Algorithms

Welcome to the Data Structure and Algorithms course repository! This repository contains course materials, assignments, lecture notes, and additional resources designed to teach the fundamentals and advanced concepts of secure software design.

How to Use This Repository

  • Clone the repository using:
    git clone https://github.com/ZAhmaad/Data-Structure-and-Algorithms
    
    

Table of Contents

Introduction

This course aims to introduce the fundamental concept of data structures and to emphasize the importance of data structures in developing and implementing efficient algorithms. Efficient data structure provides basis for a good algorithm (code). This course focuses on the most common data structures utilized in various computational problems. It will be taught that how these data structures work and their implementation. Students will practice implementing them in a number of programming assignments. This will help them understand the nuts and bolts of various data structures and enable to write efficient programs. In addition, another objective of the course is to develop effective software engineering practice, emphasizing such principles as decomposition, procedural abstraction, and software reuse.

Course Objectives

  • 🎯 Data Structure/Algorithm Analysis
    Utilize the basic techniques of data structure/algorithm analysis.

  • 🛠️ Application of Primitive Data Structures
    Apply the primitive data structures to design solutions for computational problems.

  • 🔍 Algorithmic Problem Solving
    Analyze problems and write program solutions using algorithmic techniques with a variety of data structures and techniques..

Course Outline

Week Topics Covered
Week 1 - Fundamentals of data structures
- An overview of computer programming
- Data types, abstract data types
- Review of pointers: defining pointer variables, pointer arithmetic, memory diagrams
Week 2 - Review of pointers continued: pointers and arrays, pointer indirections, structures and pointers
- Passing pointer arguments to a function and returning pointers from a function
Week 3 - Computational complexity of algorithms and their time-space analysis
- Running time calculations
- Asymptotic notations for algorithmic complexity analysis
Week 4 - Lists: simple arrays, linked lists
- Linear search vs binary search
Week 5 - Lists continued: double linked lists, circular linked lists
Week 6 - Stacks & Queues: sequential/array implementation of stacks and queues, linked list implementation of stacks and queues
Week 7 - Arithmetic expressions, polish notation
- Recursion: recursive implementation of stacks and queues
Week 8 - Sorting: bubble sort, insertion sort, selection sort
Week 9 - Sorting continued: merge sort, quick sort, counting sort & radix sort, heap sort (tentative)
Week 10 - Trees: data structure definition and generic implementation
- Tree traversals and its application
- Binary tree, binary search tree, expression trees
Week 11 - Trees continued: AVL trees, Huffman coding (tentative), B-Tree (tentative)
Week 12 - Graphs: adjacency matrix implementation, linked list implementation
Week 13/14 - Graphs continued: depth-first traversal of graphs, breadth-first traversal of graphs, shortest distance algorithms
- Hashing and searching: hashing techniques, implementation of hashing techniques
Week 15 - Priority Queues: binary heap, applications

Reference Books:

You can find the soft version of the books below here.

Books
Introduction.to.Algorithms.4th.Leiserson.Stein.Rivest.Cormen.MIT.Press.9780262046305.EBooksWorld.ir.
Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss, Fourth edition
Data Structures and Algorithms in C++ by Adam Drozdek

Contact Me

If you have any questions or need assistance, feel free to reach out:


Office Hours

I am available during the office hours to discuss course-related topics or other queries:

  • 📍 Office Location:
    Room G14, FCSE lobby, GIKI

Feel free to book an appointment in advance by email or visit during the office hours.

About

Data Structure and Algorithms

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages