Enhance your programming skills with The Self-Taught Computer Scientist: The Beginner’s Guide to Data Structures & Algorithms course. Master computer science, data structures, and algorithms to solve complex problems and propel your career to new heights. Start a transformative learning journey with real-life examples that yield tangible outcomes. It contains interactive lessons, quizzes, and hands-on labs to build and iterate on your code like a software developer.
Lessons
19+ Lessons | 104+ Exercises | 100+ Quizzes | 154+ Flashcards | 154+ Glossary of terms
TestPrep
52+ Pre Assessment Questions | 52+ Post Assessment Questions
Lessons 1: Introduction
- What You Will Learn
- Who Is This Course For?
- Self-Taught Success Stories
- Getting Started
- Sticking with It
Lessons 2: What Is an Algorithm
- Analyzing Algorithms
- Constant Time
- Logarithmic Time
- Linear Time
- Log-Linear Time
- Quadratic Time
- Cubic Time
- Exponential Time
- Best-Case vs. Worst-Case Complexity
- Space Complexity
- Why Is This Important?
- Challenge
Lessons 3: Recursion
- When to Use Recursion
- Challenge
Lessons 4: Search Algorithms
- Linear Search
- When to Use a Linear Search
- Binary Search
- When to Use a Binary Search
- Searching for Characters
- Challenge
Lessons 5: Sorting Algorithms
- Bubble Sort
- When to Use Bubble Sort
- Insertion Sort
- When to Use Insertion Sort
- Merge Sort
- When to Use Merge Sort
- Sorting Algorithms in Python
- Challenge
Lessons 6: String Algorithms
- Anagram Detection
- Palindrome Detection
- Last Digit
- Caesar Cipher
- Challenge
Lessons 7: Math
- Binary
- Bitwise Operators
- FizzBuzz
- Greatest Common Factor
- Euclid's Algorithm
- Primes
- Challenge
Lessons 8: Self-Taught Inspiration: Margaret Hamilton
Lessons 9: What Is a Data Structure
- Data Structure and its Types
- Challenge
Lessons 10: Arrays
- Array Performance
- Creating an Array
- Moving Zeros
- Combining Two Lists
- Finding the Duplicates in a List
- Finding the Intersection of Two Lists
- Challenge
Lessons 11: Linked Lists
- Linked List Performance
- Create a Linked List
- Search a Linked List
- Removing a Node from a Linked List
- Finding a Linked List Cycle
- Challenges
Lessons 12: Stacks
- When to Use Stacks
- Creating a Stack
- Using Stacks to Reverse Strings
- Min Stack
- Stacked Parentheses
- Challenges
Lessons 13: Queues
- When to Use Queues
- Creating a Queue
- Python's Built-In Queue Class
- Create a Queue Using Two Stacks
- Challenge
Lessons 14: Hash Tables
- When to Use Hash Tables
- Characters in a String
- Two Sum
- Challenge
Lessons 15: Binary Trees
- When to Use Trees
- Creating a Binary Tree
- Breadth-First Tree Traversal
- More Tree Traversals
- Invert a Binary Tree
- Challenges
Lessons 16: Binary Heaps
- When to Use Heaps
- Creating a Heap
- Connecting Ropes with Minimal Cost
- Challenge
Lessons 17: Graphs
- When to Use Graphs
- Creating a Graph
- Dijkstra's Algorithm
- Challenge
Lessons 18: Self-Taught Inspiration: Elon Musk
Lessons 19: Next Steps
- What’s Next?
- Climbing the Freelance Ladder
- How to Get an Interview
- How to Prepare for a Technical Interview
- Additional Resources
- Final Thoughts
Hands-on LAB Activities (Performance Labs)
What Is an Algorithm
- Iterating Through a List
Recursion
- Printing the Numbers Recursively
- Calculating the Factorial of a Number Recursively
Search Algorithms
- Performing a Linear Search
- Performing a Binary Search
Sorting Algorithms
- Using a Bubble Sort Algorithm
- Using an Insertion Sort Algorithm
String Algorithms
- Determining Anagrams
- Determining a Palindrome
Math
- Implementing FizzBuzz
- Finding the Greatest Common Factor of Two Numbers
- Determining a Prime Number
Arrays
- Locating All the Zeros to the End of a List
- Combining Two Lists
Linked Lists
- Creating a Linked List
- Finding a Linked List Cycle
Stacks
- Tracking Stack's Biggest Number
- Using Stacked Parentheses
Queues
- Creating a Queue Using Two Stacks
Hash Tables
- Removing All Duplicate Words
- Counting All the Characters in a String
Binary Trees
- Using a Breadth-First Search
- Inverting a Binary Tree
Binary Heaps
- Creating a Heap
Graphs
- Implementing Dijkstra's Algorithm
Reviews
There are no reviews yet.