Software Engineering 101: Data Structures with Python & C++, Linear and non linear data structures, searching and sorting algorithms, dynamic programming, recursion and backtracking.
Course Description
Welcome to Software Engineering 101: Data Structures with Python & C++ course. This is a comprehensive project based course where you will learn the fundamentals of data structures and algorithms like arrays, linked lists, stacks, queues, trees, graphs, and hash tables, while also exploring algorithms such as sorting, searching, and dynamic programming. This course is a perfect combination between computer science and system optimization, making it an ideal opportunity to practice your programming skills while improving your technical knowledge in software engineering. In the introduction session, you will learn the basic fundamentals of data structures and algorithms, such as getting to know their use cases, technical limitations, and commonly used algorithms. Then, in the next section you will find and download dataset from kaggle, it is a platform that offers high quality datasets from various industries. Afterward, we will start the project. Initially we will focus on linear data structure concepts. In the first project, we are going to develop an employee attendance tracker, where arrays will be used to efficiently store and update daily attendance records. In the second project, we are going to design a customer support ticketing system that uses linked lists to manage incoming requests in the order they arrive. For the third project, we are going to implement an undo feature for a simple text editor by leveraging the Last In First Out behavior of stacks. In the fourth project, we are going to simulate a hospital queue system, using the queue concept to manage patients based on their arrival time. Following that, we will move to non linear data structures concepts. In the fifth project, we are going to create a Customer ID finder tool using binary search trees for fast data retrieval. In the sixth project, we are going to build a patient prioritization system using a heap to ensure urgent cases are addressed first. In the seventh project, we are going to build a friend recommendation engine for a social network using graph traversal techniques. In the eighth project, we are going to apply sorting algorithms like merge sort, quick sort, and bubble sort to organize sales data. In the ninth project, we are going to implement binary and linear search to help users quickly find products in an e-commerce product catalog. In the tenth project, we are going to optimize flight routes using the Dijkstra algorithm, which is a popular greedy algorithm for finding the shortest path. Projects one through ten will be implemented in Python, while projects eleven to fourteen will be implemented in C++ as it will give us more advanced control and better performance. In the eleventh project, we are going to create an investment budgeting tool using dynamic programming, specifically Knapsack algorithm which will help us maximize returns within budget constraints. In the twelfth project, we are going to deepen our understanding of recursion by computing Fibonacci sequences efficiently. In the thirteenth project, we are going to design a Sudoku solver using backtracking to systematically explore and fill the correct numbers. The fourteenth project is a real world application project where we are going to build a flight data management system using binary search to extract historical records quickly. Lastly, at the end of the course, we are going to build an autonomous robot path planner using min heap and the A algorithm to simulate intelligent pathfinding in a dynamic environment.
Firstly, before getting into the course, we need to ask this question to ourselves, why should we learn about data structures and algorithms? Well, here is my answer, they help you write programs that run faster, use memory efficiently, and handle large volumes of data effectively. In software engineering, this knowledge is crucial for solving complex problems, optimizing system performance, and designing solutions that are reliable under various conditions.
Below are things that you can expect to learn from this course:
- Learn the basic fundamentals of data structures and algorithms, such as getting to know their use cases and technical limitations
- Learn about linear and non linear data structures
- Learn how to build employee attendance tracker using array
- Learn how to build customer support ticketing system using linked list
- Learn how to create undo function using stack
- Learn how to build patient queue system
- Learn how to find customer ID using binary search tree
- Learn how to build patient prioritization system using heap
- Learn how to build social network friend recommendation algorithm using graph traversal
- Learn how to implement quick sort, merge sort, and bubble sort
- Learn how to implement binary search and linear search in e-commerce product catalog
- Learn how to optimize flight route using greedy algorithm and dijkstra algorithm
- Learn how to optimize investment budget using dynamic programming and Knapsack algorithm
- Learn how to perform mathematical computation and Fibonacci calculation using recursion
- Learn how to create Sudoku solver using backtracking
- Learn how to implement hashing in product database
- Learn how to build flight data management system using binary search
https://www.udemy.com/course/software-engineering-101-data-structures-with-python-c/?couponCode=7B26E84817D1AF9D3E21