Complete Syllabus

8 Modules. 58+ Topics. From print() to Pandas.

Click any module to expand. Covers Python 3.6+ (f-strings), 3.8 (walrus operator), 3.10 (match-case), 3.12+ (improved error messages). Not legacy Python 2 — modern Python as used in industry and interviews today.

01

Python Fundamentals & Environment

How Python works, setting up the environment, and core language building blocks

1.1 Python Overview & Ecosystem

Why Python dominates: readability, vast ecosystem, community size. CPython vs PyPy. Python's role in web dev (Django/Flask), data science (Pandas/NumPy), AI/ML (TensorFlow/PyTorch), automation, and scripting. Python 2 vs 3 — why 2 is dead.

1.2 Environment Setup & Tooling

Installing Python 3.12+. Setting up VS Code / PyCharm / Jupyter Notebook. Running scripts from terminal. REPL for experimentation. Understanding PATH and python vs python3.

1.3 Python Memory Model: Everything Is an Object

id() function, is vs ==. Reference counting and garbage collection. Mutable vs immutable types — the single most important Python concept. Why integers are cached (-5 to 256). How variable assignment works (names bound to objects, not boxes holding values).

1.4 Data Types & Variables

int (arbitrary precision), float (IEEE 754), complex, bool, str, None. Dynamic typing — variables don't have types, objects do. Type checking with type() and isinstance(). var keyword doesn't exist — Python infers types.

1.5 Operators & Expressions

Arithmetic (// floor division, ** power, % modulo). Comparison (==, is). Logical (and, or, not — short-circuit). Bitwise (&, |, ^, ~, <<, >>). Walrus operator := (Python 3.8) — assignment inside expressions.

1.6 I/O: input(), print() & f-strings

input() returns strings — always cast. print() with sep, end, file parameters. String formatting: f-strings (Python 3.6+, the modern way), .format(), % formatting (legacy). f-string expressions: f"{name!r}" f"{price:.2f}".

1.7 Control Flow & Pattern Matching

if/elif/else (no switch in old Python). for with range(), while, break, continue, else clause on loops. match-case structural pattern matching (Python 3.10) — Python's answer to switch, but far more powerful.

Placement relevance: Mutable vs immutable, is vs ==, and f-string output prediction are standard Python MCQ questions in TCS NQT, Infosys, and Wipro. Understanding Python's memory model separates candidates who "know syntax" from those who understand the language.
02

Data Structures: Lists, Tuples, Dicts, Sets

Python's built-in data structures — the most powerful in any mainstream language

2.1 Lists: Operations, Slicing & Methods

List creation, indexing (positive/negative), slicing (start:stop:step). append, extend, insert, remove, pop, sort, reverse. List as a dynamic array — O(1) append, O(n) insert at beginning. Deep copy vs shallow copy (copy module).

2.2 Tuples: Immutability & Unpacking

Why tuples exist when lists do (hashable, faster, semantic "record" meaning). Tuple packing/unpacking: a, b = b, a (swap). Extended unpacking: first, *rest = [1,2,3,4]. Named tuples from collections. Tuples as dict keys.

2.3 Dictionaries: Hashing & Ordering

dict creation, access ([], .get()), .keys(), .values(), .items(). Guaranteed insertion order (Python 3.7+). Dictionary comprehensions. Merging dicts: {**d1, **d2} and d1 | d2 (Python 3.9). defaultdict and Counter from collections.

2.4 Sets & Frozensets

Unique elements, O(1) membership testing. Set operations: union (|), intersection (&), difference (-), symmetric_difference (^). frozenset — immutable sets usable as dict keys. Duplicate removal: list(set(data)).

2.5 Comprehensions: List, Dict, Set, Generator

List comprehension: [x**2 for x in range(10) if x%2==0]. Dict comprehension: {k:v for k,v in items}. Set comprehension. Generator expressions (lazy evaluation with parentheses). Nested comprehensions for matrix operations.

2.6 Collections Module: Counter, defaultdict, deque, namedtuple

Counter — frequency counting in one line. defaultdict — never get KeyError again. deque — O(1) append/pop from both ends. namedtuple — lightweight immutable records. OrderedDict (less useful since Python 3.7). ChainMap.

Placement relevance: List/dict/set operations, comprehensions, and collections module questions appear in every Python placement test. "Difference between list and tuple" is the single most asked Python interview question. Counter and defaultdict are used in 50%+ of Python DSA solutions.
03

Strings, Functions & Functional Programming

Text processing, building reusable functions, and Python's functional toolkit

3.1 String Methods & Operations

Immutability of strings. split(), join(), strip(), replace(), find(), startswith(), endswith(), upper/lower/title. String slicing and reversal ([::-1]). Regular expressions basics with re module (match, search, findall, sub).

3.2 Functions: def, return, Docstrings

Function definition, parameters, return values (multiple returns via tuple unpacking). Docstrings and help(). First-class functions — functions are objects (assignable, passable, storable). Type hints: def greet(name: str) -> str.

3.3 Arguments: *args, **kwargs & Unpacking

Positional, keyword, default arguments. *args (variable positional), **kwargs (variable keyword). Argument unpacking: func(*list), func(**dict). Keyword-only arguments (after *). Positional-only arguments (before /, Python 3.8).

3.4 Scope: LEGB Rule & Closures

Local, Enclosing, Global, Built-in scope resolution. global and nonlocal keywords. Closures — functions that remember their enclosing scope. Why closures matter for decorators and callbacks. Common scope pitfalls with mutable defaults.

3.5 Lambda, map, filter, reduce

Lambda: anonymous single-expression functions. map() — apply function to every element. filter() — keep elements matching condition. reduce() (from functools) — accumulate to single value. When to use vs list comprehension.

3.6 Recursion & Higher-Order Functions

Recursive patterns in Python (factorial, Fibonacci, tree traversal). Python's recursion limit (default 1000, sys.setrecursionlimit). Higher-order functions — functions that accept or return functions. sorted() with key parameter.

3.7 enumerate, zip & Built-In Iteration Tools

enumerate() — index + value together. zip() — parallel iteration. zip_longest from itertools. all(), any(), sum(), min(), max() with key. reversed(), sorted() with custom keys. The Python iteration protocol.

Placement relevance: Lambda/map/filter, *args/**kwargs, scope rules, and string manipulation are the most frequently asked Python function questions. Closures and higher-order functions are tested in product company interviews.
04

Object-Oriented Programming in Python

Classes, inheritance, dunder methods, decorators, and Pythonic OOP patterns

4.1 Classes & Objects

Class definition, __init__ constructor, self parameter. Instance vs class attributes. Creating and using objects. Everything is an object in Python — even classes (type metaclass).

4.2 Dunder (Magic) Methods In-Depth

__str__ vs __repr__ (human vs developer representation). __eq__, __hash__ (making objects comparable and hashable). __len__, __getitem__, __setitem__ (making objects behave like containers). __add__, __mul__ (operator overloading). __enter__, __exit__ (context managers).

4.3 Encapsulation: Public, Protected, Private

Python's convention-based access control: public (name), protected (_name), private (__name — name mangling). No true access restriction — "we're all consenting adults." Property decorator for controlled access.

4.4 @property, @classmethod, @staticmethod

@property — Pythonic getters/setters (no explicit get_name()/set_name()). @classmethod — methods that receive the class, not instance (factory pattern). @staticmethod — utility methods with no access to class/instance. When to use each.

4.5 Inheritance & MRO (Method Resolution Order)

Single and multiple inheritance. super() — cooperative method resolution. MRO algorithm (C3 linearisation). Diamond inheritance problem and how Python resolves it (unlike C++). Mixin pattern. isinstance() and issubclass().

4.6 Abstract Base Classes (abc module)

ABC and @abstractmethod — enforcing interface contracts. Why Python needs ABCs when it has duck typing. collections.abc: Iterable, Sequence, Mapping — checking structural types. Designing class hierarchies with ABCs.

4.7 Dataclasses & __slots__

@dataclass (Python 3.7) — auto-generated __init__, __repr__, __eq__. field() for defaults, frozen=True for immutability. __slots__ — memory optimisation by preventing __dict__ creation. When to use dataclass vs regular class vs namedtuple.

Placement relevance: Dunder methods (__str__ vs __repr__), @property, @classmethod vs @staticmethod, MRO, and "everything is an object" are standard product company Python interview questions. Dataclasses signal modern Python knowledge.
05

Decorators, Generators & Iterators

Advanced Python patterns that power frameworks, libraries, and elegant code

5.1 Decorators: Function & Class

What a decorator IS (a function that wraps another function). Building decorators from first principles: closures → wrapper function → @syntax. Decorators with arguments. functools.wraps for preserving metadata. Real-world: @timer, @retry, @cache, @login_required.

5.2 Built-In Decorators Deep Dive

@functools.lru_cache — memoisation in one line (Fibonacci from O(2^n) to O(n)). @functools.cache (Python 3.9). @functools.total_ordering. @functools.wraps. How Flask's @app.route works under the hood.

5.3 Iterators & the Iterator Protocol

__iter__() and __next__() — how for loops actually work. Building custom iterators. StopIteration exception. iter() with sentinel value. Why iterators are memory-efficient (lazy evaluation). The difference between iterable and iterator.

5.4 Generators & yield

Generator functions (yield instead of return). Generator expressions (parentheses instead of brackets). yield from for delegating to sub-generators. Memory efficiency — processing million-row files without loading them into memory. send() and generator-based coroutines.

5.5 Context Managers: with Statement

How with works (__enter__, __exit__). File handling with context managers. contextlib.contextmanager decorator — creating context managers from generators. Building custom context managers for database connections, timer utilities, and temporary state changes.

5.6 itertools & functools Modules

itertools: chain, product, permutations, combinations, groupby, islice, count, cycle, repeat. functools: partial, reduce, lru_cache, total_ordering. Writing efficient, memory-conscious Python using these standard library tools.

Placement relevance: "Explain decorators" and "What is a generator?" are top-5 Python interview questions at product companies. @lru_cache is used in DSA interviews to memoize recursive solutions. itertools.permutations/combinations appear in competitive coding.
06

Exception Handling, File I/O & Modules

Writing robust code, working with files, and organising Python projects

6.1 Exception Handling: try/except/else/finally

try-except for catching specific exceptions. else clause — runs only if no exception (often missed). finally — guaranteed cleanup. Multiple except blocks. Exception chaining with from. Bare except — why it's dangerous.

6.2 Custom Exceptions & Exception Hierarchy

BaseException → Exception hierarchy. Creating custom exceptions (subclass Exception). raise keyword. When to raise vs when to return error codes. EAFP vs LBYL — Python's "ask forgiveness, not permission" philosophy.

6.3 File Handling: read, write, modes

open() modes: r, w, a, r+, b (binary). with open() as f — the Pythonic way (never forget to close). read(), readline(), readlines() vs iteration. Writing with write() and writelines(). pathlib.Path — modern file path handling (Python 3.4+).

6.4 JSON, CSV & Data Serialisation

json.dumps() / json.loads() — Python dict ↔ JSON string. json.dump() / json.load() for file I/O. csv module: reader, writer, DictReader, DictWriter. pickle for Python object serialisation (and why it's insecure for untrusted data).

6.5 Modules, Packages & Imports

import, from...import, as alias. __name__ == "__main__" guard — why every script needs it. Creating packages with __init__.py. Relative vs absolute imports. sys.path and how Python finds modules.

6.6 Virtual Environments & pip

Why virtual environments matter (dependency isolation). venv creation and activation. pip install, pip freeze, requirements.txt. The Python packaging ecosystem. pyproject.toml (modern project configuration).

6.7 Type Hints & Annotations

Type hints: def greet(name: str) -> str. Typing module: List, Dict, Optional, Union, Tuple, Any. Why type hints matter — better IDE support, documentation, and team collaboration. mypy for static type checking. Not enforced at runtime.

Placement relevance: Exception handling questions (try/except/else/finally execution order), file handling patterns, and JSON processing are standard in placement MCQs. Virtual environments and type hints signal professional Python practice in interviews.
07

NumPy, Pandas & Data Visualisation

The data science starter kit — numerical computing, data analysis, and charting

7.1 NumPy: Arrays & Vectorised Operations

ndarray creation: array(), zeros(), ones(), arange(), linspace(). Array indexing, slicing, boolean indexing. Vectorised operations (element-wise math without loops). Broadcasting rules. reshape, flatten, transpose. Why NumPy is 50x faster than Python lists for numerical work.

7.2 NumPy: Linear Algebra & Statistics

Matrix multiplication (@ operator, np.dot). np.linalg: inverse, determinant, eigenvalues. Statistical functions: mean, median, std, var, percentile. Random number generation: np.random. Practical: processing image data as arrays.

7.3 Pandas: Series & DataFrame

Series (1D labelled array) and DataFrame (2D table). Creating from dicts, lists, CSV files. Indexing: loc (label), iloc (position). Head, tail, shape, info, describe — exploring data. Column selection, filtering rows, adding/dropping columns.

7.4 Pandas: Data Wrangling

Handling missing data: isna, dropna, fillna. Data types and conversion (astype). String methods via .str accessor. Sorting (sort_values, sort_index). Renaming columns. apply() for custom transformations. Lambda with apply for row-level logic.

7.5 Pandas: GroupBy, Merge & Pivot

groupby() — split-apply-combine pattern. Aggregation: sum, mean, count, agg() with custom functions. merge() — SQL-style joins (inner, left, right, outer). concat() — stacking DataFrames. pivot_table() — Excel-style summarisation.

7.6 Matplotlib & Seaborn: Data Visualisation

Matplotlib: figure, axes, plot, scatter, bar, hist, pie. Subplots and customisation (titles, labels, legends, colours). Seaborn: statistical plots (boxplot, heatmap, pairplot, countplot). Saving figures. When to use Matplotlib vs Seaborn.

Placement relevance: NumPy/Pandas are mandatory for Data Analyst, Data Scientist, and ML Engineer roles. groupby, merge, and data wrangling questions appear in analytics company interviews (Goldman Sachs, EXL, ZS Associates, Mu Sigma). Visualisation skills are tested in data science case studies.
08

Async Programming, Testing & Modern Python

Concurrency, quality assurance, and Python 3.10+ features

8.1 Concurrency: Threading & Multiprocessing

threading module — GIL (Global Interpreter Lock) and why threads don't give true parallelism for CPU-bound work. multiprocessing — bypassing GIL with separate processes. concurrent.futures: ThreadPoolExecutor, ProcessPoolExecutor. When to use which.

8.2 Async Programming: asyncio, async/await

Event loop, coroutines, async def, await. asyncio.run(), asyncio.gather() for concurrent I/O. Async context managers and iterators. When async is the right choice (I/O-bound: API calls, file reads, database queries) vs when it's wrong (CPU-bound).

8.3 Regular Expressions (re module)

Pattern syntax: character classes, quantifiers, anchors, groups. re.match, re.search, re.findall, re.sub. Compiled patterns for performance. Named groups. Practical: email validation, log parsing, data extraction from text.

8.4 Testing: unittest & pytest

Why testing matters. unittest: TestCase, setUp, tearDown, assert methods. pytest: simpler syntax, fixtures, parametrize. Writing test cases for functions and classes. Test-driven development (TDD) basics. Coverage reporting.

8.5 os, sys & pathlib

os module: environment variables, process info, os.path. sys module: command-line arguments (sys.argv), Python path, exit codes. pathlib.Path — modern, object-oriented file paths. Practical: building CLI tools and file processing scripts.

8.6 Modern Python: 3.10–3.12 Features

match-case structural pattern matching (3.10). Exception groups and except* (3.11). Improved error messages with suggestions (3.11/3.12). Performance improvements (3.11 — 25% faster). tomllib for TOML parsing (3.11). What's coming in Python 3.13+.

Placement relevance: GIL explanation, async/await concepts, and regular expressions are asked in product company Python interviews. Testing knowledge (pytest) signals professional coding practice. Modern Python features are differentiators in interviews — they show you're not learning from a 2015 textbook.
Hands-On Practice

What Students Build During This Module

String & List Algorithms

Anagrams, palindromes, frequency counts, sorting — using Pythonic idioms, not C-style loops.

OOP Mini System

Library/banking/e-commerce system using classes, inheritance, dunder methods, and dataclasses.

Custom Decorator Library

Build @timer, @retry, @validate decorators from scratch — understanding how Flask/Django work under the hood.

Data Analysis Pipeline

Clean, transform, and visualise a real dataset (CSV/JSON) using Pandas and Matplotlib — the daily workflow of a data analyst.

File Processing CLI Tool

Build a command-line tool that reads files, processes data (regex/JSON), and outputs results — using argparse, pathlib, and virtual environments.

Tested Module with pytest

Write a utility module with full test coverage — learning TDD by doing, not by reading about it.

How We Deliver

Live Training + Daily Practice + Weekly Assessments

Live Instructor Sessions

Expert trainers explain concepts, live-code solutions, and demonstrate Pythonic patterns. 3–5 sessions per week, each with interactive exercises.

Coding Platform Practice

Daily Python problems on our platform — data structure manipulation, string processing, and OOP tasks with Python 3.12 interpreter and automated testing.

Weekly Assessments

MCQ tests on Python concepts + timed coding challenges. Auto-evaluated with topic-wise analytics showing which areas need reinforcement.

Progress Analytics

Student-wise dashboards tracking Python fluency, Pandas proficiency, and coding speed. TPOs see batch-level readiness for Python-requiring roles.

Why Python Matters for Placements

The Language That Opens the Most Doors

Product Companies Accept Python for DSA

Google, Amazon, Flipkart, Paytm — all accept Python solutions for coding interviews. Python's readability means students write correct code faster, and built-ins like Counter, defaultdict, and heapq are powerful DSA tools that C++ STL users envy.

Data Science & AI Roles REQUIRE Python

Every Data Analyst, Data Scientist, ML Engineer, and AI Engineer job requires Python. NumPy, Pandas, Matplotlib, scikit-learn, TensorFlow, PyTorch — the entire ML/AI ecosystem is Python-first. This module builds the foundation all of them need.

Service Companies Are Adding Python

TCS NQT, Infosys SP, and Cognizant GenC now accept Python as a language option in their coding rounds. Wipro NLTH includes Python-specific MCQs. Students who can code in Python AND Java have a significant advantage over single-language candidates.

GenAI & Automation Run on Python

LLM APIs (OpenAI, Anthropic), LangChain, RAG systems, AI agents, prompt engineering tools, web scraping, task automation — the entire GenAI ecosystem is Python-native. Students learning Python now are positioned for the fastest-growing tech segment.