diff --git a/client/i18n/locales/chinese-traditional/intro.json b/client/i18n/locales/chinese-traditional/intro.json
index a7c5435d351..534743f9a84 100644
--- a/client/i18n/locales/chinese-traditional/intro.json
+++ b/client/i18n/locales/chinese-traditional/intro.json
@@ -942,50 +942,52 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "設置與第一步",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
- "在這些視頻中,知名編程講師 Mike Dane 將向你介紹 Python 並展示如何設置本地環境。"
+ "In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "核心概念:變量、類型、基本 I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
- "在這些視頻中,你將學習變量、數據類型、字符串、數字以及從用戶獲取輸入。"
+ "In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "小項目:使用基礎知識",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
- "在這些視頻中,你將通過構建一個基礎計算器應用和填詞遊戲來練習到目前爲止所學的內容。"
+ "In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "數據結構:列表與元組",
- "intro": ["在這些視頻中,你將學習列表、元組及常見操作。"]
- },
- "learn-python-control-flow-functions": {
- "title": "控制流與函數",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
- "在這些視頻中,你將學習如何使用 if 語句控制程序流程。你還將學習如何使用函數編寫可重用代碼。"
+ "In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-projects-loops": {
- "title": "字典與循環",
+ "control-flow-and-functions-in-python": {
+ "title": "Control Flow and Functions",
"intro": [
- "在這些視頻中,你將學習如何使用字典和各種循環,包括 while 和 for 循環。"
+ "In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-practical-errors-files": {
- "title": "實用 Python:錯誤、文件與模塊",
+ "dictionaries-and-loops": {
+ "title": "Dictionaries and Loops",
"intro": [
- "在這些視頻中,你將學習如何優雅地處理錯誤、讀寫文件,並使用模塊和外部包組織代碼。"
+ "In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-oop": {
- "title": "面向對象編程",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
- "在這些視頻中,你將通過創建類和對象學習面向對象編程。你將通過構建一個多項選擇測驗應用來練習這些技能。"
+ "In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
+ ]
+ },
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
+ "intro": [
+ "In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
}
}
@@ -1002,61 +1004,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1429,6 +1431,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "信息安全",
"intro": [
@@ -3609,6 +5571,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4143,7 +6111,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4238,7 +6206,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4325,7 +6293,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4367,7 +6335,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4385,7 +6353,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4396,7 +6364,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4431,7 +6399,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -4992,6 +6960,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7845,7 +9817,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/chinese-traditional/translations.json b/client/i18n/locales/chinese-traditional/translations.json
index 017ef555551..aa8350e70dd 100644
--- a/client/i18n/locales/chinese-traditional/translations.json
+++ b/client/i18n/locales/chinese-traditional/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "更多登錄方式",
"sign-in-with-google": "使用 Google 登錄",
"go-to-dcc-today": "訪問今天的編程挑戰",
- "go-to-dcc-archive": "訪問每日編程挑戰存檔"
+ "go-to-dcc-archive": "訪問每日編程挑戰存檔",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "每日編程挑戰",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "開發者 A2 英語",
"a2-english-for-developers-cert": "A2 開發者英語認證(測試版)",
"b1-english-for-developers": "開發者 B1 英語",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/chinese/intro.json b/client/i18n/locales/chinese/intro.json
index 737ab6cf24b..9e7c1df8144 100644
--- a/client/i18n/locales/chinese/intro.json
+++ b/client/i18n/locales/chinese/intro.json
@@ -942,50 +942,52 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "设置与第一步",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
- "在这些视频中,知名编程讲师 Mike Dane 将向你介绍 Python 并展示如何设置本地环境。"
+ "In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "核心概念:变量、类型、基本 I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
- "在这些视频中,你将学习变量、数据类型、字符串、数字以及从用户获取输入。"
+ "In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "小项目:使用基础知识",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
- "在这些视频中,你将通过构建一个基础计算器应用和填词游戏来练习到目前为止所学的内容。"
+ "In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "数据结构:列表与元组",
- "intro": ["在这些视频中,你将学习列表、元组及常见操作。"]
- },
- "learn-python-control-flow-functions": {
- "title": "控制流与函数",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
- "在这些视频中,你将学习如何使用 if 语句控制程序流程。你还将学习如何使用函数编写可重用代码。"
+ "In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-projects-loops": {
- "title": "字典与循环",
+ "control-flow-and-functions-in-python": {
+ "title": "Control Flow and Functions",
"intro": [
- "在这些视频中,你将学习如何使用字典和各种循环,包括 while 和 for 循环。"
+ "In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-practical-errors-files": {
- "title": "实用 Python:错误、文件与模块",
+ "dictionaries-and-loops": {
+ "title": "Dictionaries and Loops",
"intro": [
- "在这些视频中,你将学习如何优雅地处理错误、读写文件,并使用模块和外部包组织代码。"
+ "In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-oop": {
- "title": "面向对象编程",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
- "在这些视频中,你将通过创建类和对象学习面向对象编程。你将通过构建一个多项选择测验应用来练习这些技能。"
+ "In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
+ ]
+ },
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
+ "intro": [
+ "In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
}
}
@@ -1002,61 +1004,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1429,6 +1431,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "信息安全",
"intro": [
@@ -3609,6 +5571,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4143,7 +6111,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4238,7 +6206,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4325,7 +6293,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4367,7 +6335,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4385,7 +6353,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4396,7 +6364,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4431,7 +6399,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -4992,6 +6960,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7845,7 +9817,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json
index d844d926f2d..f9bbc55c1dc 100644
--- a/client/i18n/locales/chinese/translations.json
+++ b/client/i18n/locales/chinese/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "更多登录方式",
"sign-in-with-google": "使用 Google 登录",
"go-to-dcc-today": "访问今天的编程挑战",
- "go-to-dcc-archive": "访问每日编程挑战存档"
+ "go-to-dcc-archive": "访问每日编程挑战存档",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "每日编程挑战",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "开发者 A2 英语",
"a2-english-for-developers-cert": "A2 开发者英语认证(测试版)",
"b1-english-for-developers": "开发者 B1 英语",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/espanol/intro.json b/client/i18n/locales/espanol/intro.json
index 11968330360..241af81e39c 100644
--- a/client/i18n/locales/espanol/intro.json
+++ b/client/i18n/locales/espanol/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Seguridad de la Información",
"intro": [
@@ -3733,6 +5693,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Comprender grafos y árboles.",
"intro": [
@@ -4277,7 +6243,7 @@
"lecture-introduction-to-python": {
"title": "Introducción a Python",
"intro": [
- "En estas lecciones, aprenderás qué es Python y cómo establecer tu entorno de desarrollo."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4372,7 +6338,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Trabajar con Bucles y Secuencias",
"intro": [
- "Aprende sobre el trabajo con bucles y secuencias en estas lecciones."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4461,7 +6427,7 @@
},
"lecture-classes-and-objects": {
"title": "Clases y Objetos",
- "intro": ["Aprende sobre Clases y Objetos en estas lecciones."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Construir un Inventario de Instrumentos Musicales",
@@ -4503,7 +6469,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Comprender la Programación Orientada a Objetos y la Encapsulación",
"intro": [
- "Aprende sobre Comprender la Programación Orientada a Objetos y la Encapsulación en estas lecciones."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4521,7 +6487,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Comprensión de la Herencia y el Polimorfismo",
"intro": [
- "Aprende sobre Comprensión de la Herencia y el Polimorfismo en estas lecciones."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4532,9 +6498,7 @@
},
"lecture-understanding-abstraction": {
"title": "Comprensión de la Abstracción",
- "intro": [
- "Aprende sobre Comprensión de la Abstracción en estas lecciones."
- ]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Construir un Calculador de Descuentos.",
@@ -4569,7 +6533,7 @@
"lecture-working-with-common-data-structures": {
"title": "Trabajar con Estructuras de Datos Comunes",
"intro": [
- "Aprende sobre Trabajar con Estructuras de Datos Comunes en estas lecciones."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5144,6 +7108,10 @@
"Aprende sobre scripts de npm, publicar paquetes en el registro de npm, y trabajar con CommonJS y módulos ES. Estas lecciones cubren herramientas esenciales de desarrollo de Node.js y sistemas de módulos."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -8021,10 +9989,10 @@
"title": "Full-Stack Open",
"intro": ["Una buena introducción se agregará aquí."],
"blocks": {
- "cat-blog-page": {
- "title": "Construir una Página de Blog sobre Gatos",
+ "workshop-blog-page": {
+ "title": "Build a Cat Blog Page",
"intro": [
- "En este taller, construirás una página de blog solo con HTML utilizando elementos semánticos incluidos main, nav, article y footer."
+ "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
]
}
},
diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json
index e10cb54fc4b..3aa56e07eae 100644
--- a/client/i18n/locales/espanol/translations.json
+++ b/client/i18n/locales/espanol/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "Más formas de iniciar sesión",
"sign-in-with-google": "Iniciar sesión con Google",
"go-to-dcc-today": "Ir al desafío de hoy",
- "go-to-dcc-archive": "Ir al archivo de desafíos"
+ "go-to-dcc-archive": "Ir al archivo de desafíos",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Coding Challenge Díario",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "Inglés A2 para Desarrolladores",
"a2-english-for-developers-cert": "Exámen de certificación (Beta) A2 de inglês para desarrolladores",
"b1-english-for-developers": "B1 Inglés para Desarrolladores",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/german/intro.json b/client/i18n/locales/german/intro.json
index ee6821c0579..74d59b5560e 100644
--- a/client/i18n/locales/german/intro.json
+++ b/client/i18n/locales/german/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Informationssicherheit",
"intro": [
@@ -3719,6 +5679,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4253,7 +6219,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4348,7 +6314,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4435,7 +6401,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4477,7 +6443,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4495,7 +6461,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4506,7 +6472,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4541,7 +6507,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5102,6 +7068,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7955,7 +9925,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/german/translations.json b/client/i18n/locales/german/translations.json
index 5c69628da89..b680cdb4705 100644
--- a/client/i18n/locales/german/translations.json
+++ b/client/i18n/locales/german/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "More ways to sign in",
"sign-in-with-google": "Sign in with Google",
"go-to-dcc-today": "Go to Today's Challenge",
- "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "A2 English for Developers",
"a2-english-for-developers-cert": "A2 English for Developers Certification (Beta)",
"b1-english-for-developers": "B1 English for Developers",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/italian/intro.json b/client/i18n/locales/italian/intro.json
index a5256e17db3..fe2358edc15 100644
--- a/client/i18n/locales/italian/intro.json
+++ b/client/i18n/locales/italian/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Sicurezza dell'Informazione",
"intro": [
@@ -3719,6 +5679,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4253,7 +6219,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4348,7 +6314,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4435,7 +6401,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4477,7 +6443,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4495,7 +6461,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4506,7 +6472,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4541,7 +6507,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5102,6 +7068,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7955,7 +9925,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/italian/translations.json b/client/i18n/locales/italian/translations.json
index 7e3e0ffac31..1fb73f4ae49 100644
--- a/client/i18n/locales/italian/translations.json
+++ b/client/i18n/locales/italian/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "More ways to sign in",
"sign-in-with-google": "Sign in with Google",
"go-to-dcc-today": "Go to Today's Challenge",
- "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "A2 English for Developers",
"a2-english-for-developers-cert": "A2 English for Developers Certification (Beta)",
"b1-english-for-developers": "B1 English for Developers",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/japanese/intro.json b/client/i18n/locales/japanese/intro.json
index cf6241e7b4f..e15395fbbcf 100644
--- a/client/i18n/locales/japanese/intro.json
+++ b/client/i18n/locales/japanese/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "情報セキュリティ",
"intro": [
@@ -3719,6 +5679,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4253,7 +6219,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4348,7 +6314,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4435,7 +6401,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4477,7 +6443,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4495,7 +6461,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4506,7 +6472,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4541,7 +6507,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5102,6 +7068,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7955,7 +9925,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/japanese/translations.json b/client/i18n/locales/japanese/translations.json
index 5c8083e3067..23a2d431d67 100644
--- a/client/i18n/locales/japanese/translations.json
+++ b/client/i18n/locales/japanese/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "More ways to sign in",
"sign-in-with-google": "Sign in with Google",
"go-to-dcc-today": "Go to Today's Challenge",
- "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "開発者のための A2 レベル英語",
"a2-english-for-developers-cert": "A2 English for Developers Certification (Beta)",
"b1-english-for-developers": "開発者のための B1 レベル英語",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/korean/intro.json b/client/i18n/locales/korean/intro.json
index 7b1d587d76b..01b1ce111a1 100644
--- a/client/i18n/locales/korean/intro.json
+++ b/client/i18n/locales/korean/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Information Security",
"intro": [
@@ -3719,6 +5679,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4253,7 +6219,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4348,7 +6314,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4435,7 +6401,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4477,7 +6443,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4495,7 +6461,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4506,7 +6472,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4541,7 +6507,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5102,6 +7068,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7955,7 +9925,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/korean/translations.json b/client/i18n/locales/korean/translations.json
index 8edf5766952..7045e2602c7 100644
--- a/client/i18n/locales/korean/translations.json
+++ b/client/i18n/locales/korean/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "More ways to sign in",
"sign-in-with-google": "Sign in with Google",
"go-to-dcc-today": "Go to Today's Challenge",
- "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "A2 English for Developers",
"a2-english-for-developers-cert": "A2 English for Developers Certification (Beta)",
"b1-english-for-developers": "B1 English for Developers",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/portuguese/intro.json b/client/i18n/locales/portuguese/intro.json
index 4ea6625b97c..28f61d4b9bb 100644
--- a/client/i18n/locales/portuguese/intro.json
+++ b/client/i18n/locales/portuguese/intro.json
@@ -952,52 +952,52 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Configuração e Primeiros Passos",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
- "Nesses vídeos, o instrutor popular de programação Mike Dane irá te apresentar ao Python e mostrar como configurar o ambiente local."
+ "In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Primitivos Principais: Variáveis, Tipos, E/S Básica",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
- "Nesses vídeos, você aprenderá sobre variáveis, tipos de dados, strings, números e como obter entrada do usuário."
+ "In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Pequenos Projetos: Usando o Básico",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
- "Nesses vídeos, você praticará o que aprendeu até agora construindo uma calculadora básica e um jogo de mad libs."
+ "In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Estruturas de Dados: Listas e Tuplas",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
- "Nesses vídeos, você aprenderá sobre listas, tuplas e operações comuns."
+ "In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
- "title": "Fluxo de Controle e Funções",
+ "control-flow-and-functions-in-python": {
+ "title": "Control Flow and Functions",
"intro": [
- "Nesses vídeos, você aprenderá a controlar o fluxo dos programas com instruções if. Você também aprenderá a escrever código reutilizável com funções."
+ "In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
- "title": "Dicionários e Laços",
+ "dictionaries-and-loops": {
+ "title": "Dictionaries and Loops",
"intro": [
- "Nesses vídeos, você aprenderá a trabalhar com dicionários e vários laços, incluindo while e for."
+ "In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Python Prático: Erros, Arquivos e Módulos",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
- "Nesses vídeos, você aprenderá a tratar erros de forma elegante, ler e escrever em arquivos, e organizar seu código com módulos e pacotes externos."
+ "In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Programação Orientada a Objetos",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
- "Nesses vídeos, você aprenderá sobre programação orientada a objetos criando classes e objetos. Você praticará essas habilidades construindo um aplicativo de questionário de múltipla escolha."
+ "In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
}
}
@@ -1014,62 +1014,64 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
- "title": "Algoritmos de Busca",
+ "searching-algorithms": {
+ "title": "Searching Algorithms",
"intro": [
- "Nesses vídeos, você aprenderá o que é um algoritmo e como trabalhar com os algoritmos de busca binária e busca linear."
+ "In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
- "title": "Complexidade de Tempo",
+ "time-complexity": {
+ "title": "Time Complexity",
"intro": [
- "Nesses vídeos, você aprenderá sobre complexidade de tempo e como ela funciona ao medir a eficiência de algoritmos."
+ "In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
- "title": "Algoritmos em Código",
+ "algorithms-in-code": {
+ "title": "Algorithms in Code",
"intro": [
- "Nesses vídeos, você escreverá código Python para os algoritmos de busca linear e binária."
+ "In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
- "title": "Recursão e Complexidade de Espaço",
+ "recursion-and-space-complexity": {
+ "title": "Recursion and Space Complexity",
"intro": [
- "Nesses vídeos, você aprenderá sobre recursão e complexidade de espaço para algoritmos."
+ "In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
- "title": "Introdução a Arrays",
+ "introduction-to-arrays": {
+ "title": "Introduction to Arrays",
"intro": [
- "Nesses vídeos, você aprenderá como trabalhar com arrays. Você aprenderá sobre diferentes operações incluindo inserir, excluir e buscar."
+ "In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
- "title": "Introdução a Listas Ligadas",
+ "introduction-to-linked-lists": {
+ "title": "Introduction to Linked Lists",
"intro": [
- "Nesses vídeos, você aprenderá sobre listas ligadas. Você aprenderá como adicionar nós a uma lista, assim como remover e buscar em uma lista."
+ "In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "O Algoritmo Merge Sort",
- "intro": ["Nesses vídeos, você aprenderá sobre o algoritmo merge sort."]
- },
- "intro-dsa-sorting-linked-lists": {
- "title": "Ordenando uma Lista Ligada",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
- "Nesses vídeos, você aprenderá mais sobre como ordenar listas ligadas."
+ "In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-algorithms": {
- "title": "Algoritmos de Ordenação",
+ "sorting-a-linked-list": {
+ "title": "Sorting a Linked List",
"intro": [
- "Nesses vídeos, você aprenderá sobre algoritmos comuns de ordenação incluindo selection sort e quicksort."
+ "In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-searching-algorithms": {
- "title": "Buscando Nomes usando Algoritmos de Ordenação e Busca",
+ "sorting-algorithms": {
+ "title": "Sorting Algorithms",
"intro": [
- "Nesses vídeos, você praticará buscar nomes usando os algoritmos de busca binária e linear e comparar os tempos de execução entre eles."
+ "In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
+ ]
+ },
+ "searching-names-using-sorting-and-searching-algorithms": {
+ "title": "Searching Names using Sorting and Searching Algorithms",
+ "intro": [
+ "In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
]
}
}
@@ -1439,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Segurança da informação",
"intro": [
@@ -3731,6 +5693,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Compreendendo Grafos e Árvores",
"intro": [
@@ -4275,7 +6243,7 @@
"lecture-introduction-to-python": {
"title": "Introdução ao Python",
"intro": [
- "Nestas aulas, você aprenderá o que é Python e como configurar seu ambiente de desenvolvimento."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4370,7 +6338,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Trabalhando com Laços e Sequências",
"intro": [
- "Aprenda sobre Trabalhar com Laços e Sequências nestas lições."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4459,7 +6427,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes e Objetos",
- "intro": ["Aprenda sobre Classes e Objetos nestas lições."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Crie um Inventário de Instrumentos Musicais",
@@ -4501,7 +6469,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Compreendendo a Programação Orientada a Objetos e a Encapsulação",
"intro": [
- "Aprenda sobre Compreender Programação Orientada a Objetos e Encapsulamento nestas lições."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4519,7 +6487,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Compreendendo Herança e Polimorfismo",
"intro": [
- "Aprenda sobre Compreender Herança e Polimorfismo nestas lições."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4530,7 +6498,7 @@
},
"lecture-understanding-abstraction": {
"title": "Compreendendo a Abstração",
- "intro": ["Aprenda sobre a Compreensão da Abstração nessas lições."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Criar uma calculadora de descontos",
@@ -4565,7 +6533,7 @@
"lecture-working-with-common-data-structures": {
"title": "Trabalhando com Estruturas de Dados Comuns",
"intro": [
- "Aprenda sobre Trabalhar com Estruturas de Dados Comuns nessas lições."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5138,6 +7106,10 @@
"Aprenda sobre scripts do npm, publicando pacotes no registro do npm e trabalhando com os módulos CommonJS e ES. Essas lições cobrem ferramentas essenciais de desenvolvimento de Node.js e os sistemas de módulos."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -8055,10 +10027,10 @@
"title": "Full-Stack Open",
"intro": ["Uma boa introdução será adicionada aqui."],
"blocks": {
- "cat-blog-page": {
- "title": "Crie uma Página de Blog de Gatos",
+ "workshop-blog-page": {
+ "title": "Build a Cat Blog Page",
"intro": [
- "Neste workshop, você criará uma página de blog apenas em HTML usando elementos semânticos, incluindo os elementos main, nav, article e footer."
+ "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
]
}
},
diff --git a/client/i18n/locales/portuguese/translations.json b/client/i18n/locales/portuguese/translations.json
index 35befcb548c..00ac2f5f88f 100644
--- a/client/i18n/locales/portuguese/translations.json
+++ b/client/i18n/locales/portuguese/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "Mais maneiras de fazer login",
"sign-in-with-google": "Faça login com o Google",
"go-to-dcc-today": "Vá para o desafio diário",
- "go-to-dcc-archive": "Vá para o arquivo do desafio de código diário"
+ "go-to-dcc-archive": "Vá para o arquivo do desafio de código diário",
+ "outline": "Resumo"
},
"daily-coding-challenges": {
"title": "Desafios de código diário",
@@ -518,7 +519,7 @@
"ms-link": "Link da Microsoft",
"submit-and-go": "Enviar e ir para o meu próximo desafio",
"congratulations": "Parabéns, o código passou. Envie o código para continuar.",
- "congratulations-code-passes": "Congratulations. Your code passes.",
+ "congratulations-code-passes": "Parabéns. Seu código passou.",
"i-completed": "Já completei este desafio",
"example-code": "Exemplo de código",
"test-output": "O resultado do seu código vai aparecer aqui",
@@ -556,7 +557,7 @@
"contact-support-mistake": "Se você acha que houve um erro, entre em contato conosco pelo e-mail donors@freecodecamp.org",
"editor-tabs": {
"code": "Código",
- "tests": "Tests:",
+ "tests": "Testes:",
"restart": "Reiniciar",
"restart-step": "Reiniciar etapa",
"console": "Console",
@@ -1276,9 +1277,10 @@
"foundational-c-sharp-with-microsoft-cert": "Certificação de Fundamentos de C# com a Microsoft",
"learn-python-for-beginners": "Aprenda Python para iniciantes",
"introduction-to-algorithms-and-data-structures": "Introdução a Algoritmos e Estruturas de Dados",
- "learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
- "introduction-to-precalculus": "Introduction to Precalculus",
- "learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-rag-mcp-fundamentals": "Aprenda os Fundamentos de RAG e MCP",
+ "introduction-to-precalculus": "Introdução ao Pré-cálculo",
+ "learn-prompting-fundamentals": "Aprenda os Fundamentos de Prompting",
+ "learn-oop-with-python": "Aprenda POO com Python",
"a2-english-for-developers": "A2 Inglês para Desenvolvedores",
"a2-english-for-developers-cert": "Certificação de Inglês A2 para Desenvolvedores (Beta)",
"b1-english-for-developers": "B1 Inglês para Desenvolvedores",
@@ -1315,12 +1317,42 @@
"information-security-and-quality-assurance-cert": "Certificação de segurança da informação e garantia da qualidade edição antiga",
"full-stack": "Full Stack edição antiga",
"full-stack-cert": "Certificação Full Stack edição antiga",
- "introduction-to-bash": "Introduction to Bash",
- "introduction-to-sql-and-postgresql": "Introduction to SQL and PostgreSQL",
- "learn-bash-scripting": "Learn Bash Scripting",
- "learn-sql-and-bash": "Learn SQL and Bash",
- "introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-bash": "Introdução ao Bash",
+ "introduction-to-sql-and-postgresql": "Introdução ao SQL e PostgreSQL",
+ "learn-bash-scripting": "Aprenda Scripts Bash",
+ "learn-sql-and-bash": "Aprenda SQL e Bash",
+ "introduction-to-nano": "Introdução ao Nano",
+ "introduction-to-git-and-github": "Introdução ao Git e GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introdução a Variáveis e Strings em JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introdução a Booleanos e Números em JavaScript",
+ "introduction-functions-in-javascript": "Introdução a Funções em JavaScript",
+ "introduction-to-arrays-in-javascript": "Introdução a Arrays em JavaScript",
+ "introduction-to-objects-in-javascript": "Introdução a Objetos em JavaScript",
+ "introduction-to-loops-in-javascript": "Introdução a Laços em JavaScript",
+ "javascript-fundamentals-review": "Revisão dos Fundamentos do JavaScript",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introdução a Funções de Ordem Superior e Callbacks em JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Aprenda Manipulação do DOM e Eventos com JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introdução ao JavaScript e Acessibilidade",
+ "learn-javascript-debugging": "Aprenda Depuração em JavaScript",
+ "learn-basic-regex-with-javascript": "Aprenda Expressões Regulares Básicas com JavaScript",
+ "introduction-to-dates-in-javascript": "Introdução a Datas em JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Aprenda Eventos de Áudio e Vídeo com JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introdução a Mapas e Conjuntos em JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Aprenda localStorage e Operações CRUD com JavaScript",
+ "introduction-to-javascript-classes": "Introdução às Classes em JavaScript",
+ "learn-recursion-with-javascript": "Aprenda Recursão com JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introdução à Programação Funcional com JavaScript",
+ "introduction-to-asynchronous-javascript": "Introdução ao JavaScript Assíncrono",
+ "introduction-to-python-basics": "Introdução aos Conceitos Básicos de Python",
+ "learn-python-loops-and-sequences": "Aprenda Laços e Sequências em Python",
+ "learn-python-dictionaries-and-sets": "Aprenda Dicionários e Conjuntos em Python",
+ "learn-error-handling-in-python": "Aprenda Tratamento de Erros em Python",
+ "learn-python-classes-and-objects": "Aprenda Classes e Objetos em Python",
+ "introduction-to-oop-in-python": "Introdução à POO em Python",
+ "introduction-to-linear-data-structures-in-python": "Introdução a Estruturas de Dados Lineares em Python",
+ "learn-algorithms-in-python": "Aprenda Algoritmos em Python",
+ "learn-graphs-and-trees-in-python": "Aprenda Grafos e Árvores em Python",
+ "learn-dynamic-programming-in-python": "Aprenda Programação Dinâmica em Python"
}
},
"certification-card": {
@@ -1474,11 +1506,11 @@
"computer-fundamentals": "Fundamentos de Computação",
"computer-science": "Ciência da Computação",
"math": "Math",
- "databases": "Databases",
+ "databases": "Bancos de dados",
"bash": "Bash",
"git": "Git",
- "editors": "Editors",
- "ai": "AI"
+ "editors": "Editores",
+ "ai": "IA"
}
}
}
diff --git a/client/i18n/locales/swahili/intro.json b/client/i18n/locales/swahili/intro.json
index 95a5c20f87d..e5efd22fcbb 100644
--- a/client/i18n/locales/swahili/intro.json
+++ b/client/i18n/locales/swahili/intro.json
@@ -952,50 +952,50 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Setup & First Steps",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
"In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Core Primitives: Variables, Types, Basic I/O",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
"In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Small Projects: Using Basics",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
"In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Data Structures: Lists and Tuples",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
"In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
+ "control-flow-and-functions-in-python": {
"title": "Control Flow and Functions",
"intro": [
"In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
+ "dictionaries-and-loops": {
"title": "Dictionaries and Loops",
"intro": [
"In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Practical Python: Errors, Files and Modules",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
"In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Object Oriented Programming",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
"In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
@@ -1014,61 +1014,61 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
+ "searching-algorithms": {
"title": "Searching Algorithms",
"intro": [
"In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
+ "time-complexity": {
"title": "Time Complexity",
"intro": [
"In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
+ "algorithms-in-code": {
"title": "Algorithms in Code",
"intro": [
"In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
+ "recursion-and-space-complexity": {
"title": "Recursion and Space Complexity",
"intro": [
"In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
+ "introduction-to-arrays": {
"title": "Introduction to Arrays",
"intro": [
"In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
+ "introduction-to-linked-lists": {
"title": "Introduction to Linked Lists",
"intro": [
"In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "The Merge Sort Algorithm",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
"In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-linked-lists": {
+ "sorting-a-linked-list": {
"title": "Sorting a Linked List",
"intro": [
"In these videos, you will learn more about how to sort linked lists."
]
},
- "intro-dsa-sorting-algorithms": {
+ "sorting-algorithms": {
"title": "Sorting Algorithms",
"intro": [
"In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
]
},
- "intro-dsa-sorting-searching-algorithms": {
+ "searching-names-using-sorting-and-searching-algorithms": {
"title": "Searching Names using Sorting and Searching Algorithms",
"intro": [
"In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
@@ -1441,6 +1441,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Information Security",
"intro": [
@@ -3719,6 +5679,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Understanding Graphs and Trees",
"intro": [
@@ -4253,7 +6219,7 @@
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
- "In these lessons, you will learn what Python is, how to set up your development environment."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4348,7 +6314,7 @@
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
- "Learn about Working with Loops and Sequences in these lessons."
+ "Learn about working with loops and sequences in these lessons."
]
},
"workshop-pin-extractor": {
@@ -4435,7 +6401,7 @@
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
- "intro": ["Learn about Classes and Objects in these lessons."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
@@ -4477,7 +6443,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
- "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4495,7 +6461,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
- "Learn about Understanding Inheritance and Polymorphism in these lessons."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4506,7 +6472,7 @@
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Build a Discount Calculator",
@@ -4541,7 +6507,7 @@
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
- "Learn about Working with Common Data Structures in these lessons."
+ "Learn about working with common data structures in these lessons."
]
},
"workshop-linked-list-class": {
@@ -5102,6 +7068,10 @@
"Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7955,7 +9925,7 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
+ "workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
diff --git a/client/i18n/locales/swahili/translations.json b/client/i18n/locales/swahili/translations.json
index c7ad6c20263..77f02838622 100644
--- a/client/i18n/locales/swahili/translations.json
+++ b/client/i18n/locales/swahili/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "More ways to sign in",
"sign-in-with-google": "Sign in with Google",
"go-to-dcc-today": "Go to Today's Challenge",
- "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Learn Prompting Fundamentals",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "A2 English for Developers",
"a2-english-for-developers-cert": "A2 English for Developers Certification (Beta)",
"b1-english-for-developers": "B1 English for Developers",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Learn Bash Scripting",
"learn-sql-and-bash": "Learn SQL and Bash",
"introduction-to-nano": "Introduction to Nano",
- "introduction-to-git-and-github": "Introduction to Git and GitHub"
+ "introduction-to-git-and-github": "Introduction to Git and GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {
diff --git a/client/i18n/locales/ukrainian/intro.json b/client/i18n/locales/ukrainian/intro.json
index 38bbbc6b3a0..8b9ac846e7d 100644
--- a/client/i18n/locales/ukrainian/intro.json
+++ b/client/i18n/locales/ukrainian/intro.json
@@ -942,52 +942,52 @@
],
"note": "",
"blocks": {
- "learn-python-setup-first-steps": {
- "title": "Налаштування та перші кроки",
+ "python-setup-first-steps": {
+ "title": "Python Setup & First Steps",
"intro": [
- "У цих відео популярний інструктор Майк Дейн познайомить вас із Python і покаже, як налаштувати локальне середовище."
+ "In these videos, popular programming instructor Mike Dane will introduce you to Python and show you how to setup your local environment."
]
},
- "learn-python-core-primitives": {
- "title": "Основні поняття: змінні, типи, операції введення/виведення",
+ "core-primitives-in-python": {
+ "title": "Core Primitives in Python",
"intro": [
- "У цих відео ви дізнаєтесь про змінні, типи даних, рядки, числа та отримання вхідних даних від користувача."
+ "In these videos, you will learn about variables, data types, strings, numbers, and getting input from the user."
]
},
- "learn-python-small-projects-basics": {
- "title": "Проєкти: використання базових знань",
+ "small-python-projects": {
+ "title": "Small Python Projects",
"intro": [
- "У цих відео ви попрактикуєте здобуті знання, створивши базовий калькулятор і гру «Mad Libs»."
+ "In these videos, you will practice what you have learned so far by building a basic calculator app and mad libs game."
]
},
- "learn-python-data-structures": {
- "title": "Структури даних: списки та кортежі",
+ "lists-and-tuples": {
+ "title": "Lists and Tuples",
"intro": [
- "У цих відео ви дізнаєтесь про списки і кортежі, а також поширені операції над ними."
+ "In these videos, you will learn about lists, tuples and common operations."
]
},
- "learn-python-control-flow-functions": {
- "title": "Керування потоком і функції",
+ "control-flow-and-functions-in-python": {
+ "title": "Control Flow and Functions",
"intro": [
- "У цих відео ви дізнаєтесь, як контролювати потік програм за допомогою інструкцій if. Ви також навчитесь писати код з функціями, який можна використовувати повторно."
+ "In these videos, you will learn how to control the flow of your programs with if statements. You will also learn how to write reusable code with functions."
]
},
- "learn-python-projects-loops": {
- "title": "Словники та цикли",
+ "dictionaries-and-loops": {
+ "title": "Dictionaries and Loops",
"intro": [
- "У цих відео ви навчитесь працювати зі словниками та різними циклами, включно з while і for."
+ "In these videos, you will learn how to work with dictionaries and various loops include the while and for loops."
]
},
- "learn-python-practical-errors-files": {
- "title": "Python на практиці: помилки, файли та модулі",
+ "error-handling-files-and-modules-in-python": {
+ "title": "Error Handling, Files, and Modules",
"intro": [
- "У цих відео ви навчитесь коректно обробляти помилки, читати й записувати файли, а також організовувати код за допомогою модулів і зовнішніх пакетів."
+ "In these videos, you will learn how to handle errors gracefully, read and write to files, and organize your code with modules and external packages."
]
},
- "learn-python-oop": {
- "title": "Об’єктноорієнтоване програмування",
+ "object-oriented-programming-with-python": {
+ "title": "Object-Oriented Programming with Python",
"intro": [
- "У цих відео ви вивчите об’єктноорієнтоване програмування, створюючи класи й об’єкти. Ви відпрацюєте навички, створивши застосунок із вікториною."
+ "In these videos, you will learn about object-oriented programming by creating classes and objects. You will practice these skills by building a multiple choice quiz application."
]
}
}
@@ -1004,60 +1004,64 @@
],
"note": "",
"blocks": {
- "intro-dsa-searching-algorithms": {
- "title": "Алгоритми пошуку",
+ "searching-algorithms": {
+ "title": "Searching Algorithms",
"intro": [
- "У цих відео ви дізнаєтесь про алгоритм, а також як працювати з алгоритмами бінарного і лінійного пошуку."
+ "In these videos, you will learn what an algorithm is and learn how to work with the binary search and linear search algorithms."
]
},
- "intro-dsa-time-complexity": {
- "title": "Часова складність",
+ "time-complexity": {
+ "title": "Time Complexity",
"intro": [
- "У цих відео ви дізнаєтесь про часову складність і як вона вимірює ефективність алгоритмів."
+ "In these videos, you will learn about time complexity and how it works with measuring efficiency of algorithms."
]
},
- "intro-dsa-algorithms-in-code": {
- "title": "Алгоритми в коді",
+ "algorithms-in-code": {
+ "title": "Algorithms in Code",
"intro": [
- "У цих відео ви напишете код на Python для алгоритмів лінійного і бінарного пошуку."
+ "In these videos, you will write Python code for the linear and binary search algorithms."
]
},
- "intro-dsa-recursion-and-space-complexity": {
- "title": "Рекурсія і просторова складність",
+ "recursion-and-space-complexity": {
+ "title": "Recursion and Space Complexity",
"intro": [
- "У цих відео ви дізнаєтесь про рекурсію і вплив просторової складності на алгоритми."
+ "In these videos, you will learn about recursion and space complexity for algorithms."
]
},
- "intro-dsa-arrays": {
- "title": "Вступ до масивів",
+ "introduction-to-arrays": {
+ "title": "Introduction to Arrays",
"intro": [
- "У цих відео ви навчитесь працювати з масивами. Ви дізнаєтесь про різні операції, серед яких вставка, видалення і пошук."
+ "In these videos, you will learn how to work with arrays. You will learn about different operations including insert, delete and search."
]
},
- "intro-dsa-linked-lists": {
- "title": "Вступ до зв’язаних списків",
+ "introduction-to-linked-lists": {
+ "title": "Introduction to Linked Lists",
"intro": [
- "У цих відео ви дізнаєтесь про зв’язані списки. Ви навчитесь додавати вузли, а також видаляти і шукати список."
+ "In these videos, you will learn about linked lists. You will learn how to add nodes to a list as well as remove and search a list."
]
},
- "intro-dsa-merge-sort": {
- "title": "Алгоритм сортування злиттям",
- "intro": ["У цих відео ви дізнаєтесь про алгоритм сортування злиттям."]
- },
- "intro-dsa-sorting-linked-lists": {
- "title": "Сортування зв’язаного списку",
- "intro": ["У цих відео ви дізнаєтесь, як відсортувати зв’язані списки."]
- },
- "intro-dsa-sorting-algorithms": {
- "title": "Алгоритми сортування",
+ "merge-sort-algorithm": {
+ "title": "Merge Sort Algorithm",
"intro": [
- "У цих відео ви дізнаєтесь про поширені алгоритми сортування, зокрема про сортування вибором і швидке сортування."
+ "In these videos, you will learn about the merge sort algorithm."
]
},
- "intro-dsa-sorting-searching-algorithms": {
- "title": "Пошук за допомогою алгоритмів сортування і пошуку",
+ "sorting-a-linked-list": {
+ "title": "Sorting a Linked List",
"intro": [
- "У цих відео ви будете шукати імена за допомогою алгоритмів сортування і пошуку, а також порівняєте час їх виконання."
+ "In these videos, you will learn more about how to sort linked lists."
+ ]
+ },
+ "sorting-algorithms": {
+ "title": "Sorting Algorithms",
+ "intro": [
+ "In these videos, you will learn about common sorting algorithms including selection sort and quicksort."
+ ]
+ },
+ "searching-names-using-sorting-and-searching-algorithms": {
+ "title": "Searching Names using Sorting and Searching Algorithms",
+ "intro": [
+ "In these videos, you will practice searching for names using the binary and linear search algorithms and comparing the runtimes for them."
]
}
}
@@ -1425,6 +1429,1966 @@
}
}
},
+ "learn-oop-with-python": {
+ "title": "Learn OOP with Python",
+ "summary": [
+ "In this video course, you will learn about object-oriented programming using Python."
+ ],
+ "intro": [
+ "Object-Oriented Programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code to manipulate that data. This course introduces the key principles of OOP, including classes, objects, inheritance, and shows how to apply them in practice."
+ ],
+ "note": "",
+ "blocks": {
+ "oop-basics": {
+ "title": "OOP Basics",
+ "intro": [
+ "In these videos, learn the basics of OOP including how to create classes and work with constructors."
+ ]
+ },
+ "methods-and-inheritance": {
+ "title": "Methods and Inheritance",
+ "intro": [
+ "In these videos, learn about methods and inheritance in OOP."
+ ]
+ },
+ "advanced-oop-concepts": {
+ "title": "Advanced OOP Concepts",
+ "intro": [
+ "In these videos, learn about advanced OOP concepts including getters, setters and other important OOP principles."
+ ]
+ }
+ }
+ },
+ "introduction-to-python-basics": {
+ "title": "Introduction to Python Basics",
+ "summary": ["Learn the fundamentals of Python programming."],
+ "intro": [
+ "In this interactive course, you will learn the basic syntax, data types, and control structures of Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-python": {
+ "title": "Introduction to Python",
+ "intro": [
+ "In these lessons, you will learn what Python is and how to set up your development environment."
+ ]
+ },
+ "lecture-understanding-variables-and-data-types": {
+ "title": "Understanding Variables and Data Types",
+ "intro": [
+ "In these lessons, you will learn about variables and data types in Python."
+ ]
+ },
+ "workshop-report-card-printer": {
+ "title": "Build a Report Card Printer",
+ "intro": [
+ "In this workshop, you will build a report card printer to work with primitive data types in Python."
+ ]
+ },
+ "lecture-introduction-to-python-strings": {
+ "title": "Introduction to Strings",
+ "intro": ["In these lessons, you will learn about strings in Python."]
+ },
+ "workshop-employee-profile-generator": {
+ "title": "Build an Employee Profile Generator",
+ "intro": [
+ "In this workshop, you will practice the fundamentals of string manipulation in Python by building a tool that generates formatted employee badges and analyzes employee codes."
+ ]
+ },
+ "lecture-numbers-and-mathematical-operations": {
+ "title": "Numbers and Mathematical Operations",
+ "intro": [
+ "In these lessons, you will learn about numbers and mathematical operations in Python."
+ ]
+ },
+ "workshop-bill-splitter": {
+ "title": "Build a Bill Splitter",
+ "intro": [
+ "In this workshop, you will build a bill splitter to practice working with numbers and mathematical operations in Python."
+ ]
+ },
+ "lecture-booleans-and-conditionals": {
+ "title": "Booleans and Conditionals",
+ "intro": [
+ "In these lessons, you will learn about booleans and conditionals in Python."
+ ]
+ },
+ "workshop-movie-ticket-booking-calculator": {
+ "title": "Build a Movie Ticket Booking Calculator",
+ "intro": [
+ "In this workshop, you will practice how to use booleans and conditional statements in Python by building a movie ticket booking calculator."
+ ]
+ },
+ "lab-travel-weather-planner": {
+ "title": "Build a Travel Weather Planner",
+ "intro": [
+ "In this lab, you will build a travel weather planner using conditionals."
+ ]
+ },
+ "lecture-understanding-functions-and-scope": {
+ "title": "Understanding Functions and Scope",
+ "intro": [
+ "In these lessons, you will learn about functions and scope in Python."
+ ]
+ },
+ "lab-discount-calculator": {
+ "title": "Build an Apply Discount Function",
+ "intro": [
+ "In this lab, you will practice basic Python by building a calculator to apply a discount to a price."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Build a Caesar Cipher",
+ "intro": [
+ "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Build an RPG Character",
+ "intro": [
+ "In this lab you will practice basic Python by building an RPG character."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Python Basics Review",
+ "intro": [
+ "Before you're quizzed on Python basics, you should review what you've learned about it.",
+ "In this review page, you will review working with strings, functions, comparison operators and more."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Python Basics Quiz",
+ "intro": [
+ "Test what you've learned about Python basics with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-loops-and-sequences": {
+ "title": "Learn Python Loops and Sequences",
+ "summary": ["Learn how to work with loops and sequences in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops and sequences in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops-and-sequences": {
+ "title": "Working with Loops and Sequences",
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Build a Pin Extractor",
+ "intro": [
+ "In this workshop you will build a function to extract secret pins hidden in poems."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Build a Number Pattern Generator",
+ "intro": ["In this lab you will build a number pattern generator."]
+ },
+ "review-loops-and-sequences": {
+ "title": "Loops and Sequences Review",
+ "intro": [
+ "Before you're quizzed on loops and sequences, you should review what you've learned about them.",
+ "Open up this page to review concepts around loops, lists, tuples and some of their common methods."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Loops and Sequences Quiz",
+ "intro": [
+ "Test what you've learned about loops and sequences in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-dictionaries-and-sets": {
+ "title": "Learn Python Dictionaries and Sets",
+ "summary": ["Learn how to work with dictionaries and sets in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dictionaries and sets in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Working with Dictionaries and Sets",
+ "intro": [
+ "Learn about working with dictionaries and sets in these lessons."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Working with Modules",
+ "intro": ["Learn about working with modules in these lessons."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Build a Medical Data Validator",
+ "intro": [
+ "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Build a User Configuration Manager",
+ "intro": [
+ "In this lab, you will practice working with dictionaries in Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Review",
+ "intro": [
+ "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
+ "Open up this page to review concepts around dictionaries, sets, and how to import modules."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Dictionaries and Sets Quiz",
+ "intro": [
+ "Test what you've learned about dictionaries and sets in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-error-handling-in-python": {
+ "title": "Learn Error Handling in Python",
+ "summary": ["Learn how to handle errors and exceptions in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to handle errors and exceptions in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-error-handling": {
+ "title": "Understanding Error Handling",
+ "intro": [
+ "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Debug an ISBN Validator",
+ "intro": [
+ "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Error Handling Review",
+ "intro": [
+ "Before you're quizzed on error handling, you should review what you've learned about it."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Error Handling Quiz",
+ "intro": [
+ "Test what you've learned about Error Handling in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-python-classes-and-objects": {
+ "title": "Learn Python Classes and Objects",
+ "summary": ["Learn how to work with classes and objects in Python."],
+ "intro": [
+ "In this interactive course, you will learn how to work with classes and objects in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-classes-and-objects": {
+ "title": "Classes and Objects",
+ "intro": ["Learn about classes and objects in these lessons."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Build a Musical Instrument Inventory",
+ "intro": [
+ "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
+ ]
+ },
+ "lab-planet-class": {
+ "title": "Build a Planet Class",
+ "intro": [
+ "In this lab you will create a class that represents a planet."
+ ]
+ },
+ "workshop-email-simulator": {
+ "title": "Build an Email Simulator",
+ "intro": [
+ "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Build a Budget App",
+ "intro": [
+ "In this lab you will build a budget app and practice creating a class and methods for that class."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Classes and Objects Review",
+ "intro": [
+ "Before you're quizzed on classes and objects, you should review what you've learned about them.",
+ "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Classes and Objects Quiz",
+ "intro": [
+ "Test what you've learned about classes and objects in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-oop-in-python": {
+ "title": "Introduction to OOP in Python",
+ "summary": [
+ "Learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "intro": [
+ "In this interactive course, you will learn the basics of Object-Oriented Programming (OOP) in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-object-oriented-programming-and-encapsulation": {
+ "title": "Understanding Object Oriented Programming and Encapsulation",
+ "intro": [
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
+ ]
+ },
+ "workshop-salary-tracker": {
+ "title": "Build a Salary Tracker",
+ "intro": [
+ "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
+ ]
+ },
+ "lab-game-character-stats": {
+ "title": "Build a Game Character Stats Tracker",
+ "intro": [
+ "In this lab, you will build a game character with different stats using object-oriented programming."
+ ]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Understanding Inheritance and Polymorphism",
+ "intro": [
+ "Learn about understanding inheritance and polymorphism in these lessons."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Build a Media Catalogue",
+ "intro": [
+ "In this workshop, you will create a media catalogue application using object-oriented programming principles."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Understanding Abstraction",
+ "intro": ["Learn about understanding abstraction in these lessons."]
+ },
+ "workshop-discount-calculator": {
+ "title": "Build a Discount Calculator",
+ "intro": [
+ "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic."
+ ]
+ },
+ "lab-player-interface": {
+ "title": "Build a Player Interface",
+ "intro": [
+ "In this lab, you'll use the abc module to build a player interface."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Build a Polygon Area Calculator",
+ "intro": [
+ "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
+ ]
+ },
+ "review-object-oriented-programming": {
+ "title": "Object Oriented Programming Review",
+ "intro": [
+ "Before you're quizzed on object oriented programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Object Oriented Programming Quiz",
+ "intro": [
+ "Test what you've learned about object oriented programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-linear-data-structures-in-python": {
+ "title": "Introduction to Linear Data Structures in Python",
+ "summary": ["Learn the basics of linear data structures in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of linear data structures in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-common-data-structures": {
+ "title": "Working with Common Data Structures",
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Build a Linked List",
+ "intro": [
+ "In this workshop, you'll practice working with data structures by building a linked list."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Build a Hash Table",
+ "intro": [
+ "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
+ "In this lab, you will use your knowledge about data structures to build a hash table."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Data Structures Review",
+ "intro": [
+ "Before you're quizzed on data structures, you should review what you've learned about them.",
+ "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Data Structures Quiz",
+ "intro": [
+ "Test what you've learned about data structures in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-algorithms-in-python": {
+ "title": "Learn Algorithms in Python",
+ "summary": ["Learn the basics of algorithms in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of algorithms in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms",
+ "intro": [
+ "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
+ "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implement the Binary Search Algorithm",
+ "intro": [
+ "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
+ "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implement the Bisection Method",
+ "intro": [
+ "In this lab, you will implement the bisection method to find the square root of a number."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implement the Merge Sort Algorithm",
+ "intro": [
+ "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
+ "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implement the Quicksort Algorithm",
+ "intro": [
+ "In this lab you will implement the quicksort algorithm to sort a list of integers."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implement the Selection Sort Algorithm",
+ "intro": [
+ "In this lab you will implement the selection sort algorithm."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implement the Luhn Algorithm",
+ "intro": [
+ "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implement the Tower of Hanoi Algorithm",
+ "intro": [
+ "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Review",
+ "intro": [
+ "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test what you've learned about searching and sorting algorithms in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-graphs-and-trees-in-python": {
+ "title": "Learn Graphs and Trees in Python",
+ "summary": ["Learn the basics of graphs and trees in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of graphs and trees in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Understanding Graphs and Trees",
+ "intro": [
+ "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Implement the Shortest Path Algorithm",
+ "intro": [
+ "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph."
+ ]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Build an Adjacency List to Matrix Converter",
+ "intro": [
+ "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Implement the Breadth-First Search Algorithm",
+ "intro": [
+ "In this workshop, you will use the breadth-first search algorithm to generate all valid combinations of parentheses."
+ ]
+ },
+ "lab-depth-first-search": {
+ "title": "Implement the Depth-First Search Algorithm",
+ "intro": [
+ "In this lab, you will implement the Depth-First Search Algorithm."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "Implement the N-Queens Problem",
+ "intro": [
+ "In this lab, you will implement a solution for the N-Queens problem."
+ ]
+ },
+ "review-graphs-and-trees": {
+ "title": "Graphs and Trees Review",
+ "intro": [
+ "Before you're quizzed on graphs and trees, you should review what you've learned about them."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Graphs and Trees Quiz",
+ "intro": [
+ "Test what you've learned about graphs and trees in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dynamic-programming-in-python": {
+ "title": "Learn Dynamic Programming in Python",
+ "summary": ["Learn the basics of dynamic programming in Python."],
+ "intro": [
+ "In this interactive course, you will learn the basics of dynamic programming in Python."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-dynamic-programming": {
+ "title": "Understanding Dynamic Programming",
+ "intro": [
+ "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Build an Nth Fibonacci Number Calculator",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Dynamic Programming Review",
+ "intro": [
+ "Before you're quizzed on dynamic programming, you should review what you've learned about it."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Dynamic Programming Quiz",
+ "intro": [
+ "Test what you've learned about dynamic programming in Python with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-variables-and-strings-in-javascript": {
+ "title": "Introduction to Variables and Strings in JavaScript",
+ "summary": ["Learn the basics of variables and strings in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about variables and strings, which are fundamental concepts in JavaScript programming."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript": {
+ "title": "Introduction to JavaScript",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
+ ]
+ },
+ "lecture-introduction-to-strings": {
+ "title": "Introduction to Strings",
+ "intro": [
+ "In these lessons, you will learn how to work with strings and string concatenation."
+ ]
+ },
+ "lecture-understanding-code-clarity": {
+ "title": "Understanding Code Clarity",
+ "intro": [
+ "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Build a Greeting Bot",
+ "intro": [
+ "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
+ "You will learn about variables, let, const, console.log and basic string usage."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Build a JavaScript Trivia Bot",
+ "intro": [
+ "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Build a Sentence Maker",
+ "intro": [
+ "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Working with Data Types",
+ "intro": [
+ "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Review",
+ "intro": [
+ "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
+ "Open up this page to review variables, data types, logging and commenting."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "JavaScript Variables and Data Types Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript variables and data types with this quiz."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Working with Strings in JavaScript",
+ "intro": [
+ "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Build a Teacher Chatbot",
+ "intro": [
+ "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
+ "You will learn how to work with template literals, and the indexOf method."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Working with String Character Methods",
+ "intro": [
+ "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Working with String Search and Slice Methods",
+ "intro": [
+ "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ ]
+ },
+ "workshop-string-inspector": {
+ "title": "Build a String Inspector",
+ "intro": [
+ "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Working with String Formatting Methods",
+ "intro": [
+ "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods."
+ ]
+ },
+ "workshop-string-formatter": {
+ "title": "Build a String Formatter",
+ "intro": [
+ "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Working with String Modification Methods",
+ "intro": [
+ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method."
+ ]
+ },
+ "workshop-string-transformer": {
+ "title": "Build a String Transformer",
+ "intro": [
+ "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "JavaScript Strings Review",
+ "intro": [
+ "Before you are quizzed on working with JavaScript strings, you first need to review.",
+ "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "JavaScript Strings Quiz",
+ "intro": ["Test your knowledge of JavaScript strings with this quiz."]
+ }
+ }
+ },
+ "introduction-to-booleans-and-numbers-in-javascript": {
+ "title": "Introduction to Booleans and Numbers in JavaScript",
+ "summary": ["Learn the basics of booleans and numbers in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with booleans and numbers in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Working with Numbers and Arithmetic Operators",
+ "intro": [
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ ]
+ },
+ "lab-debug-type-coercion-errors": {
+ "title": "Debug Type Coercion Errors in a Buggy App",
+ "intro": [
+ "In this lab, you will be working with a buggy app that contains several type coercion errors.",
+ "Your task is to identify and fix these errors to ensure the app functions correctly."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Working with Operator Behavior",
+ "intro": [
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ ]
+ },
+ "lab-debug-increment-and-decrement-operator-errors": {
+ "title": "Debug Increment and Decrement Operator Errors in a Buggy App",
+ "intro": [
+ "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.",
+ "Your task is to identify and fix the errors so that the app works as intended."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Working with Comparison and Boolean Operators",
+ "intro": [
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ ]
+ },
+ "workshop-logic-checker-app": {
+ "title": "Build a Logic Checker App",
+ "intro": [
+ "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Working with Unary and Bitwise Operators",
+ "intro": [
+ "In these lectures, you will learn about unary and bitwise operators."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Working with Conditional Logic and Math Methods",
+ "intro": [
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Build a Mathbot",
+ "intro": [
+ "In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Build a Fortune Teller",
+ "intro": [
+ "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
+ "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Working with Numbers and Common Number Methods",
+ "intro": [
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "JavaScript Math Review",
+ "intro": [
+ "Before you're quizzed on working with the Math object, you should review what you've learned.",
+ "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "JavaScript Math Quiz",
+ "intro": [
+ "Test your knowledge of the JavaScript Math object with this quiz."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Understanding Comparisons and Conditionals",
+ "intro": [
+ "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Review",
+ "intro": [
+ "Before you're quizzed on working with conditionals, you should review what you've learned about them.",
+ "Open up this page to review how to work with switch statements, other types of conditionals and more."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "JavaScript Comparisons and Conditionals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-functions-in-javascript": {
+ "title": "Introduction to Functions in JavaScript",
+ "summary": ["Learn the basics of functions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with functions in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-functions": {
+ "title": "Working with Functions",
+ "intro": [
+ "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Build a Calculator",
+ "intro": [
+ "In this workshop, you will review your knowledge of functions by building a calculator."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Build a Boolean Check Function",
+ "intro": [
+ "In this lab, you'll implement a function that checks if a value is a boolean."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Build an Email Masker",
+ "intro": [
+ "In this lab, you'll build an email masker that will take an email address and obscure it.",
+ "You'll practice string slicing, concatenation, and using functions."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Build a Loan Qualification Checker",
+ "intro": [
+ "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
+ "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Build a Celsius to Fahrenheit Converter",
+ "intro": [
+ "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Build a Card Counting Assistant",
+ "intro": ["In this lab you will use JavaScript to count dealt cards."]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Build a Leap Year Calculator ",
+ "intro": [
+ "In this lab you'll use conditional statements and loops to determine if a year is a leap year."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implement the Truncate String Algorithm",
+ "intro": [
+ "In this lab, you will practice truncating a string at a certain length."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Build a Confirm the Ending Tool",
+ "intro": [
+ "In this lab, you will implement a function that checks if a given string ends with a specified target string."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "JavaScript Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
+ "Open up this page to review functions, arrow functions and scope."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "JavaScript Functions Quiz",
+ "intro": ["Test your knowledge of JavaScript functions with this quiz."]
+ }
+ }
+ },
+ "introduction-to-arrays-in-javascript": {
+ "title": "Introduction to Arrays in JavaScript",
+ "summary": ["Learn the basics of arrays in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with arrays in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-arrays": {
+ "title": "Working with Arrays",
+ "intro": [
+ "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Build a Shopping List",
+ "intro": [
+ "In this workshop, you will practice how to work with arrays by building a shopping list.",
+ "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Build a Lunch Picker Program",
+ "intro": [
+ "In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Build a Golf Score Translator",
+ "intro": [
+ "For this lab, you will use array methods to translate golf scores into their nickname."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Working with Common Array Methods",
+ "intro": [
+ "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "JavaScript Arrays Review",
+ "intro": [
+ "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
+ "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "JavaScript Arrays Quiz",
+ "intro": ["Test your knowledge of JavaScript arrays with this quiz."]
+ }
+ }
+ },
+ "introduction-to-objects-in-javascript": {
+ "title": "Introduction to Objects in JavaScript",
+ "summary": ["Learn the basics of objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introduction to JavaScript Objects and Their Properties",
+ "intro": [
+ "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Working with JSON",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Working with Optional Chaining and Object Destructuring",
+ "intro": [
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Build a Recipe Tracker",
+ "intro": [
+ "In this workshop, you will review working with JavaScript objects by building a recipe tracker."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Build a Quiz Game",
+ "intro": [
+ "In this lab, you'll build a quiz game using JavaScript arrays and objects.",
+ "You'll also practice using functions to randomly select a question and an answer from an array and compare them."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Build a Record Collection",
+ "intro": [
+ "In this lab you will build a function to manage a record collection."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "JavaScript Objects Review",
+ "intro": [
+ "Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
+ "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "JavaScript Objects Quiz",
+ "intro": ["Test your knowledge of JavaScript objects with this quiz."]
+ }
+ }
+ },
+ "introduction-to-loops-in-javascript": {
+ "title": "Introduction to Loops in JavaScript",
+ "summary": ["Learn the basics of loops in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with loops in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-loops": {
+ "title": "Working with Loops",
+ "intro": [
+ "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Build a Sentence Analyzer",
+ "intro": [
+ "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Build a Longest Word Finder App",
+ "intro": [
+ "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Build a Factorial Calculator ",
+ "intro": [
+ "In this lab, you'll build a factorial calculator.",
+ "You'll practice using loops and conditionals to calculate the factorial of a number."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implement the Mutations Algorithm",
+ "intro": [
+ "In this lab, you will practice iterating over two different strings to compare their characters."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implement the Chunky Monkey Algorithm",
+ "intro": [
+ "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Build a Profile Lookup",
+ "intro": [
+ "In this lab, you'll create a function that looks up profile information."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Build a String Repeating Function",
+ "intro": [
+ "In this lab, you will implement loops to repeat a string a specified number of times."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Build a Missing Letter Detector",
+ "intro": [
+ "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "JavaScript Loops Review",
+ "intro": [
+ "Before you're quizzed on the different JavaScript loops, you should review them.",
+ "Open up this page to review the for...of loop, while loop, break and continue statements and more."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "JavaScript Loops Quiz",
+ "intro": ["Test your knowledge of JavaScript loops with this quiz."]
+ }
+ }
+ },
+ "javascript-fundamentals-review": {
+ "title": "JavaScript Fundamentals Review",
+ "summary": ["Review the core concepts of JavaScript."],
+ "intro": [
+ "In this interactive course, you will practice core JavaScript fundamentals including loops, objects, arrays and more."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-types-and-objects": {
+ "title": "Working with Types and Objects",
+ "intro": [
+ "In these lectures you will learn about string objects, the toString() method, the Number constructor and more."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Working with Arrays, Variables, and Naming Practices",
+ "intro": [
+ "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Working with Code Quality and Execution Concepts",
+ "intro": [
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Build the Largest Number Finder",
+ "intro": [
+ "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Build a First Element Finder",
+ "intro": [
+ "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implement the Slice and Splice Algorithm",
+ "intro": [
+ "In this lab, you will practice merging an array with another."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Build a Pyramid Generator",
+ "intro": [
+ "In this lab you'll build a pyramid generator.",
+ "You'll take a number as input and generate a pyramid with that many levels using a loop."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Build a Gradebook App",
+ "intro": [
+ "For this lab, you'll create a gradebook app.",
+ "You'll practice conditionals to determine the student's grade based on their score."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "The var Keyword and Hoisting",
+ "intro": [
+ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Build a Title Case Converter",
+ "intro": [
+ "In this lab, you will build a function that converts a string to title case."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implement a Falsy Remover",
+ "intro": [
+ "In this lab, you will create a function that removes all falsy values from an array."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Build an Inventory Management Program",
+ "intro": [
+ "For this lab, you'll build an inventory management program using JavaScript.",
+ "You'll use JavaScript array of objects to manage the inventory."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Understanding Modules, Imports, and Exports",
+ "intro": [
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Working With the Arguments Object and Rest Parameters",
+ "intro": [
+ "In these lessons, you will learn how to work with the arguments object and rest parameter syntax."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implement a Unique Sorted Union",
+ "intro": [
+ "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Build a Password Generator App",
+ "intro": [
+ "In this lab, you'll build a password generator app based on the user's input."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Design a Sum All Numbers Algorithm",
+ "intro": [
+ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implement a DNA Pair Generator",
+ "intro": [
+ "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implement an HTML Entity Converter",
+ "intro": [
+ "In this lab, you will convert special characters in a string to their corresponding HTML entities."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Build an Odd Fibonacci Sum Calculator",
+ "intro": [
+ "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-element-skipper": {
+ "title": "Implement an Element Skipper",
+ "intro": [
+ "In this lab you will create a function that skips elements in an array based on a specified step value."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Review",
+ "intro": [
+ "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
+ "Open up this page to review concepts like closures, memory management, and more."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "JavaScript Fundamentals Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript fundamentals with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": {
+ "title": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "summary": [
+ "Learn the basics of higher-order functions and callbacks in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to work with higher-order functions and callbacks in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Working with Higher Order Functions and Callbacks",
+ "intro": [
+ "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Build a Library Manager",
+ "intro": [
+ "In this workshop, you will learn higher order array methods by building a library manager."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Build a Book Organizer",
+ "intro": [
+ "In this lab, you'll build a book organizer using higher order functions in JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implement a Sorted Index Finder",
+ "intro": [
+ "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Build a Symmetric Difference Function",
+ "intro": [
+ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implement a Value Remover Function",
+ "intro": [
+ "In this lab, you will create a function that removes all instances of a specified value from an array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implement a Matching Object Filter",
+ "intro": [
+ "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
+ ]
+ },
+ "lab-prime-number-sum-calculator": {
+ "title": "Build a Prime Number Sum Calculator",
+ "intro": [
+ "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implement a Range-Based LCM Calculator",
+ "intro": [
+ "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Create a Deep Flattening Tool",
+ "intro": [
+ "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Build an All-True Property Validator",
+ "intro": [
+ "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Review",
+ "intro": [
+ "Before you're quizzed on JavaScript higher order functions, you should review them.",
+ "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "JavaScript Higher Order Functions Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript higher order functions with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-dom-manipulation-and-events-with-javascript": {
+ "title": "Learn DOM Manipulation and Events with JavaScript",
+ "summary": [
+ "Learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to manipulate the DOM and work with events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Working with the DOM, Click Events, and Web APIs",
+ "intro": [
+ "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Build a Storytelling App",
+ "intro": [
+ "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Build an Emoji Reactor",
+ "intro": [
+ "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Build a Favorite Icon Toggler",
+ "intro": [
+ "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Understanding the Event Object and Event Delegation",
+ "intro": [
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Build a Music Instrument Filter",
+ "intro": [
+ "In this workshop, you will build a music instrument filter with JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Build a Real Time Counter",
+ "intro": [
+ "In this lab, you'll build a real-time character counter",
+ "You'll practice how to work with the input event when the user types in the input field."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Build a Lightbox Viewer",
+ "intro": [
+ "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
+ "You'll practice click events and toggling classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Build a Rock, Paper, Scissors Game",
+ "intro": [
+ "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Build a Set of Football Team Cards",
+ "intro": [
+ "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on the DOM, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "DOM Manipulation and Click Events with JavaScript Quiz",
+ "intro": [
+ "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-and-accessibility": {
+ "title": "Introduction to JavaScript and Accessibility",
+ "summary": ["Learn how to use JavaScript to enhance web accessibility."],
+ "intro": [
+ "In this interactive course, you will learn how to use JavaScript to enhance web accessibility."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Understanding aria-expanded, aria-live, and Common ARIA States",
+ "intro": [
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Build a Planets Tablist",
+ "intro": [
+ "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Build a Note Taking App",
+ "intro": [
+ "In this workshop, you are going to build an accessible note taking app.",
+ "This will provide you with the opportunity to practice working with aria-live attribute."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Build a Theme Switcher",
+ "intro": [
+ "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "JavaScript and Accessibility Review",
+ "intro": [
+ "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
+ "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "JavaScript and Accessibility Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript and accessibility best practices with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-javascript-debugging": {
+ "title": "Learn JavaScript Debugging",
+ "summary": ["Learn how to debug JavaScript code effectively."],
+ "intro": [
+ "In this interactive course, you will learn how to debug JavaScript code."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-debugging-techniques": {
+ "title": "Debugging Techniques",
+ "intro": [
+ "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Debug a Random Background Color Changer",
+ "intro": [
+ "In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Debugging JavaScript Review",
+ "intro": [
+ "Before you're quizzed on common debugging techniques, you should review what you've learned.",
+ "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Debugging JavaScript Quiz",
+ "intro": ["Test your knowledge of JavaScript debugging with this quiz."]
+ }
+ }
+ },
+ "learn-basic-regex-with-javascript": {
+ "title": "Learn Basic Regex with JavaScript",
+ "summary": ["Learn the basics of regular expressions in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn the fundamentals of regular expressions and how to use them in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-regular-expressions": {
+ "title": "Working with Regular Expressions",
+ "intro": [
+ "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Build a Spam Filter",
+ "intro": [
+ "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
+ "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Build a Palindrome Checker",
+ "intro": [
+ "For this lab, you'll build an application that checks whether a given word is a palindrome."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implement a Spinal Case Converter",
+ "intro": [
+ "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implement a Pig Latin Translator",
+ "intro": [
+ "In this lab, you'll implement a Pig Latin translator using JavaScript.",
+ "You'll practice string manipulation, conditional logic, and regular expressions."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Build a Smart Word Replacement Function",
+ "intro": [
+ "In this lab, you will use regex to create a function that performs a search and replace operation on a given string."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Build a Markdown to HTML Converter",
+ "intro": [
+ "For this lab, you'll build a Markdown to HTML converter using JavaScript.",
+ "You'll practice regular expressions, string manipulation, and more."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Review",
+ "intro": [
+ "Before you're quizzed on Regular Expressions, you should review what you've learned.",
+ "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "JavaScript Regular Expressions Quiz",
+ "intro": [
+ "Test your knowledge of JavaScript Regular Expressions with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-dates-in-javascript": {
+ "title": "Introduction to Dates in JavaScript",
+ "summary": ["Learn how to work with dates in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with dates in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-dates": {
+ "title": "Working with Dates",
+ "intro": [
+ "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Build a Date Conversion Program",
+ "intro": [
+ "In this lab, you'll build a program to convert a date from one format to another."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "JavaScript Dates Review",
+ "intro": [
+ "Before you're quizzed on working with dates, you should review what you've learned.",
+ "Open up this page to review the Date() object and common methods."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "JavaScript Dates Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Dates with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-audio-and-video-events-with-javascript": {
+ "title": "Learn Audio and Video Events with JavaScript",
+ "summary": ["Learn how to work with audio and video events in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn how to work with audio and video events in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-audio-and-video": {
+ "title": "Working with Audio and Video",
+ "intro": [
+ "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Build a Music Player",
+ "intro": [
+ "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
+ "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Build a Drum Machine",
+ "intro": [
+ "For this lab you will use the audio element to build a drum machine."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Review",
+ "intro": [
+ "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
+ "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "JavaScript Audio and Video Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript audio and video with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-maps-and-sets-in-javascript": {
+ "title": "Introduction to Maps and Sets in JavaScript",
+ "summary": ["Learn about the Map and Set objects in JavaScript."],
+ "intro": [
+ "In this interactive course, you will learn about the Map and Set objects in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-maps-and-sets": {
+ "title": "Working with Maps and Sets",
+ "intro": [
+ "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Build a Plant Nursery Catalog",
+ "intro": [
+ "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Build a Voting System",
+ "intro": [
+ "In this lab, you'll build a voting system using Maps and Sets.",
+ "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Review",
+ "intro": [
+ "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
+ "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "JavaScript Maps and Sets Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript Maps and Sets with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-localstorage-and-crud-operations-with-javascript": {
+ "title": "Learn localStorage and CRUD Operations with JavaScript",
+ "summary": [
+ "Learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn how to use localStorage and perform CRUD operations in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Working with Client-Side Storage and CRUD Operations",
+ "intro": [
+ "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexedDB, and much more."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Build a Todo App using Local Storage",
+ "intro": [
+ "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
+ "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Build a Bookmark Manager App",
+ "intro": [
+ "For this lab, you'll build a bookmark manager app.",
+ "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Review",
+ "intro": [
+ "Before you are quizzed on working with localStorage, you first need to review the concepts.",
+ "Open up this page to review the localStorage property, sessionStorage property and more."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Local Storage and CRUD Quiz",
+ "intro": [
+ "Test what you've learned about local storage and CRUD with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-javascript-classes": {
+ "title": "Introduction to JavaScript Classes",
+ "summary": ["Learn about classes in JavaScript and how to use them."],
+ "intro": [
+ "In this interactive course, you will learn about classes in JavaScript and how to use them."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Understanding How to Work with Classes in JavaScript",
+ "intro": [
+ "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Build a Shopping Cart",
+ "intro": [
+ "In this workshop you'll create a shopping cart using JavaScript classes.",
+ "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Build a Project Idea Board",
+ "intro": [
+ "In this lab, you'll build a project idea board using OOP in JavaScript.",
+ "You'll practice how to create classes, add methods to classes, and create instances of classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Build a Bank Account Management Program",
+ "intro": [
+ "In this lab, you'll build a simple transaction management system for a bank account."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "JavaScript Classes Review",
+ "intro": [
+ "Before you're quizzed on how to work with classes, you should review what you've learned about them.",
+ "Open up this page to review concepts including the this keyword, class inheritance and more."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "JavaScript Classes Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript classes with this quiz."
+ ]
+ }
+ }
+ },
+ "learn-recursion-with-javascript": {
+ "title": "Learn Recursion with JavaScript",
+ "summary": [
+ "Understand the concept of recursion and how to implement it in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you'll learn about recursion in JavaScript and how to use it to solve problems."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Understanding Recursion and the Call Stack",
+ "intro": [
+ "In this lecture, you will learn about recursion and the call stack."
+ ]
+ },
+ "workshop-countup": {
+ "title": "Build a Countup",
+ "intro": [
+ "In this workshop you will build a countup function that returns an array of numbers counting up from 1 to a given number."
+ ]
+ },
+ "lab-countdown": {
+ "title": "Build a Countdown",
+ "intro": [
+ "For this lab, you will build a countdown function that returns an array of numbers counting down from given number to 1."
+ ]
+ },
+ "lab-range-of-numbers": {
+ "title": "Build a Range of Numbers Generator",
+ "intro": [
+ "In this lab, you'll use recursion to generate an array of numbers within a specified range.",
+ "You'll practice recursive function calls, base cases, and building arrays through recursion."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Build a Decimal to Binary Converter",
+ "intro": [
+ "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
+ "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Build a Permutation Generator",
+ "intro": [
+ "For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
+ ]
+ },
+ "review-recursion": {
+ "title": "Recursion Review",
+ "intro": [
+ "Before you're quizzed on recursion, you should review what you've learned.",
+ "Open up this page to review what is recursion and what is it used for."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Recursion Quiz",
+ "intro": ["Test your knowledge of Recursion with this quiz."]
+ }
+ }
+ },
+ "introduction-to-functional-programming-with-javascript": {
+ "title": "Introduction to Functional Programming with JavaScript",
+ "summary": [
+ "Learn the fundamentals of functional programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about functional programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-functional-programming": {
+ "title": "Understanding Functional Programming",
+ "intro": [
+ "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Build a Recipe Ingredient Converter",
+ "intro": [
+ "In the previous lectures, you learned the core concepts behind functional programming and currying.",
+ "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Build an Optional Arguments Sum Function",
+ "intro": [
+ "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Build a Sorting Visualizer",
+ "intro": [
+ "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Review",
+ "intro": [
+ "Before you're quizzed on functional programming, you should review what you've learned.",
+ "Open up this page to review concepts on functional programming, currying and more."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "JavaScript Functional Programming Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript functional programming with this quiz."
+ ]
+ }
+ }
+ },
+ "introduction-to-asynchronous-javascript": {
+ "title": "Introduction to Asynchronous JavaScript",
+ "summary": [
+ "Learn the fundamentals of asynchronous programming in JavaScript."
+ ],
+ "intro": [
+ "In this interactive course, you will learn about asynchronous programming concepts and techniques in JavaScript."
+ ],
+ "note": "",
+ "blocks": {
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Understanding Asynchronous Programming",
+ "intro": [
+ "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Build an fCC Authors Page",
+ "intro": [
+ "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
+ "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Build an fCC Forum Leaderboard",
+ "intro": [
+ "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Build a Weather App",
+ "intro": [
+ "In this lab you'll build a Weather App using an API",
+ "You'll practice how to fetch data from the API, store and display it on your app."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Review",
+ "intro": [
+ "Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Asynchronous JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about asynchronous JavaScript with this quiz."
+ ]
+ }
+ }
+ },
"information-security": {
"title": "Інформаційна безпека",
"intro": [
@@ -3711,6 +5675,12 @@
"Before you are quizzed on Algorithms, you should review what you've learned about searching and sorting algorithms."
]
},
+ "quiz-searching-and-sorting-algorithms-js": {
+ "title": "Searching and Sorting Algorithms Quiz",
+ "intro": [
+ "Test your knowledge of searching and sorting algorithms with this quiz."
+ ]
+ },
"lecture-understanding-graphs-and-trees-js": {
"title": "Знайомство з графами та деревами",
"intro": [
@@ -4243,7 +6213,7 @@
"lecture-introduction-to-python": {
"title": "Вступ до Python",
"intro": [
- "У цих лекціях ви дізнаєтесь, що таке Python і як налаштувати середовище розробки."
+ "In these lessons, you will learn what Python is and how to set up your development environment."
]
},
"lecture-understanding-variables-and-data-types": {
@@ -4335,7 +6305,9 @@
},
"lecture-working-with-loops-and-sequences": {
"title": "Робота з циклами та послідовностями",
- "intro": ["У цих лекціях ви дізнаєтесь про цикли та послідовності."]
+ "intro": [
+ "Learn about working with loops and sequences in these lessons."
+ ]
},
"workshop-pin-extractor": {
"title": "Створіть витягач PIN-кодів",
@@ -4419,7 +6391,7 @@
},
"lecture-classes-and-objects": {
"title": "Класи та об’єкти",
- "intro": ["У цих лекціях ви дізнаєтесь про класи та об’єкти."]
+ "intro": ["Learn about classes and objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Створіть інвентар музичних інструментів",
@@ -4459,7 +6431,7 @@
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Знайомство з об’єктноорієнтованим програмуванням та інкапсуляцією",
"intro": [
- "У цих лекціях ви дізнаєтесь про об’єктноорієнтоване програмування та інкапсуляцію."
+ "Learn about understanding object oriented programming and encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
@@ -4477,7 +6449,7 @@
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Знайомство з успадкуванням та поліморфізмом",
"intro": [
- "У цих лекціях ви дізнаєтесь про успадкування та поліморфізм."
+ "Learn about understanding inheritance and polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
@@ -4488,7 +6460,7 @@
},
"lecture-understanding-abstraction": {
"title": "Знайомство з абстракцією",
- "intro": ["У цих лекціях ви дізнаєтесь про абстракцію."]
+ "intro": ["Learn about understanding abstraction in these lessons."]
},
"workshop-discount-calculator": {
"title": "Створіть калькулятор знижок",
@@ -4522,7 +6494,9 @@
},
"lecture-working-with-common-data-structures": {
"title": "Робота з поширеними структурами даних",
- "intro": ["У цих лекціях ви дізнаєтесь про поширені структури даних."]
+ "intro": [
+ "Learn about working with common data structures in these lessons."
+ ]
},
"workshop-linked-list-class": {
"title": "Створіть зв’язаний список",
@@ -5078,6 +7052,10 @@
"Дізнайтесь про скрипти npm, публікацію пакетів у реєстрі npm та роботу з модулями CommonJS і ES. Ці лекції охоплюють основні інструменти розробки та системи модулів Node.js."
]
},
+ "review-npm": {
+ "title": "NPM Review",
+ "intro": ["Review npm concepts to prepare for the upcoming quiz."]
+ },
"quiz-npm": {
"title": "NPM Quiz",
"intro": ["Test what you have learned about npm in this quiz."]
@@ -7921,10 +9899,10 @@
"title": "Full-Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
- "cat-blog-page": {
- "title": "Створіть сторінку блогу про котів",
+ "workshop-blog-page": {
+ "title": "Build a Cat Blog Page",
"intro": [
- "У цьому практичному занятті ви створите сторінку блогу лише на HTML, використовуючи семантичні елементи, серед яких main, nav, article та footer."
+ "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
]
}
},
diff --git a/client/i18n/locales/ukrainian/translations.json b/client/i18n/locales/ukrainian/translations.json
index ad3834336d8..ac50ca494bd 100644
--- a/client/i18n/locales/ukrainian/translations.json
+++ b/client/i18n/locales/ukrainian/translations.json
@@ -121,7 +121,8 @@
"more-ways-to-sign-in": "Більше способів увійти",
"sign-in-with-google": "Увійти через Google",
"go-to-dcc-today": "Перейти до сьогоднішнього завдання",
- "go-to-dcc-archive": "Перейти до архіву завдань з програмування"
+ "go-to-dcc-archive": "Перейти до архіву завдань з програмування",
+ "outline": "Outline"
},
"daily-coding-challenges": {
"title": "Щоденні завдання з програмування",
@@ -1279,6 +1280,7 @@
"learn-rag-mcp-fundamentals": "Learn RAG and MCP Fundamentals",
"introduction-to-precalculus": "Introduction to Precalculus",
"learn-prompting-fundamentals": "Знайомство з промптами",
+ "learn-oop-with-python": "Learn OOP with Python",
"a2-english-for-developers": "Англійська мова A2 для розробників",
"a2-english-for-developers-cert": "Сертифікація «Англійська мова A2 для розробників (бета)»",
"b1-english-for-developers": "Англійська мова B1 для розробників",
@@ -1320,7 +1322,37 @@
"learn-bash-scripting": "Вивчення скриптів Bash",
"learn-sql-and-bash": "Вивчення SQL та Bash",
"introduction-to-nano": "Вступ до Nano",
- "introduction-to-git-and-github": "Вступ до Git та GitHub"
+ "introduction-to-git-and-github": "Вступ до Git та GitHub",
+ "introduction-to-variables-and-strings-in-javascript": "Introduction to Variables and Strings in JavaScript",
+ "introduction-to-booleans-and-numbers-in-javascript": "Introduction to Booleans and Numbers in JavaScript",
+ "introduction-functions-in-javascript": "Introduction to Functions in JavaScript",
+ "introduction-to-arrays-in-javascript": "Introduction to Arrays in JavaScript",
+ "introduction-to-objects-in-javascript": "Introduction to Objects in JavaScript",
+ "introduction-to-loops-in-javascript": "Introduction to Loops in JavaScript",
+ "javascript-fundamentals-review": "JavaScript Fundamentals Review",
+ "introduction-to-higher-order-functions-and-callbacks-in-javascript": "Introduction to Higher-Order Functions and Callbacks in JavaScript",
+ "learn-dom-manipulation-and-events-with-javascript": "Learn DOM Manipulation and Events with JavaScript",
+ "introduction-to-javascript-and-accessibility": "Introduction to JavaScript and Accessibility",
+ "learn-javascript-debugging": "Learn JavaScript Debugging",
+ "learn-basic-regex-with-javascript": "Learn Basic Regex with JavaScript",
+ "introduction-to-dates-in-javascript": "Introduction to Dates in JavaScript",
+ "learn-audio-and-video-events-with-javascript": "Learn Audio and Video Events with JavaScript",
+ "introduction-to-maps-and-sets-in-javascript": "Introduction to Maps and Sets in JavaScript",
+ "learn-localstorage-and-crud-operations-with-javascript": "Learn localStorage and CRUD Operations with JavaScript",
+ "introduction-to-javascript-classes": "Introduction to JavaScript Classes",
+ "learn-recursion-with-javascript": "Learn Recursion with JavaScript",
+ "introduction-to-functional-programming-with-javascript": "Introduction to Functional Programming with JavaScript",
+ "introduction-to-asynchronous-javascript": "Introduction to Asynchronous JavaScript",
+ "introduction-to-python-basics": "Introduction to Python Basics",
+ "learn-python-loops-and-sequences": "Learn Python Loops and Sequences",
+ "learn-python-dictionaries-and-sets": "Learn Python Dictionaries and Sets",
+ "learn-error-handling-in-python": "Learn Error Handling in Python",
+ "learn-python-classes-and-objects": "Learn Python Classes and Objects",
+ "introduction-to-oop-in-python": "Introduction to OOP in Python",
+ "introduction-to-linear-data-structures-in-python": "Introduction to Linear Data Structures in Python",
+ "learn-algorithms-in-python": "Learn Algorithms in Python",
+ "learn-graphs-and-trees-in-python": "Learn Graphs and Trees in Python",
+ "learn-dynamic-programming-in-python": "Learn Dynamic Programming in Python"
}
},
"certification-card": {