To develop strong foundational knowledge of data structures and algorithms to write efficient, scalable, and optimized code. Essential for software development, technical interviews, and real-world problem-solving.
Who Should Enroll:
- Beginner level programmers
- Undergraduate students in IT/CS or related
Prerequisites:
Fundamental level knowledge of programming
Trainer:
Rasan Samarasinghe (Profile)
Training Fee:
Rs. 18,000.00 per participant (Method of payment)
Delivery:
Online with live sessions or self-paced
Duration:
24 hours
Medium:
English
Certification:
Digital certification with the transcript upon completion
Course Modules & Structure:
1: Introduction to Algorithms and Complexity
- What is an algorithm?
- Understanding time and space complexity
- Big O notation and performance analysis
Hands-on: Compare runtime of different sorting approaches
2: Arrays and Strings
- Array basics and memory layout
- String manipulation techniques
- Two-pointer approach and sliding window
Hands-on: Implement reverse string, anagram checker, etc.
3: Linked Lists
- Singly and doubly linked lists
- Insertion, deletion, and traversal
- Detecting cycles and reversing a list
Hands-on: Build a linked list from scratch
4: Stacks and Queues
- Stack operations and use cases (e.g., expression parsing)
- Queues and circular queues
- Priority queues and dequeues
Hands-on: Implement browser history & task queue
5: Recursion and Backtracking
- Understanding recursion and stack frames
- Backtracking problems (e.g., permutations, Sudoku solver)
Hands-on: Solve maze problems and N-Queens challenge
6: Trees and Binary Trees
- Tree terminology and traversal techniques
- Binary Search Tree (BST) operations
- Depth-first vs Breadth-first traversal
Hands-on: Implement and visualize BST insert/search/delete
7: Heaps and Priority Queues
- Min-heaps and max-heaps
- Heapify and heap sort
Hands-on: Use heap for top-k problems
8: Hashing and Hash Tables
- Hash functions and collision resolution
- Dictionaries and sets
- Real-world uses (caching, lookups, etc.)
Hands-on: Implement your own hash map
9: Graphs and Graph Algorithms
- Graph representations (adjacency list/matrix)
- DFS, BFS, and shortest path algorithms (Dijkstra’s, A*)
- Detecting cycles and topological sort
Hands-on: Build a route finder or social network graph
10: Sorting and Searching Algorithms
- Bubble, Selection, Insertion, Merge, Quick Sort
- Binary search and search optimizations
Hands-on: Visualize sorting steps and implement search
11: Dynamic Programming (DP)
- Understanding overlapping subproblems
- Memoization vs tabulation
- Common DP patterns (e.g., knapsack, LIS, LCS)
Hands-on: Solve Fibonacci, coin change, and grid path problems
12: Greedy Algorithms & Optimization
- Greedy strategy concept and correctness
- Interval scheduling, activity selection, Huffman encoding
Hands-on: Build a greedy solution to job sequencing
13: Problem Solving and Interview Preparation
- Strategy to approach coding problems
- Pattern recognition and decomposition
- Mock interview challenges
Hands-on: Weekly timed coding practice with review
Request this Training
We schedule our trainings based on the requests we receive. Whether you’re an individual or a team, fill out the form below to request this course. We’ll get back to you with available dates or a custom session – group or one-on-one. Learn more.