You are on page 1of 5

PROGRAMMING & ALGORITHMS

Overview
Any successful software product is always produced with the efforts of team of good software engineers. A good
software engineer must possess good problem solving skills. Most of the product companies like Google, Yahoo,
Facebook, MicroSoft, Adobe, Rediff, Amazon, Fair Issac, D E Shaw, QualComm, ComVault, Oracle etc..., need
software engineers who had excellent problem solving skills.
This workshop provides a platform to improve your problem solving skills besides providing strong fundamental
knowledge on DataStructues and Algorithms. The workshop focuses more on discussions in the class which
allows the participants to come up with new ideas.
Objectives
Upon successful completion of this workshop, participants will be able to:

Enhance Thinking process

Crack any product company interview/written tests

Think through the solution techniques to any problem

Improve the analysis skills of the algorithms generated by themselves/others

Find and apply proper data structures for the algorithm implementation

Enhance the coding skills to maximum possible level

Apply Algorithmic knowledge to real-world Problem Solving


Target Audience

Any under-graduate/graduate students from Universities, RECs, NITs, IIITs and IITs

Self motivated candidates from any college who want to crack big companies

Students who already had job offer(s) and aspire to join Big League

Students who want in-depth knowledge in Data Structures, Algorithms & Programming

Working software professionals who are looking for better opportunities in product based software
companies

Any passionate student/working professional who wants to understand the fundamentals of computer
science which are mandatory for any software developer
Prerequisites
Passion, Interest.
Syllabus
1.Importance of Problem Solving
Understanding the problem solving approach
Understanding the algorithm design for a
problemCharacteristics of Webservices
Understanding the algorithm analysis
Understanding Asymptotic analysis & O,,
notations

2. Array and Vector


Understanding the concept of Vector
Discussion of Vector implementation techniques
Understanding Amortized Analysis
Discussion on better algorithms for following
problems, analysis & coding
Generating Magic Square

Practical Examples

Generating Minesweeper Game


Printing Array Spirally
Assignment Problems

3. Stack & Queue

Copyright Protected 2010-2013 Ravindra

4. Linked List

PROGRAMMING & ALGORITHMS


Understanding Stack & Queue

Understanding Linked Lists

Practical Significance of Stack & Queue

Practical Significance of LinkedList

Discussion on implementation choices


Discussion on better algorithms for following
problems, analysis & coding
Infix to postfix conversion

Discussion on implementation choices of


LinkedList
Discussion on better algorithms for following
problems, analysis & coding
Reversing of single linked list

Evaluation of postfix Expression

Implementing Josephus problem

Balancing of Symbols

Duplicate removal in a linked list

Stack with Single Queue

Finding middle of the linked list

Queue with two Stacks


Assignment Problems

Finding common node in two corrupted


lists
Sorting of linked list
Finding K-th node from the end of the
linked list
Detecting & Removing loop in Single
linked list
Assignment Problems

5.Priority Queue

6. Binary Tree

Understanding Priority Queue

Understanding Binary Trees

Practical Significance of Priority Queue

Practical Significance of Binary Trees

Discussion on implementation techniques of


Priority Queue

Discussion on implementation techniques of


BinaryTrees

Implementation of priority queue using Heap

Discussion on better algorithms for following


problems, analysis & coding

Discussion on better algorithms for following


problems, analysis & coding
File Merging
Merging k-sorted lists into a single sorted
list

Recursive traversals of Binary Tree


(Inorder, Preorder, Postorder)
Non Recursion traversals of Binary
Tree(Inorder, Preorder, Postorder)
Implementation of level order Traversal

Finding K closest points to origin in 2-d

Generating mirror image of a tree

space

Finding the count of leaf nodes and

Assignment Problems
internal nodes

Construction of binary tree from preorder


and inorder traversals
Stack or Queue less Traversals
Assignment Problems

7. Binary Search Tree & Balanced Search Tree(AVL/RB)


Understanding Binary Search Trees & Balanced
Search Trees

Copyright Protected 2010-2013 Ravindra

8. Hash Table
Understanding Hash Table
Practical Significance of Hash Table

PROGRAMMING & ALGORITHMS


Practical Significance of Balanced Search Trees
Implementation of Balanced Search Tree
Operations
Discussion on better algorithms for following
problems, analysis & coding
Finding LCA (Least Common Ancestor) in

Implementation of Hash Table using array of linked


lists
Discussion on better algorithms for following
problems, analysis & coding
Finding First Repeated and Non
Repeated element
Finding most frequent Words in a file

BST
Searching a word in online dictionary
Assignment Problems

Finding number of anagram classes


among group of words available in file
Assignment Problems

9. Tries & Patricia Tries

10. Ternary Search Trees

Understanding the concept of Tries

Understanding the concept of TST

Practical Applications of Tries

Practical importance of TST

Designing better algorithms for following problems,


analysis & coding

Designing better algorithms for following problems,


analysis & coding

Implementation of Set & Map using Tries

Implementation of Set & Map using TST

Implementation of Phone Book

Implementation of Phone Bok

Implementation of T9 Input Mode in

Assignment Problems

Mobiles
Spell Checker
Assignment Problems

11. Sorting Techniques

12.Searching techniques

Understanding the importance of sorting in


programming

Understanding the importance of searching in


programming

Understanding the ideas behind following


Comparison based sorting techniques

Understand the ideas behind following search


techniques

Selection sort, Bubble sort, Insertion sort,

Linear search

Shell sort

Binary search
Quick sort, Merge sort, Heap sort

Understanding the ideas behind following NonComparison based sorting techniques

Interpolation search
Designing better algorithms for following problems,
analysis & coding

Counting sort

Identity problem

Radix sort
Designing better algorithms for following problems,
analysis & coding
2-Sum problem

Searching an element in an array of


unknown size
Finding an element in a bi-tonic array
Assignment Problems

3- sum problem
Assignment Problems

13. Recursion
Understanding the concept of Recursion &

Copyright Protected 2010-2013 Ravindra

14. Divide and Conquer Algorithms

PROGRAMMING & ALGORITHMS


Understanding the concept of Divide & Conquer

Activation Record
RecursionTree
Designing better algorithms for following problems,
analysis & coding

Forming D&C relations and Solving them


Designing better algorithms for following problems,
analysis & coding

Towers of Hanoi

Quick sort

Variations on Towers of Hanoi

Merge sort

Finding Power & GCD

Strassens Matrix Multiplication Algorithm

Maze problems

Assignment Problems

Assignment Problems

15. Greedy Algorithms


Understanding the concept of Greedy Method
Designing better algorithms for following problems,
analysis & coding
Compression of textual data

16. Dynamic programming


Understanding the concept of Dynamic
programming
Designing better algorithms for following problems,
analysis & coding
Finding Nth Fibonacci number

Interval coloring
FActivity selection problem
Scheduling with deadlines

Finding maximum contiguous


subsequence sum
Finding Largest common sub sequence

Fractional knapsack problem

Coin changing problem

Shortest job first

0/1 Knapsack problem

Assignment Problems

Subset sum problem


Matrix Chain Multiplication problem
Assignment Problems

17. Back Tracking

18. Graphs

Understanding the concept of Back-tracking

Understanding the concept of Graphs

Designing better algorithms for following problems,


analysis & coding
Generating Binary Sequences

Practical importance of Graphs


Standard Graph algorithms & their applications to
reality

Generating all possible combinations of

Traversal algorithms(BFS and DFS)

input array

Connected components, Articulation


Generating permutations

points & Bridges

Eight queues problem

Minimum Spanning tree algorithms


(prims and kruskals)

Knights tour problem


Assignment Problems

Shortest path algorithms


Dijkstras algorithm
Bellman Fords algorithm
Floyd-Warshalls algorithm
Assignment Problems

Copyright Protected 2010-2013 Ravindra

PROGRAMMING & ALGORITHMS


19. Suffix Array, Suffix Tree & String Algorithms

20. BitArray & Bloom Filter

Understanding the concept of Suffix Array & Tree

Understanding the concept Bit Array, Bloom Filter

Practical Applications of Suffix Array & Tree

Practical importance of Bit Arrays & Bloom Filters

Designing better algorithms for following problems,


analysis & coding
Finding the length of longest repeated
substring
Pattern Matching
Finding the length of longest repeated
substring in a given string
Assignment Problems

Copyright Protected 2010-2013 Ravindra

Assignment Problems

You might also like