Skip to content

SachinScaler/Jan25_Python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Instructor

  • Sachin Kaushik

Batches

  • DSML Dec24(2) Advanced
  • DSML Dec24(2) Intermediate

This repository contains notebooks and PDF notes designed to help you understand fundamental and advanced concepts in Python programming, data structures, algorithms, and object-oriented programming (OOP). The materials are structured to guide you through core programming concepts with practical examples and exercises.


Contents

Python Refresher 1

  • Summary: A refresher course on the fundamentals of Python programming, covering basic syntax, control flow, data types, and functions.
  • Core Usecase: Ensures a solid understanding of Python fundamentals, providing the foundation for more advanced topics.
  • Applications: Basic scripting, automation tasks, and simple data processing.

Python Refresher 2

  • Summary: A continuation of the Python refresher, focusing on data structure topics such as Dictionary, set, lists and memory management
  • Core Usecase: Prepares learners to work with modular, reusable code and understand advanced Python features for clean and efficient programming.
  • Applications: Efficiently storing data into appropriate data structure

Basics of Time & Space Complexity

  • Summary: This notebook introduces the fundamental concepts of time and space complexity. It covers how to evaluate the efficiency of algorithms using Big O notation, and discusses various scenarios, along with space vs. time trade-offs.
  • Core Usecase: Helps in analyzing and optimizing algorithms for performance, especially in time-critical applications.
  • Applications: Algorithm optimization in data processing, machine learning, and system design.

OOP 1 - Introduction

  • Summary: An introduction to Object-Oriented Programming (OOP) in Python. The notebook covers key OOP concepts such as classes, objects, methods, and encapsulation.
  • Core Usecase: Organizes code into reusable objects and classes, making large projects more manageable and scalable.
  • Applications: Software development, game development, web applications, and systems that require complex data modeling.

OOP 2 - Dunders, Inheritance

  • Summary: A deeper dive into OOP, this notebook explores special methods (dunders) and the concept of inheritance. It provides insights into creating complex and hierarchical class structures.
  • Core Usecase: Enables more advanced object-oriented designs through inheritance, polymorphism, and the use of special methods for custom object behavior.
  • Applications: Creating frameworks, building complex software systems, and designing reusable codebases.

Functional Programming 1 - Basics

  • Summary: An introduction to functional programming in Python. Concepts such as higher-order functions, lambda expressions, and immutability are discussed.
  • Core Usecase: Encourages writing cleaner, more maintainable code with functions as first-class citizens and immutable data structures.
  • Applications: Data transformation, parallel computing, and functional reactive programming.

Functional Programming 2 - Advanced Topics

  • Summary: A deeper exploration of functional programming in Python, covering advanced concepts such as map, filter, reduce, and functional data structures.
  • Core Usecase: Helps solve problems with functional constructs, improving readability and conciseness, while ensuring immutability and side-effect-free code.
  • Applications: Data pipelines, functional programming frameworks, and large-scale data processing tasks.

Exception Handling

  • Summary: This notebook explores Python's exception handling mechanisms. Topics covered include try-except blocks, custom exceptions, and best practices for writing robust Python code.
  • Core Usecase: Teaches the best practices for handling errors in Python applications, ensuring smooth user experiences and system reliability.
  • Applications: Developing robust Applications and APIs, handling runtime errors in applications, and building fault-tolerant systems.

File Handling

  • Summary: This repository also demonstrates how to handle files in Python. You’ll find examples of reading and writing to text and CSV files, handling file paths, and working with file I/O operations.
  • Core Usecase: Teaches essential skills for working with files, including reading from and writing to text, CSV, and JSON files, as well as handling large datasets.
  • Applications: Data analysis, log file processing, building custom file-based data storage systems, and automating file handling tasks.

Additional Practice Problems Links:

  • For basic Data Structure applications refer : Data_Structure_Use_Cases_and_Practice_Problems.ipynb
  • For Algorithms and maths concept used in ML: Fundamental_MathswithAlgorithmsPractice_Sheet.ipynb
  • Practice followings Questions:

https://www.geeksforgeeks.org/problems/largest-element-in-array4009/1

https://www.geeksforgeeks.org/problems/second-largest3735/1

https://leetcode.com/problems/valid-palindrome/

https://leetcode.com/problems/fibonacci-number/description/

https://leetcode.com/problems/frequency-of-the-most-frequent-element/description/

https://www.geeksforgeeks.org/problems/frequency-of-array-elements-1587115620/0

https://leetcode.com/problems/check-if-array-is-sorted-and-rotated/description/

https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/

https://leetcode.com/problems/rotate-array/description/

https://leetcode.com/problems/move-zeroes/description/

https://leetcode.com/problems/remove-duplicates-from-sorted-array/description/

https://leetcode.com/problems/valid-parentheses/description/

https://leetcode.com/problems/longest-common-prefix/description/

https://leetcode.com/problems/length-of-last-word/description/

https://leetcode.com/problems/merge-two-sorted-lists/description/

https://leetcode.com/problems/powx-n/description/

https://leetcode.com/problems/climbing-stairs/description/

https://leetcode.com/problems/pascals-triangle/description/

https://leetcode.com/problems/single-number/description/

https://leetcode.com/problems/lru-cache/description/

https://leetcode.com/problems/number-of-1-bits/description/

https://leetcode.com/problems/determine-whether-matrix-can-be-obtained-by-rotation/

https://leetcode.com/problems/rotate-image/description/

https://leetcode.com/problems/spiral-matrix/description/

  • for Medium | Advanced problems on algorithms: DSA_Practice_problems_Medium_|_Hard.ipynb

All notebooks and files are present in main branch of this repository

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published