Python with Data Structures and
Algorithms
48-Hour Intermediate Placement Preparation
Program
Program Objective
To strengthen students’ Python programming, problem-solving, data
structures and algorithmic thinking required for campus placement coding
assessments conducted by IT services, product-based and multinational
companies.
Target Audience
Pre-final-year and final-year undergraduate students who have basic
knowledge of Python programming.
Prerequisites
Students should be familiar with:
• Python syntax and basic programming
• Variables, data types and operators
• Conditional statements
• Loops
• Functions
• Basic lists and strings
Program Duration
Total Duration: 48 Hours
Training Level: Intermediate
Training Method: Concept learning, guided coding, practice challenges,
assessments and mock coding tests
Module-Wise Course Structure
Module 1: Python Programming Refresher
Duration: 4 Hours
Topics
• Python execution flow
• Input and output techniques
• Variables and data types
• Type conversion
• Operators and expressions
• Conditional statements
• Loops and nested loops
• Functions and return values
• Scope of variables
• List comprehensions
• Lambda functions
• Basic exception handling
Practice Problems
• Number-based problems
• Pattern problems
• Digit manipulation
• Prime-number problems
• Armstrong and palindrome numbers
• GCD and LCM
• Factorial and Fibonacci sequence
Module 2: Problem-Solving and Complexity
Analysis
Duration: 4 Hours
Topics
• Understanding coding problem statements
• Identifying input, output and constraints
• Breaking problems into smaller steps
• Writing pseudocode
• Dry-running programs
• Developing brute-force solutions
• Optimising solutions
• Time complexity
• Space complexity
• Big-O notation
• Best, average and worst-case analysis
Practice Problems
• Find the largest and second-largest numbers
• Count occurrences of elements
• Find missing numbers
• Remove duplicates
• Frequency-based problems
• Optimise nested-loop solutions
Module 3: Arrays and Lists
Duration: 6 Hours
Topics
• Array and list operations
• Traversal, insertion and deletion
• Searching elements
• Updating and rearranging elements
• Prefix sum technique
• Two-pointer technique
• Sliding-window technique
• Frequency arrays
• Kadane’s algorithm
• Matrix basics
Practice Problems
• Reverse an array
• Rotate an array
• Move zeros to the end
• Find duplicate elements
• Find the missing number
• Find leaders in an array
• Maximum subarray sum
• Pair with a given sum
• Merge two sorted arrays
• Maximum sum of a fixed-size subarray
• Matrix transpose
• Spiral matrix traversal
Module 4: Strings
Duration: 5 Hours
Topics
• String traversal and manipulation
• Character frequency
• ASCII and Unicode concepts
• String slicing
• Palindrome checking
• Anagrams
• Substrings and subsequences
• Pattern matching basics
• String compression
• Two-pointer applications in strings
Practice Problems
• Reverse words in a sentence
• Check whether two strings are anagrams
• Find the first non-repeating character
• Remove duplicate characters
• Find the longest common prefix
• Count vowels, consonants and special characters
• Check string rotation
• Find the longest substring without repeating characters
• Compress a string
• Validate balanced characters
Module 5: Searching and Sorting Algorithms
Duration: 5 Hours
Topics
• Linear search
• Binary search
• Binary search on sorted data
• Binary search on answer
• Bubble sort
• Selection sort
• Insertion sort
• Merge sort
• Quick sort
• Python sorting methods
• Custom sorting using keys
• Comparison of sorting algorithms
Practice Problems
• Search an element in a sorted array
• Find first and last occurrence
• Find floor and ceiling values
• Search in a rotated sorted array
• Find square root using binary search
• Sort elements by frequency
• Merge overlapping intervals
• Find the kth smallest or largest element
Module 6: Recursion and Backtracking
Duration: 5 Hours
Topics
• Recursive thinking
• Base and recursive cases
• Call stack
• Recursive complexity
• Recursion on numbers
• Recursion on arrays and strings
• Introduction to backtracking
• Decision trees
• Generating combinations and permutations
• Pruning invalid solutions
Practice Problems
• Factorial using recursion
• Fibonacci using recursion
• Sum of digits
• Reverse a string recursively
• Generate all subsequences
• Generate permutations
• Combination-sum problems
• Rat in a maze
• N-Queens introduction
• Valid-parentheses generation
Module 7: Linked Lists
Duration: 4 Hours
Topics
• Linked-list structure
• Nodes and references
• Singly linked lists
• Traversal
• Insertion and deletion
• Reversing a linked list
• Fast and slow pointer technique
• Cycle detection
• Finding the middle node
Practice Problems
• Create and display a linked list
• Insert at the beginning, end and position
• Delete a node
• Reverse a linked list
• Find the middle node
• Detect a cycle
• Remove duplicates from a sorted linked list
• Merge two sorted linked lists
Module 8: Stacks and Queues
Duration: 4 Hours
Topics
• Stack operations
• Stack implementation using lists
• Queue operations
• Queue implementation using deque
• Circular queue concept
• Monotonic stack introduction
• Applications of stacks and queues
Practice Problems
• Balanced parentheses
• Reverse a string using a stack
• Evaluate postfix expressions
• Next greater element
• Stock span problem
• Implement a queue using stacks
• Implement a stack using queues
• Generate binary numbers using a queue
Module 9: Hashing, Sets and Dictionaries
Duration: 3 Hours
Topics
• Hashing concepts
• Python dictionaries
• Python sets
• Frequency maps
• Lookup optimisation
• Collision concept
• Hashing-based problem-solving patterns
Practice Problems
• Two-sum problem
• Find duplicate elements
• Find common elements
• Majority element
• Count distinct elements
• Longest consecutive sequence
• Subarray with a given sum
• Group anagrams
Module 10: Trees and Binary Search Trees
Duration: 3 Hours
Topics
• Tree terminology
• Binary-tree representation
• Depth-first traversal
• Preorder, inorder and postorder traversal
• Breadth-first traversal
• Binary search tree properties
• Searching and inserting in a BST
• Height and depth of a tree
Practice Problems
• Tree traversals
• Level-order traversal
• Find tree height
• Count leaf nodes
• Search an element in a BST
• Find minimum and maximum values in a BST
• Validate a binary search tree
• Find the lowest common ancestor
Module 11: Graphs and Greedy Algorithms
Duration: 2 Hours
Topics
• Graph terminology
• Adjacency list and adjacency matrix
• Breadth-first search
• Depth-first search
• Connected components
• Introduction to greedy algorithms
• Selecting locally optimal solutions
Practice Problems
• Graph traversal using BFS
• Graph traversal using DFS
• Count connected components
• Number of islands
• Activity-selection problem
• Minimum number of platforms
• Coin-selection problems
Module 12: Dynamic Programming
Fundamentals
Duration: 2 Hours
Topics
• Overlapping subproblems
• Optimal substructure
• Memoisation
• Tabulation
• Converting recursion into dynamic programming
• One-dimensional DP problems
Practice Problems
• Fibonacci using dynamic programming
• Climbing stairs
• Minimum cost climbing stairs
• House robber problem
• Coin change introduction
• Longest common subsequence introduction
Module 13: Placement Coding Strategies and
Mock Assessments
Duration: 1 Hour
Topics
• Understanding company coding-test patterns
• Managing time during coding assessments
• Selecting the right programming problem
• Handling hidden test cases
• Input and output formatting
• Edge-case identification
• Debugging runtime and logical errors
• Writing optimised and readable code
• Avoiding common coding-test mistakes