How this course works
The chapters and lessons below are the fixed course structure. When you start, LearnLive teaches each lesson interactively and adapts examples, pacing, and questions to you.
Complete syllabus
Every chapter and lesson
- 01
Chapter 1 · 3 lessons
Algorithmic Foundations
- 1.1
Algorithm analysis & Big-O
9 min · Quick check
Lesson goal: By the end you can analyze the efficiency of algorithms using Big-O notation.
- Understand the definition of algorithm analysis.
- Learn the concept of Big-O notation and its significance.
- Identify different time complexities and their implications.
- Compare the efficiency of various algorithms using Big-O.
- 1.2
Recursion
9 min · Quick check
Lesson goal: By the end you can apply recursion to solve problems effectively.
- Define recursion and understand its basic principles.
- Identify base cases and recursive cases in recursive functions.
- Explore common examples of recursive algorithms.
- Analyze the performance and limitations of recursive solutions.
- 1.3
Correctness & invariants
8 min · Quick check
Lesson goal: By the end you can demonstrate the correctness of algorithms using invariants.
- Define correctness in the context of algorithms.
- Understand the role of invariants in proving correctness.
- Learn how to establish and use invariants in algorithm design.
- Apply invariants to verify the correctness of specific algorithms.
- 1.1
- 02
Chapter 2 · 3 lessons
Linear Structures
- 2.1
Arrays & dynamic arrays
9 min · Quick check
Lesson goal: By the end you can define arrays and dynamic arrays, and explain their characteristics and uses.
- Define arrays and dynamic arrays.
- Explain the difference between static and dynamic arrays.
- Discuss memory allocation for dynamic arrays.
- Identify use cases for arrays and dynamic arrays.
- 2.2
Linked lists
8 min · Quick check
Lesson goal: By the end you can define linked lists and describe their structure and advantages.
- Define linked lists and their components (nodes, pointers).
- Explain the advantages of linked lists over arrays.
- Discuss different types of linked lists (singly, doubly, circular).
- Identify use cases for linked lists.
- 2.3
Stacks & queues
8 min · Quick check
Lesson goal: By the end you can define stacks and queues, and illustrate their operations and applications.
- Define stacks and queues and their key operations (push, pop, enqueue, dequeue).
- Explain the Last In First Out (LIFO) principle for stacks and the First In First Out (FIFO) principle for queues.
- Discuss applications of stacks and queues in real-world scenarios.
- Illustrate stack and queue implementations using arrays or linked lists.
- 2.1
- 03
Chapter 3 · 3 lessons
Sorting & Searching
- 3.1
Elementary sorts
8 min · Quick check
Lesson goal: By the end you can define elementary sorting algorithms and explain their basic principles.
- Define elementary sorts such as Bubble Sort, Selection Sort, and Insertion Sort.
- Explain the time complexity of each elementary sort.
- Discuss the advantages and disadvantages of using elementary sorts.
- 3.2
Merge & quicksort
9 min · Quick check
Lesson goal: By the end you can implement and compare the Merge Sort and Quick Sort algorithms.
- Define Merge Sort and Quick Sort and their divide-and-conquer approach.
- Implement Merge Sort and Quick Sort algorithms in code.
- Compare the efficiency of Merge Sort and Quick Sort in terms of time complexity.
- 3.3
Binary search
8 min · Quick check
Lesson goal: By the end you can describe the Binary Search algorithm and apply it to sorted data.
- Define Binary Search and its requirements for operation.
- Explain the time complexity of Binary Search.
- Demonstrate how to implement Binary Search on a sorted array.
- 3.1
- 04
Chapter 4 · 3 lessons
Trees
- 4.1
Binary trees & traversals
9 min · Quick check
Lesson goal: By the end you can understand the structure and traversal methods of binary trees.
- Define binary trees and their properties.
- Explain different types of tree traversals: in-order, pre-order, and post-order.
- Illustrate the process of traversing a binary tree using examples.
- 4.2
Binary search trees
9 min · Quick check
Lesson goal: By the end you can identify and implement binary search trees.
- Define binary search trees and their characteristics.
- Discuss the importance of the binary search tree property for efficient searching.
- Demonstrate insertion and deletion operations in a binary search tree.
- 4.3
Balanced trees & heaps
8 min · Quick check
Lesson goal: By the end you can understand balanced trees and heaps, and their applications.
- Define balanced trees and heaps, and explain their significance in data structures.
- Describe common types of balanced trees, such as AVL trees and Red-Black trees.
- Illustrate heap operations, including insertion and deletion, with examples.
- 4.1
- 05
Chapter 5 · 3 lessons
Hashing & Maps
- 5.1
Hash tables
9 min · Quick check
Lesson goal: By the end you can explain the concept of hash tables and their components.
- Define what a hash table is and its purpose in data storage.
- Explain the role of a hash function in mapping keys to indices.
- Discuss the importance of load factor and resizing in hash tables.
- 5.2
Collision handling
8 min · Quick check
Lesson goal: By the end you can describe various methods for handling collisions in hash tables.
- Define what a collision is in the context of hash tables.
- Explain separate chaining as a method for collision resolution.
- Discuss open addressing techniques, including linear probing and quadratic probing.
- 5.3
Sets & maps in practice
8 min · Quick check
Lesson goal: By the end you can apply sets and maps in practical scenarios.
- Define sets and maps and their differences.
- Demonstrate how to use sets for unique item storage.
- Show how maps can be used for key-value pair storage in applications.
- 5.1
- 06
Chapter 6 · 3 lessons
Graphs
- 6.1
Graph representations
8 min · Quick check
Lesson goal: By the end you can explain the different ways to represent graphs in computer science.
- Define a graph and its components (vertices and edges).
- Describe the adjacency matrix representation and its characteristics.
- Explain the adjacency list representation and its advantages.
- Discuss other representations like edge lists and their use cases.
- 6.2
BFS & DFS
9 min · Quick check
Lesson goal: By the end you can implement and differentiate between Breadth-First Search and Depth-First Search algorithms.
- Define Breadth-First Search (BFS) and its use in traversing graphs.
- Outline the steps involved in the BFS algorithm.
- Define Depth-First Search (DFS) and its approach to graph traversal.
- Compare and contrast BFS and DFS in terms of their applications and performance.
- 6.3
Shortest paths & MSTs
9 min · Quick check
Lesson goal: By the end you can apply algorithms to find the shortest paths and minimum spanning trees in graphs.
- Define shortest path and minimum spanning tree (MST) concepts.
- Introduce Dijkstra's algorithm for finding the shortest path in weighted graphs.
- Explain Prim's and Kruskal's algorithms for constructing minimum spanning trees.
- Discuss the applications of shortest paths and MSTs in real-world scenarios.
- 6.1