| Introduction to Python |
| Introduction to Python |
β |
β |
β |
β |
| Python Syntax and Structure |
β |
β |
β |
β |
| Comments |
β |
β |
β |
β |
| Docstrings |
β |
β |
β |
β |
| Variables |
β |
β |
β |
β |
| Data Types |
β |
β |
β |
β |
| Integers |
β |
β |
β |
β |
| Floats |
β |
β |
β |
β |
| Strings |
β |
β |
β |
β |
| Booleans |
β |
β |
β |
β |
| Input and Output |
β |
β |
β |
β |
| Type Conversion and Casting |
β |
β |
β |
β |
| Python Operators |
| Arithmetic Operators |
β |
β |
β |
β |
| Assignment Operators |
β |
β |
β |
β |
| Comparison Operators |
β |
β |
β |
β |
| Logical Operators |
β |
β |
β |
β |
| Bitwise Operators |
β |
β |
β |
β |
| Membership Operators (in, not in) |
β |
β |
β |
β |
| Identity Operators (is, is not) |
β |
β |
β |
β |
| Conditional Statements |
| if |
β |
β |
β |
β |
| elif |
β |
β |
β |
β |
| else |
β |
β |
β |
β |
| Loops |
| for Loops |
β |
β |
β |
β |
| while Loops |
β |
β |
β |
β |
| Nested Loops |
β |
β |
β |
β |
| Loop Control Statements |
| break |
β |
β |
β |
β |
| continue |
β |
β |
β |
β |
| pass |
β |
β |
β |
β |
| Data Structures in Python |
| String Methods |
β |
β |
β |
β |
| Slicing |
β |
β |
β |
β |
| Indexing |
β |
β |
β |
β |
| String Formatting |
β |
β |
β |
β |
| Lists |
β |
β |
β |
β |
| List Methods and Slicing |
β |
β |
β |
β |
| List Comprehensions |
β |
β |
β |
β |
| Using Lists as Stacks |
β |
β |
β |
β |
| Using Lists as Queues |
β |
β |
β |
β |
| Nested List Comprehensions |
β |
β |
β |
β |
| The del statement |
β |
β |
β |
β |
| Tuples |
β |
β |
β |
β |
| Immutability |
β |
β |
β |
β |
| Tuple Methods |
β |
β |
β |
β |
| Dictionaries (Basic) |
β |
β |
β |
β |
| Key-Value Pairs |
β |
β |
β |
β |
| Dictionary Methods |
β |
β |
β |
β |
| Dictionary Comprehensions |
β |
β |
β |
β |
| Sets |
β |
β |
β |
β |
| Set Methods |
β |
β |
β |
β |
| Set Operations |
β |
β |
β |
β |
| Arrays |
β |
β |
β |
β |
| Functions |
| Defining Functions |
β |
β |
β |
β |
| Positional and Keyword Arguments |
β |
β |
β |
β |
| Default Arguments |
β |
β |
β |
β |
| Arbitrary Arguments (*args, **kwargs) |
β |
β |
β |
β |
| Return Statement |
β |
β |
β |
β |
| Lambda Functions (Anonymous Functions) |
β |
β |
β |
β |
| Scope and Lifetime of Variables (Local, Global, nonlocal) |
β |
β |
β |
β |
| Classes and Objects |
| Creating Classes |
β |
β |
β |
β |
| Creating Objects |
β |
β |
β |
β |
| Attributes and Methods |
β |
β |
β |
β |
| Inheritance |
| Single Inheritance |
β |
β |
β |
β |
| Multiple Inheritance |
β |
β |
β |
β |
| Multilevel Inheritance |
β |
β |
β |
β |
| Overriding Methods |
β |
β |
β |
β |
| Using super() |
β |
β |
β |
β |
| Polymorphism |
| Method Overloading (conceptual; Python doesnβt support this directly) |
β |
β |
β |
β |
| Method Overriding |
β |
β |
β |
β |
| Encapsulation |
| Encapsulation |
β |
β |
β |
β |
| Reading and Writing Files |
| Opening Files (open()) |
β |
β |
β |
β |
| Modes: r, w, a, r+, etc. |
β |
β |
β |
β |
| Reading: read(), readline(), readlines() |
β |
β |
β |
β |
| Writing: write(), writelines() |
β |
β |
β |
β |
| Working with binary files (rb, wb) |
β |
β |
β |
β |
| Working with File Paths |
| Using os and pathlib modules. |
β |
β |
β |
β |
| File Iterators |
| Reading files line by line with for loops. |
β |
β |
β |
β |
| Handling Exceptions in File Operations |
| Handling Exceptions in File Operations |
β |
β |
β |
β |
| Working with CSV and JSON Files |
| csv module for reading and writing CSV files. |
β |
β |
β |
β |
| json module for JSON serialization and deserialization |
β |
β |
β |
β |
| Try-Except Blocks |
| Single except block |
β |
β |
β |
β |
| Multiple except blocks |
β |
β |
β |
β |
| Exception Handling |
| Using else and finally |
β |
β |
β |
β |
| raise statement. |
β |
β |
β |
β |
| Built-in Modules |
| Popular modules: math, os, sys, time, random, re, itertools, collections. |
β |
β |
β |
β |
| Creating Custom Modules |
| Creating Custom Modules |
β |
β |
β |
β |
| Working with Packages |
| __init__.py and structuring packages. |
β |
β |
β |
β |
| Importing |
| Importing |
β |
β |
β |
β |
| Iterators |
| Creating custom iterators using __iter__ and __next__. |
β |
β |
β |
β |
| Generators |
| Using yield in functions. |
β |
β |
β |
β |
| Generator expressions |
β |
β |
β |
β |
| Function Decorators |
| Creating and using decorators. |
β |
β |
β |
β |
| Using multiple decorators on a single function |
β |
β |
β |
β |
| Class Decorators |
| Class Decorators |
β |
β |
β |
β |
| Regular Expressions |
| re.match, re.search, re.findall, re.split, re.sub |
β |
β |
β |
β |
| Literal characters, special characters. |
β |
β |
β |
β |
| Quantifiers (*, +, ?, {}) |
β |
β |
β |
β |
| Character classes and sets ([a-zA-Z], \d, \w, etc.) |
β |
β |
β |
β |
| Anchors (^, $) |
β |
β |
β |
β |
| Functional Programming |
| Using map() for transformations. |
β |
β |
β |
β |
| Filtering sequences with filter(). |
β |
β |
β |
β |
| Aggregating data with functools.reduce() |
β |
β |
β |
β |
| Lambda Functions |
β |
β |
β |
β |
| List, Set, and Dictionary Comprehensions |
β |
β |
β |
β |
| Working with Dates and Times |
| datetime.date, datetime.time, datetime.datetime. |
β |
β |
β |
β |
| Formatting with strftime. |
β |
β |
β |
β |
| Parsing with strptime |
β |
β |
β |
β |
| Time functions: time(), sleep(), ctime() |
β |
β |
β |
β |
| Introduction to Threads |
| What is threading? |
β |
β |
β |
β |
| Difference between threads and processes. |
β |
β |
β |
β |
| Using the threading Module |
| Creating and starting threads. |
β |
β |
β |
β |
| Using join() and is_alive() methods. |
β |
β |
β |
β |
| Daemon threads and their use |
β |
β |
β |
β |
| Thread Synchronization |
| Avoiding race conditions using Lock, RLock, Semaphore. |
β |
β |
β |
β |
| Thread-safe data structures (e.g., queue.Queue). |
β |
β |
β |
β |
| Introduction to Multiprocessing |
| Why use multiprocessing over threading? (Global Interpreter Lock - GIL) |
β |
β |
β |
β |
| Creating and managing processes |
β |
β |
β |
β |
| Using the multiprocessing Module |
| Process, Pool, and Manager. |
β |
β |
β |
β |
| Sharing data using Value and Array. |
β |
β |
β |
β |
| Unit Testing |
| Writing tests using unittest. |
β |
β |
β |
β |
| Using assertions (assertEqual, assertRaises, etc.). |
β |
β |
β |
β |
| Test Discovery |
| Using unittest or pytest to find and run test cases |
β |
β |
β |
β |
| Debugging |
| Using pdb (Python Debugger) for step-by-step debugging |
β |
β |
β |
β |
| Advanced File Operations |
| Reading and writing large files efficiently. |
β |
β |
β |
β |
| Working with temporary files using tempfile. |
β |
β |
β |
β |
| Directory Operations |
| Managing directories with os and shutil. |
β |
β |
β |
β |
| Walking through directories using os.walk() |
β |
β |
β |
β |
| Error Handling |
| Catching and handling file-related exceptions (FileNotFoundError, PermissionError). |
β |
β |
β |
β |
| Data Analysis with Pandas |
| DataFrame and Series objects. |
β |
β |
β |
β |
| Pandas |
| Reading and writing data from various formats (CSV, Excel, SQL, JSON). |
β |
β |
β |
β |
| Handling missing values (fillna, dropna). |
β |
β |
β |
β |
| Data type conversions. |
β |
β |
β |
β |
| String operations on columns. |
β |
β |
β |
β |
| Filtering and indexing. |
β |
β |
β |
β |
| Grouping and aggregations (groupby, pivot_table). |
β |
β |
β |
β |
| Sorting and ranking. |
β |
β |
β |
β |
| Joining and merging DataFrames. |
β |
β |
β |
β |
| Cloud-Lab Support |
| Cloud-Lab Support |
β |
β |
β |
β |
| Introduction to Web Scraping |
| What is web scraping, use cases, ethics & legality |
β |
β |
β |
β |
| Python Refresher |
| Variables, loops, functions, exception handling |
β |
β |
β |
β |
| Working with HTTP |
| HTTP methods, headers, status codes, intro to requests library |
β |
β |
β |
β |
| Parsing HTML with BeautifulSoup |
| DOM structure, navigating and searching HTML trees (find, select) |
β |
β |
β |
β |
| Data Extraction Techniques |
| Extracting text, attributes, handling tables and lists, writing to CSV/JSON |
β |
β |
β |
β |
| Handling Real-World Pages |
| Dynamic content, user agents, headers, cookies, session handling |
β |
β |
β |
β |
| Selenium Basics |
| Webdriver setup, locating elements, clicking, inputting, screenshots |
β |
β |
β |
β |
| Headless browsing, wait strategies (WebDriverWait, expected_conditions) |
β |
β |
β |
β |
| Authentication & Pagination |
| Login handling, infinite scroll, "Next Page" navigation |
β |
β |
β |
β |
| Captchas & Anti-Bot Measures |
| IP rotation, proxies, CAPTCHAs overview, handling bot protection basics |
β |
β |
β |
β |
| Introduction to Scrapy |
| Scrapy project structure, items, pipelines, spiders |
β |
β |
β |
β |
| Scrapy Advanced Features |
| Middlewares, logging, exporting, working with APIs |
β |
β |
β |
β |
| Storing Data |
| Storing in MySQL, SQLite, MongoDB, file system |
β |
β |
β |
β |
| Real-World Projects |
| Build 2 projects: e.g., Product price tracker, Job listing scraper |
β |
β |
β |
β |
| Regex in Scraping |
| Matching complex patterns in HTML/text |
β |
β |
β |
β |
| APIs vs Scraping |
| When to use an API, how to call and parse JSON responses |
β |
β |
β |
β |
| Scheduling & Automation |
| Using cron, Python scripts with schedule, deployment strategies |
β |
β |
β |
β |
| Data Cleaning |
| Using pandas or custom scripts for cleaning scraped data |
β |
β |
β |
β |