Course Brochure

CLS is an authorized and accredited partner by technology leaders like Microsoft, EC-Council, Adobe and Autodesk. This means that our training programs are of the highest quality source materials, the most up-to-date, and have the highest return on investment ever possible.

We have been in the market since 1995, and we kept accumulating experience in the training business, and providing training for more than 100,000 trainees ever since, in Egypt, and the MENA region.

Our vendors

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]

Data Structures and

Duration: 70 Hours Category: Software Development

Course overview

• This course introduces students to the underlying principles of data structures and algorithms. • It also helps to develop student's understanding of the basic concepts of object-oriented programming using C++. • This course also provides practical knowledge and hands-on experience in designing and implementing data structures and algorithms and their manipulation. • Topics to be covered include introduction to C++ programming language, pointers and arrays, classes, recursion, stacks, queues, lists, tables, trees, binary trees, search trees, heaps and priority queues; sorting, hashing, garbage collection, storage management; and the rudiments of the analysis of algorithms.

Course Outcomes

Upon successful completion of this course, the student will be able to: • Design and implement an object-oriented program in the C++ language, including defining classes that encapsulate data structures and algorithms. • Select and implement appropriate data structures that best utilize resources to solve a computational problem.

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]

• Analyze the running time and space needs of an , asymptotically to ensure it is appropriate at scale, including for huge data. • Prepare for advanced topics in Computer Science with the foundational knowledge of object data structures needed to implement and call advanced library functions. • Apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces. • Apply basic algorithmic techniques such as greedy algorithms, searching, sorting and dynamic programming to solve programming challenges. • Apply various data structures such as stack, queue, hash table, priority queue, binary search tree, graph and string to solve programming challenges. • Solve complex programming challenges using advanced techniques in dynamic programming, complex graph problems, mathematical and geometric algorithms.

Audience profiles

• After completing this course, you will be equipped for the job roles like Programmer, Web/App Developer, Analyst and Software Engineer thus, you can build an outstanding career.

Prerequisites

• C++ and OOP Fundamentals.

Course Outline

Lecture 1: Complexity Analysis & Recursion • Introduction to Data Structures • Execution Time Cases • Complexity Analysis Examples • Recursion Lecture 2: Arrays • Introduction to Arrays • Insertion Operation • Deletion Operation • Search Operation

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]

• Traverse Operation • & Space Complexity Lecture 3: Linked List • Introduction to Linked Lists • Insertion Operation • Deletion Operation • Search Operation • Traverse Operation • Time Complexity & Space Complexity Lecture 4: Stack • Introduction to Stack • Insertion Operation • Deletion Operation • Front & Back Operation • Time Complexity & Space Complexity Lecture 5: Queue • Introduction to Queue • Insertion Operation • Deletion Operation • Top Operation • Time Complexity & Space Complexity Lecture 6: Deque • Introduction to Deque • Insertion Operation • Deletion Operation • Search Operation • Traverse Operation • Time Complexity & Space Complexity Lecture 7: STL in C++ (Linear Data Structures) • Linear Data Structures in C++ • Vector • List • Stack • Queue • Deque Lecture 8: Binary Tree • Introduction to Binary Tree • Traverse Operation • BFS vs DFS for Binary Tree • Search Operation • Deletion Operation

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]

• Time Complexity & Space Complexity Lecture 9: Binary Search Tree • Introduction to Binary Search Tree • Insertion Operation • Deletion Operation • Search Operation • Traverse Operation • Time Complexity & Space Complexity • Balanced Binary Tree Property Lecture 10: Self Balancing Binary Search Tree • Introduction to AVL Tree • Insertion Operation • Deletion Operation • Search Operation • Traverse Operation • Time Complexity & Space Complexity Lecture 11: Heap Tree • Introduction to Heap Tree • Insertion Operation • Deletion Operation • Top Operation • Time Complexity & Space Complexity Lecture 12: Graphs • Introduction to Graphs • Directed vs Undirected Graph • Breadth First Traverse • Depth First Traverse • Cyclic vs Acyclic Graph • Connected vs Disconnected Graph Lecture 13: Hash Tables • Introduction to Hash Tables • Collision Resolution • Separate Chaining • Open Addressing • Double Hashing • Rehashing Lecture 14: STL in C++ (Non-Linear Data Structures) • Non-Linear Data Structures in C++ • Set • Multi-set • Map

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]

• Multi-map • Priority Queue Lecture 15: Analysis of Algorithms • Analysis Methods in Time & Space Complexity • Substitution Method • Recurrence Tree Method • Master Method Lecture 16: Sorting Algorithms • Bubble Sort • Insertion Sort • Selection Sort • Shell Sort • Merge Sort • Quick Sort • Heap Sort • Counting Sort • Bitonic Sort • Radix Sort • Bucket Sort • Pigeonhole Sort • Tim Sort • Cartesian Sort Lecture 17: Searching Algorithms • • Binary Search • Ternary Search • Sublist Search • Exponential Search • Jump Search • Fibonacci Search • Lecture 18: Divide and Conquer Algorithms • Binary Search • Merge Sort & Quick Sort • Fast Power • Closest Pair of Points • Count Inversions • Multiply Two Polynomials • Strassen's Matrix Multiplication • Karatsuba Algorithm for Fast Multiplication

Tel: +20233370280 Web: https://clslearn.com Mobile: +201000216660 Email: [email protected]