GithubHelp home page GithubHelp logo

soumyadipghorai / dsa-iitm Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 204 KB

all the Data Structure and Algorithms, class notes and assignments using python from IITM

Python 10.36% Jupyter Notebook 89.64%

dsa-iitm's Introduction

PDSA - IIT Madras

Welcome to the Data Structures and Algorithms (DSA) Lecture Notes and Assignments repository for the "PDSA" course at IIT Madras. This repository contains a comprehensive collection of lecture notes, along with graded assignments, to help you excel in your DSA studies. All lecture notes are organized by week, and assignments are stored within the "graded" folder. All code examples are implemented using Python.

Table of Contents

Algorithms

This section covers various algorithms that are essential for understanding and implementing data structures and solving computational problems effectively. The topics covered include:

  • Sorting
  • Searching
  • Recurion
  • Greedy Algorithms
  • Dynamic Programming
  • String Matching
  • Interval Scheduling

Data Structures

This section focuses on fundamental data structures that are the building blocks of algorithms and software development. The data structures covered include:

  • Arrays
  • Stacks
  • Queues
  • Linked Lists
  • Graphs
  • Trees
  • Tries
  • Heaps
  • Union-Find (Disjoint Set Data Structure)

Weekly Schedule

To help you navigate through the course materials, here's the weekly schedule for the PDSA course at IIT Madras:

  • Week 1: Python Refresher
  • Week 2: Complexity Analysis, Notations, Sorting, and Searching Algorithms
  • Week 3: Arrays, Lists, Stacks, Queues, Hashing
  • Week 4: Graph Algorithms
  • Week 5: Graph Algorithms (Continued)
  • Week 6: Union-Find Data Structure, Priority Queue, Heap, Binary Search Tree
  • Week 7: Balanced Search Trees, Greedy Algorithms
  • Week 8: Divide and Conquer
  • Week 9: Dynamic Programming
  • Week 10: String or Pattern Matching Algorithms
  • Week 11: Network Flows, Linear Programming, and Class of Algorithms

How to Use This Repository

  1. Navigate to the desired week's folder to access lecture notes.
  2. Inside the "graded" folder, you'll find assignments related to the corresponding week's topics.
  3. Feel free to explore the code implementations in Python for a practical understanding of the algorithms and data structures discussed.

Contributing

If you would like to contribute to this repository by adding additional lecture notes, assignments, or code examples, please follow these steps:

  1. Fork this repository.
  2. Make your changes or additions.
  3. Create a pull request, detailing the changes you've made.

Your contributions are highly appreciated and will help improve the learning experience for others.

Acknowledgments

Special thanks to the instructors and contributors at IIT Madras for providing the lecture notes and assignments that make this repository possible.

Happy learning, and best of luck with your DSA studies!

dsa-iitm's People

Contributors

soumyadipghorai avatar

Stargazers

Avishek Roy avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.