My personal solutions to the freeCodeCamp JavaScript Algorithms and Data Structures certification, covering all of the labs and workshops.
These are my own solutions, kept here for study and reference. If you're working through the same certification, try the challenges yourself first — spoilers ahead.
| Topic | Description |
|---|---|
| Hello World | First steps in JavaScript |
| Variables and Strings | Declaring variables, string operations |
| Booleans and Numbers | Boolean logic and number handling |
| Arrays | Array creation and manipulation |
| Objects | Working with objects |
| Functions | Function declarations and usage |
| Loops | Iteration with loops |
| Higher Order Functions and Callbacks | map, filter, reduce, callbacks |
| JS Fundamentals | Core JavaScript fundamentals |
| DOM Manipulation and Events | Interacting with the DOM and handling events |
| localStorage and CRUD Operations | Persisting data and CRUD apps (Bookmark Manager, To-Do app) |
| Classes | ES6 classes (Project Idea Board, Shopping Cart) |
| Recursion | Recursive functions (Countdown, Countup, Decimal to Binary Converter, Range of Numbers Generator, Permutation Generator) |
| Data Structures | Implementing data structures (Linked List, Linked List Operations, Stack, Queue) |
| Algorithms | Sorting algorithms (Bubble Sort, Selection Sort, Insertion Sort, Quick Sort) |
| Graphs and Trees | Graph algorithms (DFS, Adjacency List to Matrix, Dijkstra's Shortest Path, N-Queens Problem) |
| Dynamic Programming | Memoization and DP (Fibonacci, Prime Number Sum) |
| Functional Programming | Pure functions and composition (Optional Arg Sum Function, Recipe Ingredient Converter, Sorting Visualizer) |
| Asynchronous Programming | Promises, async/await, fetching data (fCC Authors Page, fCC Forum Leaderboard) |
| Certifications Projects | Capstone projects (Drum Machine, Markdown to HTML Converter, Voting System, Bank Account Management Program, Weather App) |
Each folder corresponds to a section of the curriculum and contains the lab and workshop code for that topic.
Geoffrey Tomagan (@Geoffkai)