diff --git a/client/i18n/locales/chinese-traditional/intro.json b/client/i18n/locales/chinese-traditional/intro.json
index 3df5380b53d..21df0bec6c0 100644
--- a/client/i18n/locales/chinese-traditional/intro.json
+++ b/client/i18n/locales/chinese-traditional/intro.json
@@ -1804,6 +1804,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1854,6 +1855,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2119,6 +2126,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2598,6 +2611,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4575,9 +4595,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4770,7 +4792,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4978,6 +5002,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -4990,7 +6091,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5004,6 +6107,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5042,6 +6153,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/chinese-traditional/translations.json b/client/i18n/locales/chinese-traditional/translations.json
index 2ab37ac4067..9e6fc0ac161 100644
--- a/client/i18n/locales/chinese-traditional/translations.json
+++ b/client/i18n/locales/chinese-traditional/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "分享到 Threads",
"play-scene": "按播放鍵",
"download-latest-version": "下載最新版本",
- "start": "開始",
- "go-to-today": "訪問今天的挑戰",
- "go-to-today-long": "訪問今天的編程挑戰",
- "go-to-archive": "訪問存檔",
- "go-to-archive-long": "訪問每日編程挑戰存檔"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "每日編程挑戰",
@@ -214,6 +211,7 @@
"next-heading": "試試我們的測試版課程:",
"upcoming-heading": "即將推出的課程:",
"catalog-heading": "探索我們的目錄:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "常見問題:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/chinese/intro.json b/client/i18n/locales/chinese/intro.json
index 18c3dc08711..8f456b3bb5a 100644
--- a/client/i18n/locales/chinese/intro.json
+++ b/client/i18n/locales/chinese/intro.json
@@ -1804,6 +1804,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1854,6 +1855,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2119,6 +2126,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2598,6 +2611,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4575,9 +4595,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4770,7 +4792,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4978,6 +5002,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -4990,7 +6091,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5004,6 +6107,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5042,6 +6153,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json
index b8eb30eab40..245cbdda9c4 100644
--- a/client/i18n/locales/chinese/translations.json
+++ b/client/i18n/locales/chinese/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "分享到 Threads",
"play-scene": "按播放键",
"download-latest-version": "下载最新版本",
- "start": "开始",
- "go-to-today": "访问今天的挑战",
- "go-to-today-long": "访问今天的编程挑战",
- "go-to-archive": "访问存档",
- "go-to-archive-long": "访问每日编程挑战存档"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "每日编程挑战",
@@ -214,6 +211,7 @@
"next-heading": "试试我们的测试版课程:",
"upcoming-heading": "即将推出的课程:",
"catalog-heading": "探索我们的目录:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "常见问题:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/espanol/intro.json b/client/i18n/locales/espanol/intro.json
index 7a2cc72b244..cc298438410 100644
--- a/client/i18n/locales/espanol/intro.json
+++ b/client/i18n/locales/espanol/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json
index eff62318b82..da66e9740eb 100644
--- a/client/i18n/locales/espanol/translations.json
+++ b/client/i18n/locales/espanol/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Share on Threads",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "Try our beta curriculum:",
"upcoming-heading": "Próximo plan de estudio:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Preguntas frecuentes:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/german/intro.json b/client/i18n/locales/german/intro.json
index ec9b7d14c51..990226e41e7 100644
--- a/client/i18n/locales/german/intro.json
+++ b/client/i18n/locales/german/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/german/translations.json b/client/i18n/locales/german/translations.json
index 11b102e515e..3bce7d4c6a9 100644
--- a/client/i18n/locales/german/translations.json
+++ b/client/i18n/locales/german/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Share on Threads",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "Try our beta curriculum:",
"upcoming-heading": "Upcoming curriculum:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Frequently asked questions:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/italian/intro.json b/client/i18n/locales/italian/intro.json
index 006ce769d77..3d59e59acc6 100644
--- a/client/i18n/locales/italian/intro.json
+++ b/client/i18n/locales/italian/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/italian/translations.json b/client/i18n/locales/italian/translations.json
index 24874a0e037..cf309d4b665 100644
--- a/client/i18n/locales/italian/translations.json
+++ b/client/i18n/locales/italian/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Share on Threads",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "Try our beta curriculum:",
"upcoming-heading": "Upcoming curriculum:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Domande frequenti:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/japanese/intro.json b/client/i18n/locales/japanese/intro.json
index a3d29ffb243..eeb404b670f 100644
--- a/client/i18n/locales/japanese/intro.json
+++ b/client/i18n/locales/japanese/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/japanese/translations.json b/client/i18n/locales/japanese/translations.json
index da4e1f32284..8afde2643a7 100644
--- a/client/i18n/locales/japanese/translations.json
+++ b/client/i18n/locales/japanese/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Threads でシェア",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "ベータ版カリキュラムを試す:",
"upcoming-heading": "公開予定カリキュラム:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "よくある質問:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/korean/intro.json b/client/i18n/locales/korean/intro.json
index 70d028714ec..9311c160999 100644
--- a/client/i18n/locales/korean/intro.json
+++ b/client/i18n/locales/korean/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/korean/translations.json b/client/i18n/locales/korean/translations.json
index 2c4a5dfbaa5..7d11816fc46 100644
--- a/client/i18n/locales/korean/translations.json
+++ b/client/i18n/locales/korean/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Share on Threads",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "Try our beta curriculum:",
"upcoming-heading": "Upcoming curriculum:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Frequently asked questions:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/portuguese/intro.json b/client/i18n/locales/portuguese/intro.json
index 4fb71d41bf2..7c27f3c31b2 100644
--- a/client/i18n/locales/portuguese/intro.json
+++ b/client/i18n/locales/portuguese/intro.json
@@ -1452,9 +1452,9 @@
]
},
"learn-how-to-discuss-roles-and-responsibilities": {
- "title": "Learn How to Discuss Roles and Responsibilities",
+ "title": "Aprenda a Discutir Funções e Responsabilidades",
"intro": [
- "In this course, you'll discuss people's roles and responsibilities in a company and out of it. You'll discover how to ask about these roles and responsibilities and how to share information about you related to the topic."
+ "Neste curso, você discutirá os papéis e responsabilidades das pessoas em uma empresa e fora dela. Você descobrirá como perguntar sobre essas funções e responsabilidades e como compartilhar informações sobre você relacionadas ao tópico."
]
},
"learn-how-to-have-a-conversation-about-preferences-and-motivations": {
@@ -1574,156 +1574,154 @@
}
},
"b1-english-for-developers": {
- "title": "B1 English for Developers (Beta) Certification",
+ "title": "Certificação B1 de Inglês para Desenvolvedores (Beta)",
"intro": [
- "In this English for Developers Curriculum, you'll learn the essentials of English communication. This will follow the B1 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for developers.",
- "It will help you strengthen your foundational skills while introducing more complex grammar and usage. You'll learn how to describe places and things, share past experiences, and confidently use tenses like Present Perfect and Future. Practical communication strategies are included as well, such as managing conversations, expressing opinions, and building agreement or disagreement in discussions.",
- "You'll also focus on applying these skills in professional and technical settings. You'll practice vocabulary and phrases essential for developers, such as describing code, participating in stand-up meetings, and discussing tech trends. Advanced topics include conditionals, comparative structures, and conversation management, so you can prepare for real-world interactions in the tech industry.",
- "This entire B1-level curriculum includes 73 different dialogues. Each is designed to build your vocabulary and boost your confidence when speaking in a professional tech setting."
+ "Neste Currículo de Inglês para Desenvolvedores, você aprenderá o essencial da comunicação em inglês. Isso seguirá o nível B1 do Quadro Europeu Comum de Referência (CEFR). E nós nos concentramos no vocabulário que é particularmente útil para os desenvolvedores.",
+ "Isso ajudará você a fortalecer suas habilidades fundamentais enquanto introduz gramática e uso mais complexos. Você aprenderá como descrever lugares e coisas, compartilhar experiências passadas e usar com confiança tempos como Presente Perfeito e Futuro. Estratégias práticas de comunicação também estão incluídas, como gerenciar conversas, expressar opiniões e construir acordo ou discordância em discussões.",
+ "Você também se concentrará em aplicar essas habilidades em contextos profissionais e técnicos. Você praticará vocabulário e frases essenciais para desenvolvedores, como descrever código, participar de reuniões stand-up e discutir tendências tecnológicas. Tópicos avançados incluem condicionais, estruturas comparativas e gerenciamento de conversas, para que você possa se preparar para interações no mundo real na indústria de tecnologia.",
+ "Todo este currículo de nível B1 inclui 73 diálogos diferentes. Cada um é projetado para construir seu vocabulário e aumentar sua confiança ao falar em um ambiente profissional de tecnologia."
],
"blocks": {
"learn-how-to-describe-places-and-events": {
"title": "Aprenda a descrever locais e eventos",
"intro": [
- "This course will show you ways of talking about places and events conversationally."
+ "Este curso mostrará maneiras de falar sobre lugares e eventos de forma conversacional."
]
},
"learn-how-to-talk-about-past-experiences": {
"title": "Aprenda a falar sobre experiências passadas",
"intro": [
- "In this course, you will learn how to share experiences that you had in the past."
+ "Neste curso, você aprenderá a compartilhar experiências que teve no passado."
]
},
"learn-how-to-talk-about-past-activities": {
"title": "Aprenda a falar sobre atividades passadas",
- "intro": [
- "In this course, you will learn how talk about things that you did."
- ]
+ "intro": ["Neste curso, você aprenderá a falar sobre coisas que fez."]
},
"learn-present-perfect-while-talking-about-accessibility": {
"title": "Aprenda o Present Perfect ao falar sobre acessibilidade",
"intro": [
- "In this course, you will learn to use the Present Perfect structure and learn a bit more about accessibility."
+ "Neste curso, você aprenderá a usar a estrutura de Presente Perfeito e aprenderá um pouco mais sobre acessibilidade."
]
},
"learn-how-to-plan-future-events": {
"title": "Aprenda a planejar eventos futuros",
"intro": [
- "In this course, you will learn to use the different forms of the future to plan for upcoming events."
+ "Neste curso, você aprenderá a usar as diferentes formas de tempo futuro para planejar eventos futuros."
]
},
"learn-future-continuous-while-describing-actions": {
"title": "Aprenda o Future Continuous ao descrever ações",
"intro": [
- "In this course, you will learn to use the Future Continuous tense, and how to describe actions to be performed."
+ "Neste curso, você aprenderá a usar o tempo Future Continuous e como descrever ações a serem realizadas."
]
},
"learn-how-to-use-conditionals": {
"title": "Aprenda a usar condicionais",
"intro": [
- "In this course, you will learn to use the conditional sentences to describe hypothetical outcomes depending on the fact that certain conditions are met."
+ "Neste curso, você aprenderá a usar frases condicionais para descrever resultados hipotéticos dependendo do fato de certas condições serem atendidas."
]
},
"learn-how-to-share-feedback": {
"title": "Aprenda a compartilhar feedback",
"intro": [
- "In this course, you will see ways of telling other people how you feel about their work, highlighting both their strengths and points for improvement."
+ "Neste curso, você verá maneiras de dizer a outras pessoas como você se sente sobre o trabalho delas, destacando tanto seus pontos fortes quanto pontos de melhoria."
]
},
"learn-how-to-share-your-opinion": {
"title": "Aprenda como compartilhar suas opiniões",
"intro": [
- "This course will show you how to express your ideas and feeling towards topics in a discussion."
+ "Este curso irá mostrar como expressar suas ideias e sentimentos sobre tópicos em uma discussão."
]
},
"learn-how-to-express-agreement": {
"title": "Aprenda a expressar concordância",
"intro": [
- "In this course, you will learn to express agreement in different professional settings."
+ "Neste curso, você aprenderá a expressar concordância em diferentes ambientes profissionais."
]
},
"learn-how-to-express-disagreement": {
"title": "Aprenda a expressar discordância",
"intro": [
- "In this course, you will learn to express disagreement in different professional settings."
+ "Neste curso, você aprenderá a expressar discordância em diferentes ambientes profissionais."
]
},
"learn-how-to-express-concerns": {
"title": "Aprenda a expressar preocupações",
"intro": [
- "In this course, you will learn to inform other people that you are worried about things that might happen to your projects and tasks."
+ "Neste curso, você aprenderá a informar outras pessoas de que você está preocupado com coisas que podem acontecer aos seus projetos e tarefas."
]
},
"learn-how-to-express-decisions-based-on-comparisons": {
"title": "Aprenda a expressar decisões com base em comparações",
"intro": [
- "In this course, you will learn how to compare things like tools or companies using words like better, faster, and the best. You will also practice having friendly conversations to give opinions and make decisions"
+ "Neste curso, você aprenderá como comparar coisas como ferramentas ou empresas usando palavras como melhor, mais rápido e o melhor. Você também vai praticar conversas amigáveis para dar opiniões e tomar decisões."
]
},
"learn-how-to-use-modal-verbs": {
"title": "Aprenda a usar os verbos modais",
"intro": [
- "In this course, you will learn how to talk about rules, describe things that are necessary, and what could happen if they aren't. You'll also practice asking and answering questions clearly, and adding helpful details to your ideas."
+ "Neste curso, você aprenderá a falar sobre regras, descrever coisas que são necessárias e o que poderia acontecer se elas não forem seguidas. Você também praticará pedir e responder perguntas claramente, e adicionar detalhes úteis às suas ideias."
]
},
"learn-how-to-manage-a-conversation": {
"title": "Aprenda a gerenciar uma conversa",
"intro": [
- "In this course, you will learn how to manage conversations at work — like how to continue a talk after a break, change topics politely, or interrupt when needed. You'll also practice using useful expressions to keep the conversation clear, friendly, and organized."
+ "Neste curso, você aprenderá a gerenciar conversas no trabalho — como continuar uma conversa após uma pausa, mudar de assunto educadamente ou interromper quando necessário. Você também praticará usar expressões úteis para manter a conversa clara, amigável e organizada."
]
},
"learn-how-to-clarify-misunderstandings": {
"title": "Aprenda a esclarecer mal-entendidos",
"intro": [
- "In this course, you will learn how to ask for and give explanations when something is not clear, using polite questions and helpful responses. You'll also practice guessing the meaning of new words, describing problems, and clearing up misunderstandings in a friendly and professional way."
+ "Neste curso, você aprenderá a pedir e dar explicações quando algo não está claro, usando perguntas educadas e respostas úteis. Você também praticará adivinhar o significado de palavras novas, descrever problemas e esclarecer mal-entendidos de forma amigável e profissional."
]
},
"learn-about-speculation-and-requests": {
"title": "Aprenda sobre especulação e solicitações",
"intro": [
- "In this course, you will learn how to talk about things that should or could have happened in the past, and how to give suggestions or make polite requests. You'll also practice using expressions to guess what might have caused a problem and how to work together to solve it in a clear and respectful way."
+ "Neste curso, você aprenderá a falar sobre coisas que deveriam ou poderiam ter acontecido no passado e como dar sugestões ou fazer pedidos educados. Você também praticará usar expressões para adivinhar o que pode ter causado um problema e como trabalhar em conjunto para resolvê-lo de maneira clara e respeitosa."
]
},
"learn-about-adverbial-phrases": {
"title": "Aprenda sobre os expressões adverbiais",
"intro": [
- "In this course, you will learn how to use phrases that give more information about when, where, how often, or how much something happens. You'll also practice using these phrases to describe tasks, talk about plans, and explain results more clearly in your daily work."
+ "Neste curso, você aprenderá a usar frases que oferecem mais informações sobre quando, onde, com que frequência ou quanto algo acontece. Você também praticará usar essas frases para descrever tarefas, falar sobre planos e explicar resultados de maneira mais clara no seu trabalho diário."
]
},
"learn-how-to-use-adjectives-in-conversations": {
"title": "Aprenda a usar adjetivos em conversas",
"intro": [
- "In this course, you will learn how to use adjectives to describe things clearly, compare options, and highlight important details in professional conversations. You'll also practice how to make your ideas stronger and more persuasive."
+ "Neste curso, você aprenderá a usar adjetivos para descrever coisas claramente, comparar opções e destacar detalhes importantes em conversas profissionais. Você também praticará como tornar suas ideias mais fortes e persuasivas."
]
},
"learn-determiners-and-advanced-use-of-articles": {
"title": "Aprenda determinantes e o uso avançado de artigos",
"intro": [
- "In this course, you will learn how to use determiners to give clear information about quantity, choice, and distribution. You will also practice using articles in more advanced ways, especially in professional conversations about planning, tasks, and resources."
+ "Neste curso, você aprenderá a usar determinantes para dar informações claras sobre quantidade, escolha e distribuição. Você também praticará usar artigos de formas mais avançadas, especialmente em conversas profissionais sobre planejamento, tarefas e recursos."
]
},
"learn-how-to-use-reported-speech": {
"title": "Aprenda a usar o discurso indireto",
"intro": [
- "In this course, you will learn how to report what someone else said in a clear and natural way. You will also practice using the correct verb tenses and sentence structures to share feedback, explain situations, and talk about past events in professional conversations."
+ "Neste curso, você aprenderá a relatar o que alguém disse de maneira clara e natural. Você também praticará usar os tempos verbais corretos e estruturas de frases para compartilhar feedbacks, explicar situações e falar sobre eventos passados em conversas profissionais."
]
},
"learn-how-to-use-prepositions-according-to-context": {
"title": "Aprenda a usar pré-posições de acordo com o contexto",
"intro": [
- "In this course, you will learn how to use prepositions to describe time, place, and direction clearly in everyday work situations. You will also practice talking about schedules, giving directions, and explaining where people or things are located using natural and accurate language."
+ "Neste curso, você aprenderá a usar preposições para descrever tempo, lugar e direção claramente em situações cotidianas de trabalho. Você também praticará falar sobre cronogramas, dar direções e explicar onde pessoas ou coisas estão localizadas usando uma linguagem natural e precisa."
]
},
"learn-how-to-talk-about-numbers-with-a-coworker": {
"title": "Aprenda a falar sobre números com um colega de trabalho",
"intro": [
- "In this course, you will learn how to use numbers to talk about tasks, schedules, budgets, and resources in the workplace. You will practice using cardinal and ordinal numbers, percentages, and fractions to organize work, explain progress, and share inventory or financial updates clearly with your team."
+ "Neste curso, você aprenderá a usar números para falar sobre tarefas, cronogramas, orçamentos e recursos no local de trabalho. Você praticará usar números cardinais e ordinais, porcentagens e frações para organizar o trabalho, explicar o progresso e compartilhar atualizações de inventário ou financeiras claramente com sua equipe."
]
},
"learn-common-phrasal-verbs-and-idioms": {
"title": "Aprenda expressões verbais e expressões idiomáticas comuns",
"intro": [
- "In this course, you will learn how to use common phrasal verbs and idioms to sound more natural and confident at work. You will practice using expressions to give opinions, make suggestions, organize meetings, and talk about tasks in everyday professional conversations."
+ "Neste curso, você aprenderá a usar verbos frasais e expressões idiomáticas comuns para soar mais natural e confiante no trabalho. Você praticará usar expressões para dar opiniões, fazer sugestões, organizar reuniões e falar sobre tarefas em conversas profissionais do dia a dia."
]
}
}
@@ -1740,628 +1738,641 @@
"title": "Desafios do Rosetta Code",
"intro": [
"Estes são os desafios para o Rosetta Code.",
- "NOTE: These challenges support JavaScript only solutions."
+ "NOTA: Estes desafios suportam apenas soluções em JavaScript."
]
}
}
},
"full-stack-developer": {
- "title": "Certified Full Stack Developer Curriculum",
+ "title": "Currículo de Desenvolvedor Full Stack Certificado ",
"intro": [
- "This course provides a comprehensive pathway to becoming a Certified Full Stack Developer, covering all the essential technologies required to build modern, scalable web applications from start to finish.",
- "Through a blend of interactive lessons, coding exercises, and real-world projects, you will master both frontend and backend development. You'll work with HTML, CSS, and JavaScript to build responsive user interfaces, explore React and TypeScript for advanced web applications, and learn to manage data with relational databases - and on the backend, you'll use Git, Npm, Node.js, and Python to create powerful server-side solutions.",
- "By the end of this course, you'll have the practical skills and experience to confidently develop complete web applications, preparing you for a successful career as a Full Stack Developer.",
- "This certification will take you a substantial amount of time and effort to complete. If you start now, you may be ready to start the remaining material and final exam when we launch it in the coming months."
+ "Este curso oferece um caminho abrangente para se tornar um Desenvolvedor Full Stack Certificado, cobrindo todas as tecnologias essenciais necessárias para desenvolver aplicações web modernas e escaláveis do início ao fim.",
+ "Por meio de uma combinação de lições interativas, exercícios de codificação e projetos do mundo real, você dominará o desenvolvimento frontend e backend. Você trabalhará com HTML, CSS e JavaScript para criar interfaces de usuário responsivas, explorará React e TypeScript para aplicações web avançadas e aprenderá a gerenciar dados com bancos de dados relacionais - no backend, você usará Git, Npm, Node.js e Python para criar soluções poderosas do lado do servidor.",
+ "Ao final deste curso, você terá as habilidades práticas e a experiência para desenvolver aplicações web completas com confiança, preparando-se para uma carreira de sucesso como Desenvolvedor Full Stack.",
+ "Esta certificação vai exigir uma quantidade substancial de tempo e esforço para ser concluída. Se você começar agora, poderá estar pronto para iniciar o material restante e o exame final quando o lançarmos nos próximos meses."
],
"chapters": {
"html": "HTML",
"css": "CSS",
"javascript": "JavaScript",
"frontend-libraries": "Bibliotecas Front End",
- "relational-databases": "Relational Databases",
- "backend-javascript": "Backend JavaScript",
+ "relational-databases": "Bancos de Dados Relacionais",
+ "backend-javascript": "JavaScript Backend",
"python": "Python",
- "career": "Career"
+ "career": "Carreira"
},
"modules": {
"basic-html": "HTML Básico",
- "semantic-html": "Semantic HTML",
+ "semantic-html": "HTML Semântico",
"html-forms-and-tables": "Formulários e Tabelas",
"html-and-accessibility": "Acessibilidade",
- "review-html": "HTML Review",
- "exam-html": "HTML Exam",
- "computer-basics": "Computer Basics",
+ "review-html": "Revisão do HTML",
+ "exam-html": "Exame de HTML",
+ "computer-basics": "Fundamentos do Computador",
"basic-css": "CSS Básico",
"design-for-developers": "Design",
- "absolute-and-relative-units": "Absolute and Relative Units",
- "pseudo-classes-and-elements": "Pseudo Classes and Elements",
+ "absolute-and-relative-units": "Unidades Absolutas e Relativas",
+ "pseudo-classes-and-elements": "Pseudoclasses e Pseudoelementos",
"css-colors": "Cores",
- "styling-forms": "Styling Forms",
- "css-box-model": "The Box Model",
+ "styling-forms": "Estilização de Formulários",
+ "css-box-model": "O Modelo de Caixa",
"css-flexbox": "Flexbox",
"css-typography": "Tipografia",
"css-and-accessibility": "Acessibilidade",
- "attribute-selectors": "Attribute Selectors",
- "css-positioning": "Positioning",
- "responsive-design": "Responsive Design",
+ "attribute-selectors": "Seletores de Atributo",
+ "css-positioning": "Posicionamento",
+ "responsive-design": "Design Responsivo",
"css-variables": "Variáveis",
"css-grid": "Grid",
"css-animations": "Animações",
- "review-css": "CSS Review",
- "exam-css": "CSS Exam",
- "code-editors": "Code Editors",
- "javascript-variables-and-strings": "Variables and Strings",
- "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "review-css": "Revisão de CSS",
+ "exam-css": "Exame de CSS",
+ "code-editors": "Editores de Código",
+ "javascript-variables-and-strings": "Variáveis e Strings",
+ "javascript-booleans-and-numbers": "Booleanos e Números",
"javascript-functions": "Funções",
"javascript-arrays": "Arrays",
"javascript-objects": "Objetos",
- "javascript-loops": "Loops",
- "review-javascript-fundamentals": "JavaScript Fundamentals Review",
- "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
- "dom-manipulation-and-events": "DOM Manipulation and Events",
- "js-a11y": "JavaScript and Accessibility",
- "debugging-javascript": "Debugging",
- "basic-regex": "Basic Regex",
- "form-validation": "Form Validation",
- "javascript-dates": "Dates",
- "audio-and-video-events": "Audio and Video Events",
- "maps-and-sets": "Maps and Sets",
- "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "javascript-loops": "Laços de Repetição",
+ "review-javascript-fundamentals": "Revisão dos Fundamentos do JavaScript",
+ "higher-order-functions-and-callbacks": "Funções de Ordem Superior e Callbacks",
+ "dom-manipulation-and-events": "Manipulação do DOM e Eventos",
+ "js-a11y": "JavaScript e Acessibilidade",
+ "debugging-javascript": "Depuração",
+ "basic-regex": "Expressões Regulares Básicas",
+ "form-validation": "Validação de Formulários",
+ "javascript-dates": "Datas",
+ "audio-and-video-events": "Eventos de Áudio e Vídeo",
+ "maps-and-sets": "Maps e Sets",
+ "localstorage-and-crud-operations": "Armazenamento local e Operações CRUD",
"classes-and-the-this-keyword": "Classes",
- "recursion": "Recursion",
- "functional-programming": "Functional Programming",
- "asynchronous-javascript": "Asynchronous JavaScript",
- "review-javascript": "JavaScript Review",
- "exam-javascript": "JavaScript Exam",
- "react-fundamentals": "React Fundamentals",
- "react-state-hooks-and-routing": "React State, Hooks, and Routing",
- "performance": "Performance",
- "testing": "Testing",
- "css-libraries-and-frameworks": "CSS Libraries and Frameworks",
- "typescript-fundamentals": "TypeScript Fundamentals",
- "review-front-end-libraries": "Front End Libraries Review",
- "exam-front-end-libraries": "Front End Libraries Exam",
- "python-basics": "Python Basics",
- "python-loops-and-sequences": "Loops and Sequences",
- "python-dictionaries-and-sets": "Dictionaries and Sets",
- "python-error-handling": "Error Handling",
- "python-classes-and-objects": "Classes and Objects",
- "python-object-oriented-programming": "Object-Oriented Programming (OOP)",
- "python-linear-data-structures": "Linear Data Structures",
- "python-algorithms": "Algorithms",
- "python-graphs-and-trees": "Graphs and Trees",
- "python-dynamic-programming": "Dynamic Programming",
- "review-python": "Python Review",
- "exam-python": "Python Exam",
- "bash-fundamentals": "Bash Fundamentals",
- "relational-databases": "Relational Databases",
- "bash-scripting": "Bash Scripting",
- "sql-and-bash": "SQL and Bash",
+ "recursion": "Recursão",
+ "functional-programming": "Programação Funcional",
+ "asynchronous-javascript": "JavaScript Assíncrono",
+ "review-javascript": "Revisão de JavaScript",
+ "exam-javascript": "Exame de JavaScript",
+ "react-fundamentals": "Fundamentos do React",
+ "react-state-hooks-and-routing": "Estado, Hooks e Roteamento no React",
+ "performance": "Desempenho",
+ "testing": "Testes",
+ "css-libraries-and-frameworks": "Bibliotecas e Frameworks do CSS",
+ "data-visualization": "Visualização de dados e D3",
+ "typescript-fundamentals": "Fundamentos do TypeScript",
+ "review-front-end-libraries": "Revisão de Bibliotecas Front-End",
+ "exam-front-end-libraries": "Exame de Bibliotecas Front-End",
+ "python-basics": "Noções básicas de Python",
+ "python-loops-and-sequences": "Laços e Sequências",
+ "python-dictionaries-and-sets": "Dicionários e Conjuntos",
+ "python-error-handling": "Tratamento de Erros",
+ "python-classes-and-objects": "Classes e Objetos",
+ "python-object-oriented-programming": "Programação Orientada a Objetos (OOP)",
+ "python-linear-data-structures": "Estruturas de Dados Lineares",
+ "python-algorithms": "Algoritmos",
+ "python-graphs-and-trees": "Grafos e Árvores",
+ "python-dynamic-programming": "Programação Dinâmica",
+ "review-python": "Revisão de Python",
+ "exam-python": "Exame de Python",
+ "bash-fundamentals": "Fundamentos de Bash",
+ "relational-databases": "Bancos de Dados Relacionais",
+ "bash-scripting": "Scripts Bash",
+ "sql-and-bash": "SQL e Bash",
"git": "Git",
- "introduction-to-nodejs": "Introduction to Node.js",
- "nodejs-core-libraries": "Node.js Core Libraries",
+ "introduction-to-nodejs": "Introdução a Node.js",
+ "nodejs-core-libraries": "Bibliotecas Principais do Node.js",
"node-package-manager": "Node Package Manager",
- "http-and-the-web-standards-model": "HTTP and the Web Standards Model",
- "rest-api-and-web-services": "REST API and Web Services",
- "introduction-to-express": "Introduction to Express",
- "express-middleware": "Express Middleware",
- "error-handling-in-express": "Error Handling in Express",
+ "http-and-the-web-standards-model": "HTTP e o Modelo de Padrões Web",
+ "rest-api-and-web-services": "API REST e Serviços Web",
+ "introduction-to-express": "Introdução ao Express",
+ "express-middleware": "Middleware do Express",
+ "error-handling-in-express": "Tratamento de Erros no Express",
"websockets": "WebSockets",
- "node-and-sql": "Node and SQL",
- "security-and-privacy": "Security and Privacy",
- "authentication": "Authentication",
- "tooling-and-deployment": "Tooling and Deployment",
- "how-to-get-a-developer-job": "How to Get a Developer Job",
- "capstone-project": "Capstone Project",
- "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam"
+ "node-and-sql": "Node e SQL",
+ "security-and-privacy": "Segurança e Privacidade",
+ "authentication": "Autenticação",
+ "tooling-and-deployment": "Ferramentas e Implantação",
+ "how-to-get-a-developer-job": "Como Conseguir um Emprego de Desenvolvedor",
+ "capstone-project": "Projeto Final",
+ "certified-full-stack-developer-exam": "Exame de Desenvolvedor Full Stack Certificado"
},
"module-intros": {
"js-a11y": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will learn how to work with the aria-expanded, aria-live and aria-controls attributes inside of your HTML, CSS and JavaScript applications."
+ "Neste módulo, você aprenderá a trabalhar com os atributos aria-expanded, aria-live e aria-controls dentro de suas aplicações HTML, CSS e JavaScript."
]
},
"css-libraries-and-frameworks": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
+ "Neste módulo, você será apresentado a bibliotecas de CSS, frameworks e preprocessadores, incluindo Tailwind CSS, Bootstrap e Sass. Você criará vários componentes usando Tailwind CSS e testará seu conhecimento dessas ferramentas com um pequeno questionário."
+ ]
+ },
+ "data-visualization": {
+ "note": "Disponível no Inverno de 2025",
+ "intro": [
+ "Neste módulo, você conhecerá a visualização de dados e aprenderá a trabalhar com a biblioteca D3."
]
},
"typescript-fundamentals": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will be introduced to TypeScript, which is a superset of JavaScript that allows you to add static typing to your JavaScript code. You will build several workshops and labs that will give you practice in working with generics, type narrowing, TSX, and more. Then you will test your knowledge of TypeScript fundamentals with a short quiz."
+ "Neste módulo, você será apresentado ao TypeScript, que é um superset do JavaScript que permite adicionar tipagem estática ao seu código JavaScript. Você realizará vários workshops e laboratórios que darão a você prática trabalhando com genéricos, narrowing de tipos, TSX e mais. Depois, testará seu conhecimento em fundamentos do TypeScript com um pequeno questionário."
]
},
"python-basics": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will be introduced to Python, which is used in many fields like data science, machine learning, web development, scripting and automation, embedded systems, IoT, and more. You will build out a workshop and lab to practice Python basics and take a short quiz to test your knowledge."
+ "Neste módulo, você será apresentado ao Python, que é usado em muitos campos como ciência de dados, aprendizado de máquina, desenvolvimento web, script e automação, sistemas embarcados, IoT e mais. Você criará um workshop e lab para praticar os fundamentos do Python e fará um breve questionário para testar seu conhecimento."
]
},
"python-loops-and-sequences": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will learn how to work with lists, tuples, lambda functions, loops, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá a trabalhar com listas, tuplas, funções lambda, laços, e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-dictionaries-and-sets": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will be introduced to dictionaries, sets, and the Python standard library. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você será apresentado a dicionários, conjuntos e à biblioteca padrão do Python. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-error-handling": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will talk about common error messages, good debugging techniques, and exception handling. You will build a lab to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você falará sobre mensagens de erro comuns, boas técnicas de depuração e tratamento de exceções. Você construirá um laboratório para praticar estes conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-classes-and-objects": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá a trabalhar com classes, métodos, atributos e propriedades. Em seguida, você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-object-oriented-programming": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre conceitos de programação orientada a objetos, como encapsulamento, herança, polimorfismo e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-linear-data-structures": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre estruturas de dados, incluindo pilhas, filas, listas vinculadas, e mais. Você criará um workshop e laboratório para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-algorithms": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprender sobre algoritmos comuns, incluindo busca binária, merge sort, selection sort, e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-graphs-and-trees": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre gráficos na ciência da computação, bem como listas de adjacência, árvores, tries, e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento."
]
},
"python-dynamic-programming": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge."
+ "Neste módulo, você vai aprender sobre programação dinâmica e praticar estes conceitos construindo um laboratório de sequência de Fibonacci. Em seguida, você fará um curto questionário para testar seu conhecimento."
]
},
"bash-fundamentals": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about the command line and common Bash commands. Then you will practice your skills with a workshop and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre a linha de comando e comandos Bash comuns. Em seguida, você praticará suas habilidades com um workshop e fará um curto quiz para testar seu conhecimento."
]
},
"relational-databases": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn how to work with relational databases which store data as collections in tables. Some of the concepts you will learn about include inserting and viewing table data, primary and foreign keys in SQL, and more. Then you will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá como trabalhar com bancos de dados relacionais que armazenam dados como coleções em tabelas. Alguns dos conceitos que aprenderá incluem inserção e visualização de dados da tabela, chaves primárias e estrangeiras em SQL, e mais. Em seguida, você construirá um workshop e laboratório para praticar esses conceitos e testar seus conhecimentos em um breve questionário."
]
},
"bash-scripting": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about bash scripting and practice those skills by building five programs. Then you will be able to test your knowledge of these concepts by taking a short quiz."
+ "Neste módulo, você aprenderá sobre scripts Bash e praticará essas habilidades criando cinco programas. Então, você poderá testar seus conhecimentos destes conceitos fazendo um breve questionário."
]
},
"sql-and-bash": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn about normalization, SQL injection, and the N+1 problem. Then you will get to practice working with SQL and Bash by building several workshops and labs. Then you will be able to test your knowledge of these concepts by taking a short quiz."
+ "Neste módulo, você aprenderá sobre normalização, injeção de SQL e o problema N+1. Então, você irá praticar trabalhando com SQL e Bash construindo vários workshops e laboratórios. Depois, você poderá testar seus conhecimentos desses conceitos fazendo um breve questionário."
]
},
"git": {
- "note": "Coming Winter 2025",
+ "note": "Próximo Lançamento: Inverno de 2025",
"intro": [
- "In this module, you will learn how to use Git, Nano, and GitHub. Then you will get to practice working with Git by building several workshops and labs. You will be able to test your knowledge of these concepts by taking a short quiz."
+ "Neste módulo, você aprenderá a usar Git, Nano e GitHub. Em seguida, você praticará trabalhando com Git construindo vários workshops e laboratórios. Você poderá testar seus conhecimentos destes conceitos fazendo um breve questionário."
]
},
"introduction-to-nodejs": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will be introduced to Node.js, which is a JavaScript runtime environment that allows you to build backend applications using JavaScript. You will get to practice fundamental concepts by building a small workshop and test your knowledge with a short quiz."
+ "Neste módulo, você será apresentado ao Node.js, que é um ambiente de execução JavaScript que permite construir aplicações de backend usando JavaScript. Você vai praticar conceitos fundamentais criando um pequeno workshop e testará seu conhecimento com um breve questionário."
]
},
"nodejs-core-libraries": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz."
+ "Neste módulo, você aprenderá sobre bibliotecas Node.js core comuns, incluindo fs, os, path e mais. Em seguida, você praticará o que aprendeu através de workshops e laboratórios e testará seus conhecimentos através de um breve questionário."
]
},
"node-package-manager": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will be introduced to the Node Package Manager, which developers use to manage project dependencies and scripts. Then you will get to practice what you have learned through workshops and labs and test your knowledge with a short quiz."
+ "Neste módulo, você será apresentado ao Node Package Manager, que os desenvolvedores usam para gerenciar dependências de projetos e scripts. Então você praticará o que aprendeu através de workshops e laboratórios e testará seu conhecimento com um breve questionário."
]
},
"http-and-the-web-standards-model": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about HTTP (Hypertext Transfer Protocol) and other important concepts including the request-response model, common response codes, DNS, TCP/IP, and more. Then you will get to practice what you have learned through a build your own web server workshop and test your knowledge with a short quiz."
+ "Neste módulo, você aprenderá sobre HTTP (Protocolo de Transferência de Hipertexto) e outros conceitos importantes, incluindo o modelo de resposta a pedidos, códigos de resposta comuns, DNS, TCP/IP, e mais. Em seguida, você praticará o que aprendeu através de um workshop para construir seu próprio servidor web e testará seu conhecimento com um breve questionário."
]
},
"rest-api-and-web-services": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about the REST API (Representational State Transfer Application Programming Interface) and how microservices work. Then you will take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre a API REST (Interface de Programação de Aplicações de Transferência de Estado Representacional) e como funcionam os microserviços. Em seguida, você fará um breve questionário para testar seu conhecimento."
]
},
"introduction-to-express": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will be introduced to Express.js, which is a framework used to build RESTful APIs. Then you will practice your skills through workshops and labs and test your knowledge with a short quiz."
+ "Neste módulo, você será apresentado ao Express.js, que é um framework usado para construir APIs RESTful. Em seguida, você praticará suas habilidades através de workshops e laboratórios e testará seu conhecimento com um breve questionário."
]
},
"express-middleware": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about middleware in Express.js, which is used to handle requests and responses between the client and server. You will then practice your skills through a workshop and lab and test your knowledge with a short quiz."
+ "Neste módulo, você aprenderá sobre middleware no Express.js, que é usado para lidar com pedidos e respostas entre o cliente e o servidor. Em seguida, você praticará suas habilidades através de um workshop e laboratório e testará seu conhecimento com um breve questionário."
]
},
"error-handling-in-express": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about how error handling, debugging, and health checks work in Express.js. You will then practice what you have learned in a lab and test your knowledge with a short quiz."
+ "Neste módulo, você aprenderá sobre como manejo de erros, depuração e verificações de saúde funcionam no Express.js. Em seguida, você praticará o que aprendeu em um laboratório e testará seu conhecimento com um breve questionário."
]
},
"websockets": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will be introduced to websockets, which is a protocol used for real time communication with the client and server. You will then practice what you have learned in labs and workshops and test your knowledge with a short quiz."
+ "Neste módulo, você será apresentado aos WebSockets, que são um protocolo utilizado para comunicação em tempo real com o cliente e o servidor. Em seguida, você praticará o que aprendeu em laboratórios e workshops e testará seu conhecimento com um breve questionário."
]
},
"node-and-sql": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will practice building applications with Node and SQL. Then you will take a short quiz to test your knowledge."
+ "Neste módulo, você praticará criando aplicações com Node e SQL. Em seguida, você fará um breve questionário para testar seu conhecimento."
]
},
"security-and-privacy": {
- "note": "Coming Fall 2025",
+ "note": "Próximo Lançamento: Outono de 2025",
"intro": [
- "In this module, you will learn about the differences between security and privacy as well as other concepts including CSPs, Permissions-Policies, PII, working with CORS, and more. Then you will take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre as diferenças entre segurança e privacidade, assim como outros conceitos, incluindo CSPs, Políticas de Permissões, PII, trabalho com CORS, e mais. Em seguida, você fará um breve questionário para testar seu conhecimento."
]
},
"authentication": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about how authentication works in web applications along with other important concepts including JWTs, CSRFs, Passport, Helmet, cryptography and encryption, and more. You will then practice what you have learned in labs and workshops and test your knowledge with a short quiz."
+ "Neste módulo, você aprenderá sobre como funciona a autenticação em aplicações web junto com outros conceitos importantes, incluindo JWTs, CSRFs, Passport, Helmet, criptografia e encriptação, e mais. Em seguida, você praticará o que aprendeu em laboratórios e workshops e testará seu conhecimento com um breve questionário."
]
},
"tooling-and-deployment": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, you will learn about common tools used in the industry for deploying your full stack applications. Then you will take a short quiz to test your knowledge."
+ "Neste módulo, você aprenderá sobre ferramentas comuns usadas na indústria para implantar suas aplicações full stack. Em seguida, você fará um breve questionário para testar seu conhecimento."
]
},
"how-to-get-a-developer-job": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "In this module, Quincy Larson (Founder and teacher of freeCodeCamp) will talk about strategies you can use to prepare for getting a developer job. Quincy will cover key subjects including résumés, portfolios, researching the market, preparing for technical interviews, and more."
+ "Neste módulo, Quincy Larson (Fundador e professor do freeCodeCamp) falará sobre estratégias que você pode usar para se preparar para conseguir um emprego como desenvolvedor. Quincy abordará assuntos importantes como currículos, portfólios, pesquisa de mercado, preparação para entrevistas técnicas, e muito mais."
]
},
"capstone-project": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "This will be your opportunity to build out a full stack application encompassing what you have learned throughout this certification."
+ "Esta será sua oportunidade de criar uma aplicação full stack abrangendo o que você aprendeu ao longo desta certificação."
]
},
"certified-full-stack-developer-exam": {
- "note": "Coming Late 2026",
+ "note": "Próximo Lançamento: Final de 2026",
"intro": [
- "This will be a 90 question exam testing what you have learned throughout this certification."
+ "Este será um exame de 90 questões testando o que você aprendeu ao longo desta certificação."
]
}
},
"blocks": {
"workshop-curriculum-outline": {
- "title": "Build a Curriculum Outline",
+ "title": "Crie um Esquema de Currículo",
"intro": [
- "Welcome to freeCodeCamp!",
- "This workshop will serve as your introduction to HTML and coding in general. You will learn about headings and paragraph elements."
+ "Bienvenido al freeCodeCamp!",
+ "Este workshop servirá como sua introdução ao HTML e à codificação em geral. Você aprenderá sobre elementos de cabeçalho e parágrafo."
]
},
"lab-debug-camperbots-profile-page": {
- "title": "Debug Camperbot's Profile Page",
+ "title": "Depure a Página de Perfil do Camperbot",
"intro": [
- "Camperbot is learning how to code too and needs some help with their HTML.",
- "In this lab, you will help Camperbot find and fix the errors in their code."
+ "O Camperbot também está aprendendo a codificar e precisa de ajuda com seu HTML.",
+ "Neste laboratório, você ajudará o Camperbot a encontrar e corrigir os erros em seu código."
]
},
"lecture-understanding-html-attributes": {
- "title": "Understanding HTML Attributes",
+ "title": "Entendendo Atributos HTML",
"intro": [
- "In these lessons, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.",
- "You will learn about HTML's role on the web, and what HTML attributes are."
+ "Nestes cursos, você aprenderá mais sobre HTML (Linguagem de Marcação de Hipertexto), uma linguagem de marcação para criar páginas da web.",
+ "Você aprenderá sobre o papel do HTML na web e o que são atributos HTML."
]
},
"lab-debug-pet-adoption-page": {
- "title": "Debug a Pet Adoption Page",
+ "title": "Depurar uma Página de Adoção de Animais",
"intro": [
- "In this lab, you will need to find and fix the errors in this pet adoption page."
+ "Neste laboratório, você precisará encontrar e corrigir os erros nesta página de adoção de animais."
]
},
"lecture-understanding-the-html-boilerplate": {
- "title": "Understanding the HTML Boilerplate",
+ "title": "Entendendo o Boilerplate HTML",
"intro": [
- "In these lessons, you will learn about the HTML boilerplate which is a ready-made template for your webpages.",
- "You will learn how to work with the link element, meta element and more."
+ "Nestes cursos, você aprenderá sobre o boilerplate HTML que é um modelo pronto para suas páginas da web.",
+ "Você aprenderá a trabalhar com o elemento link, elemento meta e mais."
]
},
"workshop-cat-photo-app": {
- "title": "Build a Cat Photo App",
+ "title": "Crie um aplicativo de fotos de gatos ",
"intro": [
- "HTML stands for HyperText Markup Language and it represents the content and structure of a web page.",
- "In this workshop, you will learn how to work with basic HTML elements such as headings, paragraphs, images, links, and lists."
+ "O HTML é a linguagem de marcação de hipertexto e representa o conteúdo e a estrutura de uma página da web.",
+ "Neste workshop, você aprenderá a trabalhar com elementos básicos do HTML, como títulos, parágrafos, imagens, links e listas."
]
},
"lab-recipe-page": {
- "title": "Build a Recipe Page",
+ "title": "Crie uma página de receitas ",
"intro": [
- "In this lab, you'll review HTML basics by creating a web page of your favorite recipe. You'll create an HTML boilerplate and work with headings, lists, images, and more."
+ "Neste laboratório, você revisará o básico de HTML criando uma página da Web da sua receita favorita. Você criará um padrão HTML e trabalhará com títulos, listas, imagens e mais."
]
},
"lecture-html-fundamentals": {
- "title": "HTML Fundamentals",
+ "title": "Fundamentos de HTML ",
"intro": [
- "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more."
+ "Nestes cursos, você aprenderá sobre fundamentos do HTML, como o elemento div, os atributos id e class, o boilerplate HTML, entidades HTML, e outros conceitos."
]
},
"lecture-understanding-how-html-affects-seo": {
- "title": "Understanding How HTML Affects SEO",
+ "title": "Entendendo Como o HTML Afeta o SEO",
"intro": [
- "In these lessons, you will learn how your HTML code impacts search engine optimization."
+ "Nestes cursos, você aprenderá como seu código HTML impacta a otimização de motores de busca."
]
},
"lab-travel-agency-page": {
- "title": "Build a Travel Agency Page",
+ "title": "Crie uma página de agência de viagens ",
"intro": [
- "In this lab, you'll review working with HTML fundamentals by creating a web page for a travel agency. You'll work with images, the figure element, the figcaption element, the anchor element, and more."
+ "Neste laboratório, você revisará o trabalho com os fundamentos do HTML criando uma página da Web para uma agência de viagens. Você trabalhará com imagens, o elemento figure, o elemento figcaption, o elemento anchor e mais."
]
},
"lecture-working-with-audio-and-video-elements": {
- "title": "Working with Audio and Video Elements",
+ "title": "Trabalhando com Elementos de Áudio e Vídeo",
"intro": [
- "In these lessons, you will learn how to work with the audio and video elements."
+ "Nestes cursos, você aprenderá como trabalhar com os elementos audio e video."
+ ]
+ },
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
]
},
"lecture-working-with-images-and-svgs": {
- "title": "Working with Images and SVGs",
+ "title": "Trabalhando com Imagens e SVGs",
"intro": [
- "In these lessons, you will learn how to work with SVGs and learn about techniques for optimizing your images."
+ "Nestes cursos, você aprenderá como trabalhar com SVGs e sobre técnicas para otimizar suas imagens."
]
},
"workshop-build-a-heart-icon": {
- "title": "Build a Heart Icon",
+ "title": "Crie um Ícone de Coração",
"intro": [
- "In this workshop, you will practice working with SVGs by building a heart icon"
+ "Neste workshop, você praticará o uso de SVGs ao criar um ícone de coração."
]
},
"lecture-working-with-media": {
- "title": "Working with the iframe Element",
+ "title": "Trabalhando com o Elemento iframe",
"intro": [
- "In these lessons, you will learn how to work with the iframe element which is used to embed an external site on your web page."
+ "Nestes cursos, você aprenderá como trabalhar com o elemento iframe que é usado para incorporar um site externo na sua página da web."
]
},
"workshop-build-a-video-display-using-iframe": {
- "title": "Build a Video Display Using iframe",
+ "title": "Crie uma Exibição de Vídeo Usando iframe",
"intro": [
- "In this workshop, you'll learn how to work with the iframe element by building a video display."
+ "Neste workshop, você aprenderá como trabalhar com o elemento iframe criando uma exibição de vídeo."
]
},
"lab-video-compilation-page": {
- "title": "Build a Video Compilation Page",
+ "title": "Crie uma página de compilação de vídeos ",
"intro": [
- "In this lab, you'll create a video compilation web page. You'll practice working with the iframe element."
+ "Neste laboratório, você criará uma página da Web de compilação de vídeos. Você praticará o trabalho com o elemento iframe."
]
},
"lecture-working-with-links": {
- "title": "Working with Links",
+ "title": "Trabalhando com Links ",
"intro": [
- "In these lessons, you will learn about links, the target attribute, different link states, absolute, and relative paths, and more."
+ "Nestes cursos, você aprenderá sobre links, o atributo target, diferentes estados de link, caminhos absolutos e relativos, e muito mais."
]
},
"review-basic-html": {
- "title": "Basic HTML Review",
+ "title": "Revisão sobre o básico de HTML ",
"intro": [
- "Before you are quizzed on the HTML knowledge you have gained so far, you first need to review the concepts.",
- "Open up this page to review the HTML boilerplate, audio and video elements, the different target attribute values and more."
+ "Antes de você ser questionado sobre seus conhecimentos de HTML adquiridos até agora, você precisa rever os conceitos.",
+ "Abra esta página para rever o boilerplate em HTML, elementos audio e video, os diferentes valores de target e mais."
]
},
"quiz-basic-html": {
- "title": "Basic HTML Quiz",
+ "title": "Questionário básico de HTML ",
"intro": [
- "The following quiz will test your knowledge of the basic HTML concepts you have learned so far.",
- "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
+ "O questionário a seguir testará seu conhecimento dos conceitos básicos de HTML que você aprendeu até agora.",
+ "Se você está se preparando para o exame, existem vários conjuntos de questionários disponíveis para prática. Após completar um questionário, você pode revisitar esta página para acessar um novo conjunto de perguntas."
]
},
"lecture-importance-of-semantic-html": {
- "title": "Importance of Semantic HTML",
+ "title": "Importância do HTML Semântico",
"intro": [
- "In these lessons, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more."
+ "Nestes cursos, você aprenderá sobre HTML semântico, por que você deve se preocupar com ele, elementos semânticos, como o HTML semântico difere do HTML de apresentação, e muito mais."
]
},
"lecture-understanding-nuanced-semantic-elements": {
- "title": "Understanding Nuanced Semantic Elements",
+ "title": "Entendendo Elementos Semânticos Nuançados",
"intro": [
- "In these lessons, you will learn when you should use certain semantic elements like the em element over the i element, description lists, and more."
+ "Nestes cursos, você aprenderá quando deve usar certos elementos semânticos, como o elemento em em vez do i, listas de descrição, e mais."
]
},
"lecture-working-with-text-and-time-semantic-elements": {
- "title": "Working with Text and Time Semantic Elements ",
+ "title": "Trabalhando com Elementos Semânticos de Texto e Tempo ",
"intro": [
- "In this lesson, you will learn about the importance of semantics in conveying meaning for text and time-related content including the time, blockquote elements and more."
+ "Neste curso, você aprenderá sobre a importância da semântica em transmitir significados para o texto e conteúdos relacionados ao tempo, incluindo os elementos time, blockquote e mais."
]
},
"lecture-working-with-specialized-semantic-elements": {
- "title": "Working with Specialized Semantic Elements",
+ "title": "Trabalhando com Elementos Semânticos Especializados",
"intro": [
- "In this lesson, you will learn about specialized semantic elements like u, s, code elements and more."
+ "Neste curso, você aprenderá sobre elementos semânticos especializados, como os elementos u, s, code e mais."
]
},
"workshop-blog-page": {
- "title": "Build a Cat Blog Page",
+ "title": "Crie uma página de blog sobre gatos ",
"intro": [
- "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
+ "Neste workshop, você vai criar uma página de blog usando apenas HTML com elementos semânticos, incluindo os elementos main, nav, article e footer."
]
},
"lab-event-hub": {
- "title": "Build an Event Hub",
+ "title": "Crie uma central de eventos ",
"intro": [
- "In this lab, you'll build an event hub and review semantic elements like header, nav, article, and more."
+ "Neste laboratório, você criará um hub de eventos e revisará elementos semânticos como header, nav, article e mais."
]
},
"review-semantic-html": {
- "title": "Semantic HTML Review",
+ "title": "Revisão sobre HTML semântico ",
"intro": [
- "Before you are quizzed on semantic HTML, you first need to review the concepts.",
- "Open up this page to review the em, strong, blockquote, address and more semantic HTML elements."
+ "Antes de você ser questionado sobre HTML semântico, você precisa rever os conceitos.",
+ "Abra esta página para rever os elementos HTML semânticos como em, strong, blockquote, address e mais."
]
},
"quiz-semantic-html": {
- "title": "Semantic HTML Quiz",
+ "title": "Questionário sobre HTML semântico ",
"intro": [
- "The following quiz will test your knowledge on semantic HTML concepts you have learned so far.",
- "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
+ "O questionário a seguir testará seu conhecimento sobre os conceitos de HTML semântico que você aprendeu até agora.",
+ "Se você está se preparando para o exame, existem vários conjuntos de questionários disponíveis para prática. Após completar um questionário, você pode revisitar esta página para acessar um novo conjunto de perguntas."
]
},
"lecture-working-with-forms": {
- "title": "Working with Forms",
+ "title": "Trabalhando com Formulários",
"intro": [
- "In these lessons, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states."
+ "Nestes cursos, você aprenderá sobre formulários, o papel das labels, inputs e botões na criação de formulários, validação de formulários no lado do cliente e estados do formulário."
]
},
"workshop-hotel-feedback-form": {
- "title": "Build a Hotel Feedback Form",
+ "title": "Crie um formulário de feedback de hotéis ",
"intro": [
- "In this workshop, you will build a Hotel Feedback Form.",
- "You will practice working with labels, inputs, fieldsets, legends, textareas and buttons."
+ "Neste workshop, você vai criar um Formulário de Feedback para Hotéis.",
+ "Você vai praticar trabalhando com labels, inputs, fieldsets, legends, textareas e botões."
]
},
"lab-survey-form": {
- "title": "Build a Survey Form",
+ "title": "Crie um formulário de pesquisa ",
"intro": [
- "In this lab, you'll review HTML forms by creating a survey form.",
- "You'll practice working with the label element, the different input elements, the required attribute, and more. "
+ "Neste laboratório, você revisará formulários HTML criando um formulário de pesquisa.",
+ "Você praticará o trabalho com o elemento label, os diferentes elementos input, o atributo required e mais."
]
},
"lecture-working-with-tables": {
- "title": "Working with Tables",
+ "title": "Trabalhando com Tabelas",
"intro": [
- "In these lessons, you will learn about HTML tables, how to create them, and when to use them."
+ "Nestes cursos, você aprenderá sobre tabelas HTML, como criá-las e quando usá-las."
]
},
"workshop-final-exams-table": {
- "title": "Build a Final Exams Table",
+ "title": "Crie uma tabela dos exames finais ",
"intro": [
- "In this workshop, you will practice working with HTML tables by building a table of final exams."
+ "Neste workshop, você vai praticar trabalhando com tabelas HTML criando uma tabela de exames finais."
]
},
"lab-book-catalog-table": {
- "title": "Build a Book Catalog Table",
+ "title": "Crie uma tabela de catálogo de livros ",
"intro": [
- "In this lab, you'll review HTML tables by building a book information table.",
- "You'll practice the different table components like the thead, tbody, th, tr, and td elements."
+ "Neste laboratório, você revisará tabelas HTML criando uma tabela de informações de livros.",
+ "Você praticará os diferentes componentes de tabela, como os elementos thead, tbody, th, tr e td."
]
},
"lecture-working-with-html-tools": {
- "title": "Working with HTML Tools",
+ "title": "Trabalhando com Ferramentas de HTML",
"intro": [
- "In these lessons, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools."
+ "Nestes cursos, você aprenderá sobre ferramentas HTML e como elas permitem que você escreva um código melhor. Estas ferramentas incluem validadores HTML, Inspetor DOM, e as ferramentas de desenvolvimento dos navegadores."
]
},
"review-html-tables-and-forms": {
- "title": "HTML Tables and Forms Review",
+ "title": "Revisão sobre tabelas e formulários em HTML ",
"intro": [
- "Before you are quizzed on HTML forms, tables and tools, you first need to review the concepts.",
- "Open up this page to review the table, input, and button elements as well as commonly used tools like the HTML validator and more."
+ "Antes de ser questionado sobre formulários HTML, tabelas e ferramentas, você primeiro precisa revisar os conceitos.",
+ "Abra esta página para revisar os elementos table, input, e button e também ferramentas comumente usadas como o validador HTML e mais."
]
},
"quiz-html-tables-and-forms": {
- "title": "HTML Tables and Forms Quiz",
+ "title": "Questionário sobre tabelas e formulários em HTML ",
"intro": [
- "The following quiz will test your knowledge of HTML tables, forms and commonly used HTML tools.",
- "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
+ "O seguinte questionário testará seu conhecimento sobre tabelas HTML, formulários e ferramentas HTML comumente usadas.",
+ "Se você está se preparando para o exame, existem vários conjuntos de questionários disponíveis para prática. Após completar um questionário, você pode revisitar esta página para acessar um novo conjunto de perguntas."
]
},
"lecture-importance-of-accessibility-and-good-html-structure": {
- "title": "Importance of Accessibility and Good HTML Structure",
+ "title": "Importância da Acessibilidade e Estrutura de HTML Boa",
"intro": [
- "In these lessons, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more."
+ "Nestes cursos, você aprenderá sobre acessibilidade e sua importância, ferramentas assistivas para pessoas com deficiência, atributos HTML que permitem criar sites inclusivos, práticas recomendadas de acessibilidade, e muito mais."
]
},
"workshop-debug-coding-journey-blog-page": {
- "title": "Debug a Coding Journey Blog Page",
+ "title": "Depure uma Página de Blog de Jornada de Código",
"intro": [
- "In this workshop, you will debug and fix accessibility errors in a coding blog page."
+ "Neste workshop, você depurará e corrigirá erros de acessibilidade em uma página de blog de codificação."
]
},
"lecture-accessible-tables-forms": {
- "title": "Working with Accessible Tables and Forms",
+ "title": "Trabalhando com Tabelas e Formulários Acessíveis",
"intro": [
- "In these lessons, you will learn about how to create accessible tables and forms."
+ "Nestes cursos, você aprenderá como criar tabelas e formulários acessíveis."
]
},
"lecture-introduction-to-aria": {
- "title": "Introduction to ARIA",
+ "title": "Introdução ao ARIA",
"intro": [
- "In these lessons, you will learn about working with ARIA roles."
+ "Nestes cursos, você aprenderá sobre o trabalho com funções ARIA."
]
},
"lecture-accessible-media-elements": {
- "title": "Working with Accessible Media Elements",
+ "title": "Trabalhando com Elementos de Mídia Acessíveis",
"intro": [
- "In these lessons, you will learn about how to create accessible links, audio and video content."
+ "Nestes cursos, você aprenderá como criar links, conteúdos de áudio e vídeo acessíveis."
]
},
"lab-checkout-page": {
- "title": "Build a Checkout Page",
+ "title": "Crie uma página de check-out ",
"intro": [
- "In this lab, you'll create an accessible checkout page.",
- "You'll practice concepts like alt attributes and ARIA roles."
+ "Neste laboratório, você criará uma página de checkout acessível.",
+ "Você praticará conceitos como atributos alt e funções ARIA."
]
},
"lab-movie-review-page": {
- "title": "Design a Movie Review Page",
+ "title": "Projete uma Página de Resenha de Filmes",
"intro": [
- "In this lab, you'll create a movie review page.",
- "You'll practice concepts like semantic HTML, alt attributes, accessible lists, and hiding decorative content from screen readers using aria-hidden."
+ "Neste laboratório, você criará uma página de resenha de filmes.",
+ "Você praticará conceitos como HTML semântico, atributos alt, listas acessíveis e ocultação de conteúdo decorativo dos leitores de tela usando aria-hidden."
]
},
"lab-multimedia-player": {
- "title": "Build a Multimedia Player",
+ "title": "Crie um Player Multimídia",
"intro": [
- "In this lab, you'll build a multimedia player.",
- "You will practice working with the audio and video elements, the controls attribute, and the aria-label attribute."
+ "Neste laboratório, você criará um player multimídia.",
+ "Você praticará trabalhar com os elementos audio e video, o atributo controls e o atributo aria-label."
]
},
"review-html-accessibility": {
- "title": "HTML Accessibility Review",
+ "title": "Revisão sobre acessibilidade no HTML ",
"intro": [
- "Before you are quizzed on HTML and accessibility, you first need to review the concepts.",
- "Open up this page to review concepts including the aria-hidden, aria-describedby, tabindex attributes and more."
+ "Antes de ser questionado sobre HTML e acessibilidade, você primeiro precisa revisar os conceitos.",
+ "Abra esta página para revisar conceitos, incluindo os atributos aria-hidden, aria-describedby, tabindex e mais."
]
},
"quiz-html-accessibility": {
- "title": "HTML Accessibility Quiz",
+ "title": "Questionário sobre acessibilidade no HTML ",
"intro": [
- "The following quiz will test your knowledge on the accessibility concepts you have learned so far.",
- "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions."
+ "O seguinte questionário testará seu conhecimento sobre os conceitos de acessibilidade que você aprendeu até agora.",
+ "Se você está se preparando para o exame, existem vários conjuntos de questionários disponíveis para prática. Após completar um questionário, você pode revisitar esta página para acessar um novo conjunto de perguntas."
]
},
"review-html": {
- "title": "HTML Review",
+ "title": "Revisão de HTML ",
"intro": [
- "Before you take the HTML prep exam, you first need to review the concepts taught in the previous modules.",
- "Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility."
+ "Antes de você realizar o pré-teste de HTML, você precisa rever os conceitos ensinados nos módulos anteriores.",
+ "Abra esta página para rever conceitos sobre o básico dos elementos HTML, HTML semântico, tabelas, formulários e acessibilidade."
]
},
"qpra": {
@@ -2369,629 +2380,2744 @@
"intro": []
},
"lecture-understanding-computer-internet-and-tooling-basics": {
- "title": "Understanding Computer, Internet, and Tooling Basics",
+ "title": "Compreendendo os Fundamentos do Computador, da Internet e das Ferramentas",
"intro": [
- "In these lessons, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use."
+ "Nestes cursos, você aprenderá sobre o computador, suas diferentes partes, provedores de serviços de internet (ISPs) e as ferramentas usadas por desenvolvedores profissionais."
]
},
"lecture-working-with-file-systems": {
- "title": "Working with File Systems",
+ "title": "Trabalhando com Sistemas de Arquivos",
"intro": [
- "In these lessons, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more."
+ "Nestes cursos, você aprenderá como trabalhar com sistemas de arquivos e pastas em seus computadores. Você aprenderá como criar, mover e excluir arquivos e pastas, as práticas recomendadas para nomear e organizar arquivos e pastas e muito mais."
]
},
"lecture-browsing-the-web-effectively": {
- "title": "Browsing the Web Effectively",
+ "title": "Navegando na Web de Forma Eficiente",
"intro": [
- "In these lessons, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine."
+ "Nestes cursos, você aprenderá sobre o que são websites, mecanismos de busca e navegadores da web, os diferentes navegadores disponíveis e como obter o melhor de um mecanismo de busca."
]
},
"review-computer-basics": {
- "title": "Computer Basics Review",
+ "title": "Revisão sobre o básico a respeito de computadores ",
"intro": [
- "Before you are quizzed on basic computer and internet concepts, you first need to review.",
- "Open up this page to review concepts like RAM, Internet service providers, common web browsers, search engines and more."
+ "Antes de você ser questionado sobre conceitos básicos de computador e internet, você precisa revisar.",
+ "Abra esta página para rever conceitos como RAM, provedores de serviços de internet, os navegadores web comuns, os motores de busca e mais."
]
},
"quiz-computer-basics": {
- "title": "Computer Basics Quiz",
+ "title": "Questionário sobre o básico a respeito de computadores ",
"intro": [
- "Test what you've learned in this quiz of basic computer knowledge."
+ "Teste o que você aprendeu neste questionário de conhecimentos básicos sobre computadores."
]
},
"lecture-what-is-css": {
- "title": "What Is CSS?",
+ "title": "O que é CSS?",
"intro": [
- "The following lessons are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more."
+ "Os cursos seguintes são sobre CSS. Você aprenderá o que é CSS e seu papel na web, uma regra CSS e sua anatomia, as três maneiras de escrever CSS e quando usar cada uma, elementos inline e block, e muitas outras informações."
]
},
"workshop-cafe-menu": {
- "title": "Design a Cafe Menu",
+ "title": "Crie um menu de cafeteria ",
"intro": [
- "CSS tells the browser how to display your webpage. You can use CSS to set the color, font, size, and other aspects of HTML elements.",
- "In this workshop, you'll learn CSS by designing a menu page for a cafe webpage."
+ "O CSS informa ao navegador como exibir sua página da web. Você pode usar o CSS para definir cor, fonte, tamanho e outros aspectos dos elementos HTML.",
+ "Neste workshop, você aprenderá CSS criando uma página de menu para uma página da web para um café."
]
},
"lab-business-card": {
- "title": "Design a Business Card",
+ "title": "Crie um cartão de visita ",
"intro": [
- "In this lab, you'll create a business card and style it using CSS.",
- "You'll practice style properties like color, font-size, text-align, and more."
+ "Neste laboratório, você vai criar um cartão de visita e estilizá-lo usando CSS.",
+ "Você praticará propriedades de estilo como color, font-size, text-align e mais."
]
},
"lecture-css-specificity-the-cascade-algorithm-and-inheritance": {
- "title": "CSS Specificity, the Cascade Algorithm, and Inheritance",
+ "title": "Especificidade do CSS, o Algoritmo da Cascata e Herança",
"intro": [
- "In these lessons, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more."
+ "Nestes cursos, você aprenderá sobre especificidade CSS, os seletores comuns e suas especificidades, o algoritmo da cascata, herança e mais."
]
},
"review-basic-css": {
- "title": "Basic CSS Review",
+ "title": "Revisão sobre o básico de CSS ",
"intro": [
- "Before you are quizzed on basic CSS concepts, you first need to review.",
- "Open up this page to review concepts including margin, padding, CSS combinators, CSS specificity and more."
+ "Antes de você ser questionado sobre conceitos básicos de CSS, você precisa revisar.",
+ "Abra esta página para revisar conceitos incluindo margin, padding, combinadores CSS, especificidade CSS e mais."
]
},
"quiz-basic-css": {
- "title": "Basic CSS Quiz",
+ "title": "Questionário básico de CSS ",
"intro": [
- "Test what you've learned in this quiz of basic CSS knowledge."
+ "Teste o que você aprendeu neste questionário de conhecimento básico sobre o CSS."
]
},
"lecture-styling-lists-and-links": {
- "title": "Styling Lists and Links",
+ "title": "Estilizando Listas e Links",
"intro": [
- "In these lessons, you will learn the properties you need to know to effectively style lists and links, including link states like link, visited, hover, and active."
+ "Nestes cursos, você aprenderá as propriedades que você precisa conhecer para estilizar com eficiência listas e links, incluindo estados de link como link, visited, hover, e active."
]
},
"lab-stylized-to-do-list": {
- "title": "Build a Stylized To-Do List",
+ "title": "Crie uma lista de tarefas estilizada ",
"intro": [
- "In this lab, you'll build a To-Do list and apply different styles to the links",
- "You'll practice style properties like text-decoration, list-style-type and how to change styles on hover or click."
+ "Neste laboratório, você vai criar uma lista de tarefas e aplicar diferentes estilos aos links",
+ "Você praticará propriedades de estilo como text-decoration, list-style-type e como mudar estilos em hover ou click."
]
},
"lecture-working-with-backgrounds-and-borders": {
- "title": "Working with Backgrounds and Borders",
+ "title": "Trabalhando com Fundos e Bordas",
"intro": [
- "In these lessons, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds."
+ "Nestes cursos, você aprenderá sobre as propriedades e valores necessários para estilizar fundos e bordas dos elementos, juntamente com as considerações de acessibilidade para fundos."
]
},
"lab-blog-post-card": {
- "title": "Design a Blog Post Card",
+ "title": "Projete um Cartão de Postagem de Blog",
"intro": [
- "In this lab, you'll design a blog post card using HTML and CSS",
- "You'll practice concepts like background-color, border-radius, margins, paddings, and more."
+ "Neste laboratório, você projetará um cartão de postagem de blog usando HTML e CSS",
+ "Você praticará conceitos como background-color, border-radius, margens, preenchimentos e mais."
]
},
"review-css-backgrounds-and-borders": {
- "title": "Lists, Links, CSS Background and Borders Review",
+ "title": "Revisão de Listas, Links, Fundos e Bordas CSS",
"intro": [
- "Before you are quizzed on CSS backgrounds and borders, you first need to review.",
- "Open up this page to review concepts including the background-image property, border property and more."
+ "Antes de você ser questionado sobre fundos e bordas do CSS, você precisa revisar.",
+ "Abra esta página para rever conceitos incluindo as propriedades background-image, border e mais."
]
},
"quiz-css-backgrounds-and-borders": {
- "title": "CSS Backgrounds and Borders Quiz",
+ "title": "Questionário sobre bordas e segundo plano no CSS ",
"intro": [
- "Test what you've learned in this quiz of backgrounds and borders in CSS."
+ "Teste o que você aprendeu neste questionário sobre bordas e segundo plano em CSS."
]
},
"lecture-user-interface-design-fundamentals": {
- "title": "User Interface Design Fundamentals",
+ "title": "Fundamentos do Design de Interfaces de Usuário",
"intro": [
- "In these lessons, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more."
+ "Nestes cursos, você aprenderá sobre os fundamentos do design de interface do usuário (UI). Você aprenderá sobre os termos que você deve conhecer para se comunicar com designers, hierarquia visual, escalonamento, alinhamento, espaços em branco, e muito mais."
]
},
"lecture-user-centered-design": {
- "title": "User-Centered Design",
+ "title": "Design Centrado no Usuário",
"intro": [
- "In these lessons, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing."
+ "Nestes cursos, você aprenderá as práticas recomendadas para projetar recursos voltados para o usuário, como modo escuro, breadcrumbs, diálogos modais, e muito mais. Você também aprenderá a realizar pesquisas de usuário, requisitos de usuário e testes."
]
},
"lecture-common-design-tools": {
- "title": "Common Design Tools",
+ "title": "Ferramentas Comuns de Design",
"intro": [
- "In these lessons, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them."
+ "Nestes cursos, você aprenderá sobre as ferramentas de design comuns que os desenvolvedores devem conhecer. Você também aprenderá sobre resumos de design e como os desenvolvedores trabalham com eles."
]
},
"review-design-fundamentals": {
- "title": "Design Fundamentals Review",
+ "title": "Revisão de fundamentos de design ",
"intro": [
- "Before you are quizzed on the design fundamentals you have learned so far, you first need to review.",
- "Open up this page to review concepts like user-centered design, scale, alignment, good visual hierarchy and more."
+ "Antes de você ser questionado sobre os fundamentos de design que aprendeu até agora, você precisa rever.",
+ "Abra esta página para rever conceitos como design centrado no usuário, escala, alinhamento, boa hierarquia visual e mais."
]
},
"quiz-design-fundamentals": {
- "title": "Design Fundamentals Quiz",
+ "title": "Questionário de fundamentos de design ",
"intro": [
- "Test what you've learned in this quiz of UI design fundamentals."
+ "Teste o que você aprendeu neste questionário de fundamentos de design de UIs."
]
},
"lecture-working-with-relative-and-absolute-units": {
- "title": "Working with Relative and Absolute Units",
+ "title": "Trabalhando com Unidades Relativas e Absolutas",
"intro": [
- "In these lessons, you will learn about relative and absolute units, and how they both impact what you see in the browser."
+ "Nestes cursos, você aprenderá sobre unidades relativas e absolutas, e como elas impactam o que você vê no navegador."
]
},
"lab-event-flyer-page": {
- "title": "Build an Event Flyer Page",
+ "title": "Crie uma página de anúncio de evento ",
"intro": [
- "In this lab, you'll create an event flyer page.",
- "You will practice aligning elements using absolute and relative CSS."
+ "Neste laboratório, você criará uma página de flyer de evento.",
+ "Você praticará alinhando elementos usando CSS absoluto e relativo."
]
},
"review-css-relative-and-absolute-units": {
- "title": "CSS Relative and Absolute Units Review",
+ "title": "Revisão de unidades relativas e absolutas no CSS ",
"intro": [
- "Before you are quizzed on relative and absolute units, you first need to review.",
- "Open up this page to review concepts like percentages, px, rem, em, and more."
+ "Antes de você ser questionado sobre unidades relativas e absolutas, você precisa revisar.",
+ "Abra esta página para rever conceitos como porcentagens, px, rem, em e mais."
]
},
"quiz-css-relative-and-absolute-units": {
- "title": "CSS Relative and Absolute Units Quiz",
+ "title": "Questionário de unidades relativas e absolutas no CSS ",
"intro": [
- "Test what you've learned in this quiz of relative and absolute units in CSS."
+ "Teste o que você aprendeu neste questionário sobre unidades relativas e absolutas em CSS."
]
},
"lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": {
- "title": "Working with Pseudo-Classes and Pseudo-Elements in CSS",
+ "title": "Trabalhando com Pseudoclasses e Pseudoelementos em CSS",
"intro": [
- "In these lessons, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work."
+ "Nestes cursos, você aprenderá sobre pseudo-classes e pseudo-elementos, juntamente com seus exemplos e funcionamento."
]
},
"workshop-greeting-card": {
- "title": "Design a Greeting Card",
+ "title": "Desenhe um Cartão de Saudações",
"intro": [
- "In the previous lessons, you learned how to work with the different types of pseudo-classes.",
- "In this workshop, you will have a chance to practice what you have learned by designing a greeting card."
+ "Nas lições anteriores, você aprendeu a trabalhar com os diferentes tipos de pseudo-classes.",
+ "Neste workshop, você terá a chance de praticar o que aprendeu desenhando um cartão de saudações."
]
},
"lab-job-application-form": {
- "title": "Build a Job Application Form",
+ "title": "Crie um formulário de candidatura para vagas de trabalho ",
"intro": [
- "In this lab you'll build a job application form and style it using pseudo-classes.",
- "You'll practice concepts like :hover, :active, :focus, and more."
+ "Neste laboratório, você criará um formulário de candidatura a emprego e o estilizará usando pseudo-classes.",
+ "Você praticará conceitos como :hover, :active, :focus e mais."
]
},
"review-css-pseudo-classes": {
- "title": "CSS Pseudo-classes Review",
+ "title": "Revisão de pseudoclasses em CSS ",
"intro": [
- "Before you're quizzed on CSS pseudo-classes and pseudo-elements, you should review what you've learned about them.",
- "Open up this page to review concepts like the ::before and ::after pseudo-elements as well as the :hover, :active pseudo-classes and more."
+ "Antes de ser testado em pseudoclasses e pseudoelementos de CSS, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para rever conceitos como os pseudo-elementos ::before e ::after bem como as pseudo-classes :hover, :active e mais."
]
},
"quiz-css-pseudo-classes": {
- "title": "CSS Pseudo-classes Quiz",
- "intro": ["Test your knowledge of CSS pseudo-classes with this quiz."]
+ "title": "Questionário de pseudoclasses em CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre pseudoclasses de CSS com este questionário."
+ ]
},
"lecture-working-with-colors-in-css": {
- "title": "Working with Colors in CSS",
+ "title": "Trabalhando com Cores em CSS",
"intro": [
- "In these lessons, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases."
+ "Nestes cursos, você aprenderá sobre gradientes lineares e radiais, teoria das cores, diferentes tipos de cores, como as cores nomeadas, RGB, Hex, e HSL. Você aprenderá como essas cores funcionam, e quais usar em casos específicos."
]
},
"workshop-colored-markers": {
- "title": "Build a Set of Colored Markers",
+ "title": "Crie um conjunto de marcadores coloridos ",
"intro": [
- "In this workshop, you'll build a set of colored markers. You'll practice different ways to set color values and how to pair colors with each other."
+ "Neste workshop, você criará um conjunto de marcadores coloridos. Você aprenderá maneiras diferentes de definir valores de cores e como combinar cores uma com a outra."
]
},
"lab-colored-boxes": {
- "title": "Design a Set of Colored Boxes",
+ "title": "Projete um Conjunto de Caixas Coloridas",
"intro": [
- "In this lab, you'll create a color grid and practice adding background colors to the grid items using hex codes, RGB, and predefined color names."
+ "Neste laboratório, você criará um grid de cores e praticará adicionando cores de fundo aos itens do grid usando códigos hexadecimais, RGB e nomes de cores predefinidos."
]
},
"review-css-colors": {
- "title": "CSS Colors Review",
+ "title": "Revisão sobre cores no CSS ",
"intro": [
- "Before you're quizzed on CSS colors, you should review what you've learned about them.",
- "Open up this page to review concepts like the rgb() function, hsl() function, hex codes, and more."
+ "Antes de ser testado em cores CSS, você deve revisar o que aprendeu sobre elas.",
+ "Abra esta página para revisar conceitos como a função rgb(), a função hsl(), códigos hex e mais."
]
},
"quiz-css-colors": {
- "title": "CSS Colors Quiz",
- "intro": ["Test your knowledge of CSS colors with this quiz."]
+ "title": "Questionário sobre cores no CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre cores CSS com este questionário."
+ ]
},
"lecture-best-practices-for-styling-forms": {
- "title": "Best Practices for Styling Forms",
+ "title": "Práticas Recomendadas para Estilização de Formulários",
"intro": [
- "In these lessons, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like color and datetime-local."
+ "Nestes cursos, você aprenderá sobre as práticas recomendadas para estilizar formulários e os problemas que você pode encontrar ao estilizar entradas especiais como color e datetime-local."
]
},
"workshop-registration-form": {
- "title": "Design a Registration Form",
+ "title": "Crie um formulário de inscrição ",
"intro": [
- "In this workshop, you'll learn how to design HTML forms by designing a signup page. You'll learn how to control what types of data people can type into your form, and some new CSS tools for styling your page."
+ "Neste workshop, você aprenderá a projetar formulários HTML criando uma página de cadastro. Você aprenderá a controlar quais tipos de dados as pessoas podem digitar no seu formulário e algumas novas ferramentas CSS para estilizar sua página."
]
},
"lab-contact-form": {
- "title": "Design a Contact Form",
+ "title": "Crie um formulário de contato ",
"intro": [
- "In this lab, you'll design a contact form in HTML and style it using CSS."
+ "Neste laboratório, você projetará um formulário de contato em HTML e o estilizará usando CSS."
+ ]
+ },
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
]
},
"review-styling-forms": {
- "title": "Styling Forms Review",
+ "title": "Revisão sobre estilização de formulários ",
"intro": [
- "Before you're quizzed on styling forms, you should review what you've learned.",
- "Open up this page to review how to style form inputs, working with appearance: none and more."
+ "Antes de ser testado na estilização de formulários, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar como estilizar entradas de formulários, trabalhar com appearance: none e mais."
]
},
"quiz-styling-forms": {
- "title": "Styling Forms Quiz",
+ "title": "Questionário sobre estilização de formulários ",
"intro": [
- "In this quiz, you will test your knowledge of how to style forms."
+ "Neste questionário, você testará seu conhecimento sobre como estilizar formulários."
]
},
"lecture-working-with-css-transforms-overflow-and-filters": {
- "title": "Working with CSS Transforms, Overflow, and Filters",
+ "title": "Trabalhando com Transformações CSS, Ultrapassagem de Limites e Filtros",
"intro": [
- "In these lessons, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works."
+ "Nestes cursos, você aprenderá sobre o trabalho com transformações CSS, overflow e filtros. Você também aprenderá sobre o modelo de caixa e como ele funciona."
]
},
"workshop-rothko-painting": {
- "title": "Design a Rothko Painting",
+ "title": "Crie uma pintura ao estilo de Rothko ",
"intro": [
- "Every HTML element is its own box – with its own spacing and a border. This is called the Box Model.",
- "In this workshop, you'll use CSS and the Box Model to create your own Rothko-style rectangular art pieces."
+ "Cada elemento HTML é uma caixa própria, com seu próprio espaçamento e borda. A isso chamamos de Modelo de Caixa, ou Box Model.",
+ "Nesse curso, você usará o CSS e o Box Model para criar suas próprias obras de arte retangulares ao estilo de Rothko."
]
},
"lab-confidential-email-page": {
- "title": "Build a Confidential Email Page",
+ "title": "Crie uma página de e-mail confidencial ",
"intro": [
- "In this lab, you'll create a web page using HTML and mask the content using CSS properties."
+ "Neste laboratório, você criará uma página da Web usando HTML e mascarará o conteúdo usando propriedades CSS."
]
},
"review-css-layout-and-effects": {
- "title": "CSS Layouts and Effects Review",
+ "title": "Revisão sobre efeitos e layout em CSS ",
"intro": [
- "Before you are quizzed on CSS Layouts and Effects, you first need to review.",
- "Open up this page to review concepts like the transform property, the box model, the overflow property and more."
+ "Antes de responder ao questionário sobre Layouts e Efeitos em CSS, você precisa revisar.",
+ "Abra esta página para revisar conceitos como a propriedade transform, o modelo de caixas, a propriedade overflow, e mais."
]
},
"quiz-css-layout-and-effects": {
- "title": "CSS Layout and Effects Quiz",
+ "title": "Questionário sobre efeitos e layout em CSS ",
"intro": [
- "In this quiz, you will test your knowledge of the box model, transforms, filters, and overflow in CSS."
+ "Neste questionário, você testará seu conhecimento sobre o modelo de caixas, transformações, filtros e ultrapassagem de limites em CSS."
]
},
"lecture-working-with-css-flexbox": {
- "title": "Working with CSS Flexbox",
+ "title": "Trabalhando com CSS Flexbox",
"intro": [
- "In these lessons, you will learn how CSS flexbox works, its properties, and when you should use it."
+ "Nestes cursos, você aprenderá como o flexbox do CSS funciona, suas propriedades e quando você deve usá-lo."
]
},
"workshop-flexbox-photo-gallery": {
- "title": "Build a Flexbox Photo Gallery",
+ "title": "Crie uma galeria de fotos usando o Flexbox ",
"intro": [
- "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage."
+ "Neste workshop, você usará Flexbox para criar uma página da galeria de fotos responsiva."
]
},
"lab-page-of-playing-cards": {
- "title": "Build a Page of Playing Cards",
+ "title": "Construa uma página de jogos de cartas ",
"intro": [
- "In this lab, you'll use flexbox to create a webpage of playing cards.",
- "You'll practice aligning elements using flexbox properties like flex-direction, justify-content, align-self, and more."
+ "Neste laboratório, você usará flexbox para criar uma página da web de jogos de cartas.",
+ "Você praticará o alinhamento de elementos usando propriedades de flexbox, como flex-direction, justify-content, align-self e mais."
]
},
"review-css-flexbox": {
- "title": "CSS Flexbox Review",
+ "title": "Revisão sobre o Flexbox do CSS ",
"intro": [
- "Before you're quizzed on CSS flexbox, you should review what you've learned.",
- "Open up this page to review concepts like the flex-direction, justify-content, align-items, flex-wrap properties, and more."
+ "Antes de ser testado no Flexbox do CSS, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como as propriedades flex-direction, justify-content, align-items, flex-wrap, e mais."
]
},
"quiz-css-flexbox": {
- "title": "CSS Flexbox Quiz",
- "intro": ["Test what you've learned on CSS flexbox with this quiz."]
+ "title": "Questionário sobre o Flexbox do CSS ",
+ "intro": [
+ "Teste o que você aprendeu sobre Flexbox do CSS com este questionário."
+ ]
},
"lecture-working-with-css-fonts": {
- "title": "Working with CSS Fonts",
+ "title": "Trabalhando com Fontes CSS",
"intro": [
- "In these lessons, you will learn about typography and its best practices, fonts, and the text-shadow property."
+ "Nestes cursos, você aprenderá sobre a tipografia e suas melhores práticas, fontes e a propriedade text-shadow."
]
},
"workshop-nutritional-label": {
- "title": "Build a Nutritional Label",
+ "title": "Crie um rótulo nutricional ",
"intro": [
- "Typography is the art of styling your text to be easily readable and suit its purpose.",
- "In this workshop, you'll use typography to build a nutrition label webpage. You'll practice how to style text, adjust line height, and position your text using CSS."
+ "A tipografia é a arte de estilizar seu texto para ser facilmente legível e adequado ao seu propósito.",
+ "Neste curso, você usará a tipografia para construir uma página da web de rótulo nutricional. Você aprenderá como estilizar texto, ajustar a altura da linha e posicionar seu texto usando CSS."
]
},
"lab-newspaper-article": {
- "title": "Build a Newspaper Article",
+ "title": "Crie um artigo de jornal ",
"intro": [
- "In this lab, you'll build a newspaper article page using HTML and CSS.",
- "You'll style the fonts using properties like font-family, font-size, font-weight, and more."
+ "Neste laboratório, você criará uma página de artigo de jornal usando HTML e CSS.",
+ "Você estilizará as fontes usando propriedades como font-family, font-size, font-weight e mais."
]
},
"review-css-typography": {
- "title": "CSS Typography Review",
+ "title": "Revisão sobre tipografia no CSS ",
"intro": [
- "Before you're quizzed on the fundamentals of typography, you should review what you've learned.",
- "Open up this page to review concepts like web safe fonts, the font-family property and more."
+ "Antes de ser testado nos fundamentos da tipografia, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como fontes seguras para a web, a propriedade font-family e mais."
]
},
"quiz-css-typography": {
- "title": "CSS Typography Quiz",
- "intro": ["Test your knowledge of typography with this quiz."]
+ "title": "Questionário sobre tipografia no CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre tipografia com este questionário."
+ ]
},
"lecture-best-practices-for-accessibility-and-css": {
- "title": "Best Practices for Accessibility and CSS",
+ "title": "Práticas Recomendadas para Acessibilidade e CSS",
"intro": [
- "In these lessons, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites."
+ "Nestes cursos, você aprenderá sobre as práticas recomendadas para acessibilidade em CSS, e as ferramentas para verificar o bom contraste de cores em sites."
]
},
"workshop-accessibility-quiz": {
- "title": "Build a Quiz Webpage",
+ "title": "Crie um questionário na página ",
"intro": [
- "Accessibility is the process of making your webpages usable for everyone, including people with disabilities.",
- "In this workshop, you'll build a quiz webpage. You'll learn accessibility tools such as keyboard shortcuts, ARIA attributes, and design best practices."
+ "Acessibilidade é o processo de tornar suas páginas da web utilizáveis para todos, incluindo pessoas com deficiências.",
+ "Neste curso, você vai criar um questionário na página. Você aprenderá ferramentas de acessibilidade, como atalhos de teclado, atributos ARIA e melhores práticas."
]
},
"lab-tribute-page": {
- "title": "Build a Tribute Page",
+ "title": "Criar uma página de homenagem ",
"intro": [
- "In this lab, you'll build a tribute page for a subject of your choosing, fictional or real."
+ "Neste laboratório, você vai criar uma página de tributo para um assunto de sua escolha, fictício ou real."
]
},
"review-css-accessibility": {
- "title": "CSS Accessibility Review",
+ "title": "Revisão sobre acessibilidade no CSS ",
"intro": [
- "Before you're quizzed on CSS and accessibility, you should review what you've learned.",
- "Open up this page to review concepts like color contrast tools and accessibility best practices."
+ "Antes de ser testado em CSS e acessibilidade, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como ferramentas de contraste de cores e práticas recomendadas de acessibilidade."
]
},
"quiz-css-accessibility": {
- "title": "CSS Accessibility Quiz",
+ "title": "Questionário sobre acessibilidade no CSS ",
"intro": [
- "In this quiz, you'll test what you've learned about making your webpages accessible with CSS."
+ "Neste questionário, você testará o que aprendeu sobre tornar suas páginas da web acessíveis com CSS."
]
},
"lecture-understanding-how-to-work-with-floats-and-positioning-in-css": {
- "title": "Understanding How to Work with Floats and Positioning in CSS",
+ "title": "Compreendendo Como Trabalhar com Flutuações e Posicionamento no CSS",
"intro": [
- "In these lessons, you will learn how to use CSS positioning and floats. You will learn about absolute, relative, fixed, and sticky positioning. You will also use the z-index property."
+ "Nestes cursos, você aprenderá como usar posicionamento e flutuações do CSS. Você aprenderá sobre o posicionamento absolute, relative, fixed, e sticky. Você também usará a propriedade z-index."
]
},
"workshop-cat-painting": {
- "title": "Build a Cat Painting",
+ "title": "Crie a pintura de um gato ",
"intro": [
- "Mastering CSS positioning is essential for creating visually appealing and responsive web layouts.",
- "In this workshop, you will build a cat painting. You'll learn about how to work with absolute positioning, the z-index property, and the transform property."
+ "Dominar o posicionamento em CSS é essencial para criar layouts visualmente atraentes e responsivos para a web.",
+ "Neste workshop, você criará uma pintura de um gato. Você aprenderá como trabalhar com o posicionamento absoluto, a propriedade z-index e a propriedade transform."
]
},
"lab-house-painting": {
- "title": "Build a House Painting",
+ "title": "Crie a pintura de uma casa ",
"intro": [
- "In this lab, you'll build a house painting using CSS.",
- "You'll design individual elements of the house and position them using CSS properties like position, top, left, and more."
+ "Neste laboratório, você criará uma pintura de uma casa usando CSS.",
+ "Você projetará elementos individuais da casa e os posicionará usando propriedades CSS como position, top, left e mais."
]
},
"review-css-positioning": {
- "title": "CSS Positioning Review",
+ "title": "Revisão sobre posicionamento em CSS ",
"intro": [
- "Before you're quizzed on the fundamentals of CSS positioning, you should review what you've learned.",
- "Open up this page to review concepts like floats, relative positioning, absolute positioning and more."
+ "Antes de ser testado nos fundamentos do posicionamento em CSS, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como flutuações, posicionamento relativo, posicionamento absoluto e mais."
]
},
"quiz-css-positioning": {
- "title": "CSS Positioning Quiz",
- "intro": ["Test your knowledge of CSS positioning with this quiz."]
+ "title": "Questionário sobre posicionamento em CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre posicionamento em CSS com este questionário."
+ ]
},
"lecture-working-with-attribute-selectors": {
- "title": "Working with Attribute Selectors",
+ "title": "Trabalhando com Seletores de Atributos",
"intro": [
- "In these lessons, you will learn about attribute selectors and how to use them to target elements like links and lists."
+ "Nestas lições, você aprenderá sobre seletores de atributos e como usá-los para direcionar elementos, como links e listas."
]
},
"workshop-balance-sheet": {
- "title": "Build a Balance Sheet",
+ "title": "Crie uma folha de balanço ",
"intro": [
- "In this workshop, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage."
+ "Neste workshop, você criará uma folha de balanço usando pseudosseletores. Você aprenderá como alterar o estilo de um elemento quando passar o mouse sobre ele e acionar outros eventos na sua página da web."
]
},
"lab-book-inventory-app": {
- "title": "Build a Book Inventory App",
+ "title": "Crie uma aplicação de inventário de livros ",
"intro": [
- "In this lab, you'll create a book inventory app.",
- "You'll practice CSS attribute selectors like [attribute], [attribute=value], [attribute~=value], and more."
+ "Neste laboratório, você criará um aplicativo de inventário de livros.",
+ "Você praticará seletores de atributos CSS como [attribute], [attribute=value], [attribute~=value] e mais."
]
},
"review-css-attribute-selectors": {
- "title": "CSS Attribute Selectors Review",
+ "title": "Revisão sobre seletores de atributos em CSS ",
"intro": [
- "Before you're quizzed on the fundamentals of CSS attribute selectors, you should review what you've learned about them.",
- "Open up this page to review concepts like how to work with different attribute selectors that target links with the href and title attributes."
+ "Antes de ser testado nos fundamentos dos seletores de atributos CSS, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos como trabalhar com diferentes seletores de atributos que têm como alvo links com os atributos href e title."
]
},
"quiz-css-attribute-selectors": {
- "title": "CSS Attribute Selectors Quiz",
+ "title": "Questionário sobre seletores de atributos em CSS ",
"intro": [
- "Test your knowledge of CSS attribute selectors with this quiz."
+ "Teste seu conhecimento sobre seletores de atributos CSS com este questionário."
]
},
"lecture-best-practices-for-responsive-web-design": {
- "title": "Best Practices for Responsive Web Design",
+ "title": "Práticas Recomendadas para Design Responsivo na Web",
"intro": [
- "In these lessons, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more."
+ "Nestas lições, você aprenderá sobre as melhores práticas para design responsivo na web, os conceitos de funções como grid, flexbox, media queries e breakpoints de mídia no design responsivo, entre outros."
]
},
"workshop-piano": {
- "title": "Design a Piano",
+ "title": "Crie um piano ",
"intro": [
- "Responsive Design tells your webpage how it should look on different-sized screens.",
- "In this workshop, you'll use CSS and responsive design to code a piano. You'll also practice media queries and pseudo selectors."
+ "O design responsivo diz à sua página da web como ela deve ficar em telas de tamanho diferente.",
+ "Neste workshop, você vai usar CSS e design responsivo para codar um piano. Você também vai praticar media queries e pseudo selectores."
]
},
"lab-technical-documentation-page": {
- "title": "Build a Technical Documentation Page",
+ "title": "Crie uma página de documentação técnica ",
"intro": [
- "In this lab, you'll build a technical documentation page to serve as instruction or reference for a topic.",
- "You'll also practice media queries to create a responsive design."
+ "Neste laboratório, você criará uma página de documentação técnica para servir como instrução ou referência para um tópico.",
+ "Você também praticará consultas de mídia para criar um design responsivo."
]
},
"review-responsive-web-design": {
- "title": "Responsive Web Design Review",
+ "title": "Revisão sobre design responsivo para a web ",
"intro": [
- "Before you're quizzed on the fundamentals of responsive design, you should review what you've learned.",
- "Open up this page to review concepts like media queries, media breakpoints and mobile first approach design."
+ "Antes de ser testado nos fundamentos do design responsivo, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como consultas de mídia, pontos de interrupção de mídia e design para abordagem mobile first."
]
},
"quiz-responsive-web-design": {
- "title": "Responsive Web Design Quiz",
+ "title": "Questionário sobre design responsivo para a web ",
"intro": [
- "Test what you've learned about making your webpages responsive with this quiz."
+ "Teste o que você aprendeu sobre tornar suas páginas da web responsivas com este questionário."
]
},
"lecture-working-with-css-variables": {
- "title": "Working with CSS Variables",
+ "title": "Trabalhando com Variáveis CSS",
"intro": [
- "In these lessons, you will learn how to define and use custom properties (also known as CSS variables). You will also learn about the @property rule and how it works."
+ "Nestas lições, você aprenderá a definir e usar propriedades personalizadas (também conhecidas como variáveis CSS). Você também aprenderá sobre a regra @property e como ela funciona."
]
},
"workshop-city-skyline": {
- "title": "Build a City Skyline",
+ "title": "Crie um céu na cidade ",
"intro": [
- "CSS variables help you organize your styles and reuse them.",
- "In this workshop, you'll build a city skyline. You'll practice how to configure CSS variables so you can reuse them whenever you want."
+ "As variáveis CSS ajudam você a organizar seus estilos e a reutilizá-los.",
+ "Neste curso, você vai construir um céu na cidade. Você vai aprender como configurar variáveis CSS para que você possa reutilizá-las quando quiser."
]
},
"lab-availability-table": {
- "title": "Build an Availability Table",
+ "title": "Crie uma tabela de disponibilidade ",
"intro": [
- "For this lab, you'll create an availability table that shows the availability of people for a meeting.",
- "You'll practice using CSS variables to store and reuse colors, fonts, and other styles."
+ "Para este laboratório, você criará uma tabela de disponibilidade que mostra a disponibilidade de pessoas para uma reunião.",
+ "Você praticará o uso de variáveis CSS para armazenar e reutilizar cores, fontes e outros estilos."
]
},
"review-css-variables": {
- "title": "CSS Variables Review",
+ "title": "Revisão sobre variáveis no CSS ",
"intro": [
- "Before you're quizzed on the fundamentals of CSS variables, you should review what you've learned.",
- "Open up this page to review how to work with CSS custom properties (CSS variables) and the @property rule."
+ "Antes de ser testado nos fundamentos das variáveis CSS, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar como trabalhar com propriedades customizadas CSS (variáveis CSS) e a regra @property."
]
},
"quiz-css-variables": {
- "title": "CSS Variables Quiz",
- "intro": ["Test your knowledge of CSS variables with this quiz."]
+ "title": "Questionário sobre variáveis no CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre variáveis CSS com este questionário."
+ ]
},
"lecture-working-with-css-grid": {
- "title": "Working with CSS Grid",
+ "title": "Trabalhando com CSS Grid",
"intro": [
- "In these lessons, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox."
+ "Nestas lições, você aprenderá sobre o grid CSS, suas várias propriedades e como usá-las, bem como como o grid CSS difere do flexbox."
]
},
"workshop-magazine": {
- "title": "Build a Magazine",
+ "title": "Construir uma revista",
"intro": [
- "CSS Grid gives you control over the rows and columns of your webpage design.",
- "In this workshop, you'll build a magazine article. You'll practice how to use CSS Grid, including concepts like grid rows and grid columns."
+ "O CSS Grid dá a você o controle sobre as linhas e colunas do seu design de página da web.",
+ "Neste workshop, você vai construir um artigo de revista. Você praticará como usar o CSS Grid, incluindo conceitos como linhas e colunas de grade."
]
},
"lab-newspaper-layout": {
- "title": "Design a Newspaper Layout",
+ "title": "Projete um Layout de Jornal",
"intro": [
- "In this lab, you will design a newspaper layout using CSS Grid, including concepts like grid rows and grid columns."
+ "Neste laboratório, você projetará um layout de jornal usando CSS Grid, incluindo conceitos como linhas de grade e colunas de grade."
]
},
"lecture-debugging-css": {
- "title": "Debugging CSS",
+ "title": "Depuração de CSS",
"intro": [
- "In this lesson, you'll learn how to debug CSS using your browser's developer tools and CSS validators."
+ "Nesta lição, você aprenderá a depurar CSS usando as ferramentas do desenvolvedor do seu navegador e validadores de CSS."
]
},
"lab-product-landing-page": {
- "title": "Build a Product Landing Page",
+ "title": "Crie uma página inicial para um produto ",
"intro": [
- "In this project, you'll build a product landing page to market a product of your choice."
+ "Neste projeto, você criará uma página inicial de produto para comercializar um produto de sua escolha."
]
},
"review-css-grid": {
- "title": "CSS Grid Review",
+ "title": "Revisão de grid no CSS ",
"intro": [
- "Before you're quizzed on the fundamentals of CSS Grid, you should review what you've learned.",
- "Open up this page to review how to work with the different CSS Grid properties like grid-template-columns, grid-gap and more."
+ "Antes de ser testado nos fundamentos do CSS Grid, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar como trabalhar com as diferentes propriedades CSS Grid como grid-template-columns, grid-gap e mais."
]
},
"quiz-css-grid": {
- "title": "CSS Grid Quiz",
- "intro": ["Test your knowledge of CSS Grid with this quiz."]
+ "title": "Questionário de grid no CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre CSS Grid com este questionário."
+ ]
},
"lecture-animations-and-accessibility": {
- "title": "Animations and Accessibility",
+ "title": "Animações e Acessibilidade",
"intro": [
- "In these lessons, you will learn about CSS animations and their accessibility concerns. You will also learn how prefers-reduced-motion can help address those accessibility concerns."
+ "Nestas lições, você aprenderá sobre animações em CSS e suas preocupações com acessibilidade. Você também aprenderá como prefers-reduced-motion pode ajudar a abordar essas preocupações de acessibilidade."
]
},
"workshop-ferris-wheel": {
- "title": "Build an Animated Ferris Wheel",
+ "title": "Crie uma Roda-Gigante Animada",
"intro": [
- "You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.",
- "In this workshop, you'll build a Ferris wheel. You'll practice how to use CSS to animate elements, transform them, and adjust their speed."
+ "Você pode usar animação CSS para chamar a atenção para seções específicas da sua página da web e torná-la mais envolvente.",
+ "Neste workshop, você criará uma roda-gigante. Você vai praticar como usar CSS para animar elementos, transformá-los e ajustar sua velocidade."
]
},
"lab-moon-orbit": {
- "title": "Build a Moon Orbit",
+ "title": "Crie uma órbita lunar ",
"intro": [
- "In this lab, you'll create an animation of the moon orbiting the earth.",
- "You'll practice animation properties like animation-name, animation-duration, animation-timing-function, and more."
+ "Neste laboratório, você criará uma animação da lua orbitando a Terra.",
+ "Você praticará propriedades de animação como animation-name, animation-duration, animation-timing-function e mais."
]
},
"workshop-flappy-penguin": {
- "title": "Build a Flappy Penguin",
+ "title": "Criar um pinguim flappy ",
"intro": [
- "You can transform HTML elements to create appealing designs that draw your reader's eye. You can use transforms to rotate elements, scale them, and more.",
- "In this workshop, you'll build a penguin. You'll use CSS transforms to position and resize the parts of your penguin, create a background, and animate your work."
+ "Você pode transformar elementos HTML para criar projetos atraentes que chamam a atenção do seu leitor. Você pode usar transformações para girar elementos, dimensionar e muito mais.",
+ "Neste curso, você criará um pinguim. Você usará transformações em CSS para posicionar e redimensionar as partes do seu pinguim, criar um plano de fundo e animar o seu trabalho."
]
},
"lab-personal-portfolio": {
- "title": "Build a Personal Portfolio",
+ "title": "Crie um portfólio pessoal ",
"intro": [
- "In this project, you'll build your own personal portfolio page."
+ "Neste projeto, você criará sua própria página pessoal de portfólio."
]
},
"review-css-animations": {
- "title": "CSS Animations Review",
+ "title": "Revisão de Animações em CSS",
"intro": [
- "Before you're quizzed on working with CSS animations, you should review what you've learned about them.",
- "Open up this page to review concepts including prefers-reduced-motion, the @keyframes rule and more."
+ "Antes de ser testado em animações CSS, você deve revisar o que aprendeu sobre elas.",
+ "Abra esta página para revisar conceitos inclusive prefers-reduced-motion, a regra @keyframes e mais."
]
},
"quiz-css-animations": {
- "title": "CSS Animations Quiz",
- "intro": ["Test your knowledge of CSS animations with this quiz."]
+ "title": "Questionário sobre animações no CSS ",
+ "intro": [
+ "Teste seu conhecimento sobre animações em CSS com este questionário."
+ ]
},
"review-css": {
- "title": "CSS Review",
+ "title": "Revisão sobre CSS ",
"intro": [
- "Before you take the CSS prep exam, you first need to review the concepts taught in the previous modules.",
- "Open up this page to review concepts around the basics of CSS, responsive web design, animations, accessibility and more."
+ "Antes de fazer o exame preparatório de CSS, você precisa primeiro revisar os conceitos ensinados nos módulos anteriores.",
+ "Abra esta página para revisar conceitos sobre o básico de CSS, design responsivo na web, animações, acessibilidade e mais."
]
},
"lecture-working-with-code-editors-and-ides": {
- "title": "Working with Code Editors and IDEs",
+ "title": "Trabalhando com editores de código e IDEs",
"intro": [
- "In these lessons, you will learn how to work with code editors and IDEs. You will learn various concepts about the most popular code editor, VS Code such as its installation, how to create a project in it, keyboard shortcuts, and extensions."
+ "Nestas lições, você aprenderá a trabalhar com editores de código e IDEs. Você aprenderá vários conceitos sobre o editor de código mais popular, o VS Code, como sua instalação, como criar um projeto nele, atalhos de teclado e extensões."
]
},
"lecture-introduction-to-javascript": {
- "title": "Introduction to JavaScript",
+ "title": "Introdução ao JavaScript",
"intro": [
- "In these lessons, 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, and much more."
+ "Nestas lições, você aprenderá os fundamentos do JavaScript. Os tópicos abordados incluem, mas não se limitam a, variáveis, tipos de dados, como o JavaScript interage com o HTML e CSS, e muito mais."
]
},
"lecture-introduction-to-strings": {
- "title": "Introduction to Strings",
+ "title": "Introdução a Strings",
"intro": [
- "In these lessons, you will learn how to work with strings and string concatenation."
+ "Nestas lições, você aprenderá a trabalhar com strings e concatenação de strings."
]
},
"lecture-understanding-code-clarity": {
- "title": "Understanding Code Clarity",
+ "title": "Compreendendo a Clareza do Código",
"intro": [
- "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
+ "Nestas lições, você aprenderá sobre comentários em JavaScript e o papel dos pontos e vírgulas na programação."
+ ]
+ },
+ "workshop-greeting-bot": {
+ "title": "Crie um bot de saudações ",
+ "intro": [
+ "Neste workshop, você aprenderá os fundamentos do JavaScript criando um bot de saudações.",
+ "Você aprenderá sobre as variáveis, let, const, console.log e sobre o uso básico de strings."
+ ]
+ },
+ "lab-javascript-trivia-bot": {
+ "title": "Crie um bot informativo em JavaScript ",
+ "intro": [
+ "Neste laboratório, você praticará trabalhar com variáveis e strings em JavaScript criando um bot informativo."
+ ]
+ },
+ "lab-sentence-maker": {
+ "title": "Crie um construtor de frases ",
+ "intro": [
+ "Neste laboratório, você continuará praticando com strings e concatenação criando e personalizando várias histórias."
+ ]
+ },
+ "lecture-working-with-data-types": {
+ "title": "Trabalhando com Tipos de Dados",
+ "intro": [
+ "Nas lições a seguir, você aprenderá a trabalhar com tipos de dados em JavaScript. Você também aprenderá como a tipagem dinâmica difere da tipagem estática, o operador typeof e o bug typeof null."
+ ]
+ },
+ "review-javascript-variables-and-data-types": {
+ "title": "Revisão sobre variáveis e tipos de dados em JavaScript",
+ "intro": [
+ "Antes de fazer o questionário sobre variáveis e tipos de dados no JavaScript, você precisa primeiro revisar os conceitos.",
+ "Abra esta página para revisar variáveis, tipos de dados, log e comentários."
+ ]
+ },
+ "quiz-javascript-variables-and-data-types": {
+ "title": "Questionário sobre variáveis e tipos de dados em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre variáveis e tipos de dados em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-strings-in-javascript": {
+ "title": "Trabalhando com Strings no JavaScript",
+ "intro": [
+ "Nestas lições, você aprenderá a trabalhar com strings em JavaScript. Você aprenderá a acessar caracteres de uma string, como usar literais de modelo e interpolação, como criar uma nova linha em strings e muito mais."
+ ]
+ },
+ "workshop-teacher-chatbot": {
+ "title": "Crie um chatbot professor ",
+ "intro": [
+ "Neste workshop, você continuará a aprender mais sobre strings em JavaScript criando um chatbot.",
+ "Você aprenderá a trabalhar com template literals e com o método indexOf."
+ ]
+ },
+ "lecture-working-with-string-character-methods": {
+ "title": "Trabalhando com Métodos de Caracteres de String",
+ "intro": [
+ "Nesta lição, você aprenderá sobre a codificação de caracteres ASCII e como usar os métodos charCodeAt() e fromCharCode() do JavaScript para converter entre caracteres e seus valores numéricos ASCII."
+ ]
+ },
+ "lecture-working-with-string-search-and-slice-methods": {
+ "title": "Trabalhando com Métodos de Pesquisa e Segmentação de String",
+ "intro": [
+ "Nesta lição, você aprenderá a buscar substrings usando o método includes() e como extrair partes de strings usando o método slice()."
+ ]
+ },
+ "lecture-working-with-string-formatting-methods": {
+ "title": "Trabalhando com Métodos de Formatação de String",
+ "intro": [
+ "Nesta lição, você aprenderá a formatar strings mudando seu caso usando os métodos toUpperCase() e toLowerCase(), e como remover espaços em branco usando os métodos trim(), trimStart() e trimEnd()."
+ ]
+ },
+ "lecture-working-with-string-modification-methods": {
+ "title": "Trabalhando com Métodos de Modificação de String",
+ "intro": [
+ "Nesta lição, você aprenderá a modificar strings substituindo partes delas usando o método replace() e como repetir strings várias vezes usando o método repeat()."
+ ]
+ },
+ "review-javascript-strings": {
+ "title": "Revisão sobre strings em JavaScript",
+ "intro": [
+ "Antes de fazer o questionário sobre trabalho com strings no JavaScript, você precisa primeiro revisar.",
+ "Abra esta página para revisar como trabalhar com literais de template, o método slice, o método includes, o método trim, e mais."
+ ]
+ },
+ "quiz-javascript-strings": {
+ "title": "Questionário sobre strings em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre strings em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-numbers-and-arithmetic-operators": {
+ "title": "Trabalhando com Números e Operadores Aritméticos",
+ "intro": [
+ "Nestas lições, você aprenderá sobre o tipo de número, operadores aritméticos e como usá-los com números e strings."
+ ]
+ },
+ "lecture-working-with-operator-behavior": {
+ "title": "Trabalhando com Comportamento de Operadores",
+ "intro": [
+ "Nestas lições, você aprenderá sobre precedência de operadores, os operadores de incremento e decremento, e operadores de atribuição composta."
+ ]
+ },
+ "lecture-working-with-comparison-and-boolean-operators": {
+ "title": "Trabalhando com Operadores de Comparação e Booleanos",
+ "intro": [
+ "Nestas lições, você aprenderá sobre booleanos, e operadores de igualdade e desigualdade, além de outros operadores de comparação."
+ ]
+ },
+ "lecture-working-with-unary-and-bitwise-operators": {
+ "title": "Trabalhando com Operadores Unários e Bitwise",
+ "intro": [
+ "Nestas lições, você aprenderá sobre operadores unários e bitwise."
+ ]
+ },
+ "lecture-working-with-conditional-logic-and-math-methods": {
+ "title": "Trabalhando com Lógica Condicional e Métodos Matemáticos",
+ "intro": [
+ "Nestas lições, você aprenderá sobre instruções condicionais, operadores lógicos binários, e o objeto Math."
+ ]
+ },
+ "workshop-mathbot": {
+ "title": "Crie um bot de matemática ",
+ "intro": [
+ "Neste workshop, você vai rever como trabalhar com os diferentes métodos de objetos matemáticos, construindo um bot matemático."
+ ]
+ },
+ "lab-fortune-teller": {
+ "title": "Crie um adivinhador do futuro ",
+ "intro": [
+ "Neste laboratório, você criará um adivinhador do futuro selecionando aleatoriamente uma sorte dentre as disponíveis.",
+ "Você praticará como trabalhar com o método Math.random() e o método Math.floor() para gerar números aleatórios."
+ ]
+ },
+ "lecture-working-with-numbers-and-common-number-methods": {
+ "title": "Trabalhando com Números e Métodos Comuns de Números",
+ "intro": [
+ "Nestas lições, você aprenderá sobre números e métodos comuns de números. Estes incluem isNaN(), parseInt(), parseFloat(), e toFixed()."
+ ]
+ },
+ "review-javascript-math": {
+ "title": "Revisão sobre Math em JavaScript",
+ "intro": [
+ "Antes de ser testado com o objeto Math, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar como trabalhar com o método Math.random(), o método Math.floor() e mais."
+ ]
+ },
+ "quiz-javascript-math": {
+ "title": "Questionário sobre Math em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre o objeto Math do JavaScript com este questionário."
+ ]
+ },
+ "lecture-understanding-comparisons-and-conditionals": {
+ "title": "Compreendendo Comparações e Condicionais",
+ "intro": [
+ "Nestas lições, você aprenderá sobre operadores de comparação e condicionais. Você aprenderá como os diversos condicionais diferem uns dos outros, e como comparações funcionam com null e undefined."
+ ]
+ },
+ "review-javascript-comparisons-and-conditionals": {
+ "title": "Revisão sobre comparações e condicionais em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre condicionais, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar como trabalhar com instruções switch, outros tipos de condicionais e mais."
+ ]
+ },
+ "quiz-javascript-comparisons-and-conditionals": {
+ "title": "Questionário sobre condicionais e comparações em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre condicionais e comparações em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-functions": {
+ "title": "Trabalhando com Funções",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como reutilizar um bloco de código com funções. Você aprenderá qual é o propósito de uma função e como elas funcionam, e como o escopo funciona na programação. "
+ ]
+ },
+ "workshop-calculator": {
+ "title": "Crie uma calculadora ",
+ "intro": [
+ "Neste workshop, você revisará seu conhecimento sobre funções criando uma calculadora."
+ ]
+ },
+ "lab-boolean-check": {
+ "title": "Crie uma Função de Verificação Booleana",
+ "intro": [
+ "Neste laboratório, você implementará uma função que verifica se um valor é booleano."
+ ]
+ },
+ "lab-email-masker": {
+ "title": "Crie um mascarador de e-mails ",
+ "intro": [
+ "Neste laboratório, você criará um mascarador de e-mails, que vai ocultar um endereço de e-mail selecionado.",
+ "Você praticará o corte de strings, concatenação e uso de funções."
+ ]
+ },
+ "workshop-loan-qualification-checker": {
+ "title": "Crie um verificador de qualificação para empréstimos ",
+ "intro": [
+ "Neste workshop, você continuará a aprender a trabalhar com condicionais criando uma aplicação de verificação de qualificação para empréstimos.",
+ "Você aprenderá mais sobre instruções if e sobre como usar operadores de comparação e várias condições em uma instrução if."
+ ]
+ },
+ "lab-celsius-to-fahrenheit-converter": {
+ "title": "Crie um Conversor de Celsius para Fahrenheit",
+ "intro": [
+ "Neste laboratório, você implementará uma função que converte a temperatura de Celsius para Fahrenheit."
+ ]
+ },
+ "lab-counting-cards": {
+ "title": "Crie um Assistente de Contagem de Cartas",
+ "intro": [
+ "Neste laboratório, você usará JavaScript para contar cartas distribuídas."
+ ]
+ },
+ "lab-leap-year-calculator": {
+ "title": "Crie uma calculadora de ano bissexto ",
+ "intro": [
+ "Neste laboratório, você usará instruções condicionais e laços para determinar se um ano é bissexto."
+ ]
+ },
+ "lab-truncate-string": {
+ "title": "Implemente o Algoritmo de String Truncada",
+ "intro": [
+ "Neste laboratório, você praticará truncar uma string em um certo comprimento."
+ ]
+ },
+ "lab-string-ending-checker": {
+ "title": "Crie uma Ferramenta para Confirmar o Fim de String",
+ "intro": [
+ "Neste laboratório, você implementará uma função que verifica se uma string fornecida termina com uma string alvo especificada."
+ ]
+ },
+ "review-javascript-functions": {
+ "title": "Revisão sobre funções em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre funções em JavaScript, você deve revisar o que aprendeu sobre elas.",
+ "Abra esta página para revisar funções, arrow functions e escopo."
+ ]
+ },
+ "quiz-javascript-functions": {
+ "title": "Questionário sobre funções em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre funções em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-arrays": {
+ "title": "Trabalhando com Arrays",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá a trabalhar com arrays JavaScript. Você irá aprender o que faz um array, arrays unidimensionais e bidimensionais, como acessar e atualizar os elementos em um array, e muito mais."
+ ]
+ },
+ "workshop-shopping-list": {
+ "title": "Crie uma lista de compras ",
+ "intro": [
+ "Neste workshop, você praticará como trabalhar com arrays criando uma lista de compras.",
+ "Você lembrará de como adicionar e remover elementos de um array usando métodos como push, pop, shift e unshift."
+ ]
+ },
+ "lab-lunch-picker-program": {
+ "title": "Crie um programa seletor de almoços ",
+ "intro": [
+ "Neste laboratório, você revisará o trabalho com arrays e números aleatórios criando um programa seletor de almoço."
+ ]
+ },
+ "lab-golf-score-translator": {
+ "title": "Crie um Tradutor de Pontuação de Golf",
+ "intro": [
+ "Para este laboratório, você usará métodos de vetor para traduzir pontuações de golfe para seus apelidos."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Crie um Inversor de Strings",
+ "intro": [
+ "Neste laboratório, você criará uma função que reverte uma string fornecida."
+ ]
+ },
+ "lecture-working-with-common-array-methods": {
+ "title": "Trabalhando com Métodos Comuns de Array",
+ "intro": [
+ "Nestes ensinamentos, você irá aprender sobre os métodos de array para realizar operações mais avançadas como obter a posição de um item em um array, verificar se um array contém um certo elemento, copiar um array, e muito mais."
+ ]
+ },
+ "review-javascript-arrays": {
+ "title": "Revisão sobre arrays em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre arrays em JavaScript, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos como destruturação de arrays, como adicionar e remover elementos de um array e mais."
+ ]
+ },
+ "quiz-javascript-arrays": {
+ "title": "Questionário sobre arrays em JavaScript ",
+ "intro": [
+ "Teste seu conhecimento sobre arrays em JavaScript com este questionário."
+ ]
+ },
+ "lecture-introduction-to-javascript-objects-and-their-properties": {
+ "title": "Introdução a Objetos JavaScript e Suas Propriedades",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá os fundamentos dos objetos JavaScript, incluindo como criá-los, acessar suas propriedades, e entender a diferença entre tipos de dados primitivos e não primitivos."
+ ]
+ },
+ "lecture-working-with-optional-chaining-and-object-destructuring": {
+ "title": "Trabalhando com Encadeamento Opcional e Desestruturação de Objetos",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre técnicas avançadas de manipulação de objetos em JavaScript, incluindo o operador de encadeamento opcional e a sintaxe de desestruturação de objetos."
+ ]
+ },
+ "lecture-working-with-json": {
+ "title": "Trabalhando com JSON",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre Notação de Objeto JavaScript (JSON), incluindo como acessar dados JSON e usar os métodos JSON.parse() e JSON.stringify()."
+ ]
+ },
+ "workshop-recipe-tracker": {
+ "title": "Crie um monitor de receitas ",
+ "intro": [
+ "Neste workshop, você revisará o trabalho com objetos em JavaScript criando um monitor de receitas."
+ ]
+ },
+ "lab-quiz-game": {
+ "title": "Crie um jogo de questionário ",
+ "intro": [
+ "Neste laboratório, você criará um jogo de questionário usando arrays e objetos JavaScript.",
+ "Você também praticará usando funções para selecionar aleatoriamente uma pergunta e uma resposta de um array e compará-las."
+ ]
+ },
+ "lab-record-collection": {
+ "title": "Exibir uma Coleção de Discos",
+ "intro": [
+ "Neste laboratório, você criará uma função para gerenciar uma coleção de discos."
+ ]
+ },
+ "review-javascript-objects": {
+ "title": "Revisão sobre objetos em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre objetos em JavaScript, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos incluindo como acessar informações de objetos, desestruturação de objetos, trabalhar com JSON e mais."
+ ]
+ },
+ "quiz-javascript-objects": {
+ "title": "Questionário sobre objetos em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre objetos em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-loops": {
+ "title": "Trabalhando com Laços",
+ "intro": [
+ "Laços são uma parte essencial do JavaScript. Por isso, as seguintes lições foram preparadas para que você aprenda sobre os diferentes tipos de laços e como eles funcionam, e também como a iteração funciona."
+ ]
+ },
+ "workshop-sentence-analyzer": {
+ "title": "Crie um analisador de frases",
+ "intro": [
+ "Neste workshop, você revisará como trabalhar com laços em JavaScript criando uma aplicação de análise de frases."
+ ]
+ },
+ "lab-longest-word-in-a-string": {
+ "title": "Crie um Aplicativo de Pesquisa da Palavra mais Longa",
+ "intro": [
+ "Neste laboratório, você usará laços de JavaScript para encontrar o comprimento da palavra mais longa na sentença fornecida."
+ ]
+ },
+ "lab-factorial-calculator": {
+ "title": "Crie uma calculadora de fatorial ",
+ "intro": [
+ "Neste laboratório, você criará uma calculadora de fatorial.",
+ "Você praticará usando laços e condicionais para calcular o fatorial de um número."
+ ]
+ },
+ "lab-mutations": {
+ "title": "Implemente o Algoritmo de Mutações",
+ "intro": [
+ "Neste laboratório, você praticará interar sobre duas strings diferentes para comparar seus personagens."
+ ]
+ },
+ "lab-chunky-monkey": {
+ "title": "Implemente o Algoritmo do Macaco Chunky",
+ "intro": [
+ "Neste laboratório, você praticará dividir um array em arrays menores com a técnica de sua escolha."
+ ]
+ },
+ "lab-profile-lookup": {
+ "title": "Crie uma Pesquisa de Perfil",
+ "intro": [
+ "Neste laboratório, você criará uma função que pesquisa informações de perfis."
+ ]
+ },
+ "lab-repeat-a-string": {
+ "title": "Crie uma Função de Repetição de Strings",
+ "intro": [
+ "Neste laboratório, você implementará laços para repetir uma string um determinado número de vezes."
+ ]
+ },
+ "lab-missing-letter-detector": {
+ "title": "Crie um Detector de Letras Faltantes",
+ "intro": [
+ "Neste laboratório, você criará uma função que encontra a letra faltante em um intervalo dado de letras consecutivas e a retorna."
+ ]
+ },
+ "review-javascript-loops": {
+ "title": "Revisão sobre laços em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre os diferentes tipos de laços no JavaScript, você deve revisá-los.",
+ "Abra esta página para revisar o for...of loop, loop while, instruções break e continue, e mais."
+ ]
+ },
+ "quiz-javascript-loops": {
+ "title": "Questionário sobre laços em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre laços em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-types-and-objects": {
+ "title": "Trabalhando com Tipos e Objetos",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre objetos string, o método toString(), o construtor Number e muito mais."
+ ]
+ },
+ "lecture-working-with-arrays-variables-and-naming-practices": {
+ "title": "Trabalhando com Arrays, Variáveis e Práticas de Nomeação",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre práticas comuns para nomear variáveis e funções, e como trabalhar com arrays."
+ ]
+ },
+ "lecture-working-with-code-quality-and-execution-concepts": {
+ "title": "Trabalhando com Qualidade de Código e Conceitos de Execução",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá o que são linters e formatadores, o que é gerenciamento de memória, e closures."
+ ]
+ },
+ "lab-largest-number-finder": {
+ "title": "Crie o Encontrador do Maior Número",
+ "intro": [
+ "Neste laboratório, você usará os fundamentos do JavaScript para criar uma função que encontra o maior número em cada subvetor de um vetor fornecido."
+ ]
+ },
+ "lab-first-element-finder": {
+ "title": "Crie um Encontrador do Primeiro Elemento",
+ "intro": [
+ "Neste laboratório, você criará uma função que percorre um vetor e retorna o primeiro elemento que passa por um \"teste de verdade\"."
+ ]
+ },
+ "lab-slice-and-splice": {
+ "title": "Implemente o Algoritmo de Fatia e Emenda",
+ "intro": [
+ "Neste laboratório, você praticará a fusão de um array com outro."
+ ]
+ },
+ "lab-pyramid-generator": {
+ "title": "Crie um gerador de pirâmides",
+ "intro": [
+ "Neste laboratório, você criará um gerador de pirâmides.",
+ "Você pegará um número como entrada e gerará uma pirâmide com esse número de níveis usando um laço."
+ ]
+ },
+ "lab-gradebook-app": {
+ "title": "Crie uma aplicação de quadro de notas",
+ "intro": [
+ "Para este laboratório, você criará uma aplicação de quadro de notas.",
+ "Você praticará condicionais para determinar a nota de um estudante com base em sua pontuação."
+ ]
+ },
+ "lecture-the-var-keyword-and-hoisting": {
+ "title": "A Palavra-chave var e Elevação (Hoisting)",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre a palavra-chave var e por que não é mais recomendada para uso. Você também aprenderá sobre elevação em JavaScript para que você possa evitar bugs sutis em seu código."
+ ]
+ },
+ "lab-title-case-converter": {
+ "title": "Crie um Conversor de Capitalização de Título",
+ "intro": [
+ "Neste laboratório, você criará uma função que converte uma string em formato de título."
+ ]
+ },
+ "lab-falsy-remover": {
+ "title": "Implemente um Removedor de Falsos",
+ "intro": [
+ "Neste laboratório, você criará uma função que remove todos os valores falsos de um vetor."
+ ]
+ },
+ "lab-inventory-management-program": {
+ "title": "Crie um programa de gestão de inventário",
+ "intro": [
+ "Para este laboratório, você criará um programa de gestão de inventário usando JavaScript.",
+ "Você usará arrays de objetos JavaScript para gerir o inventário."
+ ]
+ },
+ "lecture-understanding-modules-imports-and-exports": {
+ "title": "Compreendendo Módulos, Imports e Exports",
+ "intro": [
+ "Nesta lição, você aprenderá sobre módulos, importações e exportações em JavaScript."
+ ]
+ },
+ "lecture-working-with-the-arguments-object-and-rest-parameters": {
+ "title": "Trabalhando com o Objeto de Argumentos e Parâmetros Rest",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como trabalhar com o objeto arguments e a sintaxe de parâmetros rest."
+ ]
+ },
+ "lab-unique-sorted-union": {
+ "title": "Implemente uma União Única Ordenada",
+ "intro": [
+ "Neste laboratório, você criará uma função que aceita dois ou mais arrays e retorna um novo array de valores únicos na ordem dos arrays originais fornecidos."
+ ]
+ },
+ "lab-password-generator": {
+ "title": "Crie um Aplicativo Gerador de Senhas",
+ "intro": [
+ "Neste laboratório, você criará uma aplicação de gerador de senhas com base na entrada do usuário."
+ ]
+ },
+ "lab-sum-all-numbers-algorithm": {
+ "title": "Projete um Algoritmo de Soma de Todos os Números",
+ "intro": [
+ "Neste laboratório, você projetará um algoritmo de soma de todos os números. Este algoritmo pega um array de dois números e retorna a soma destes dois números mais a soma de todos os números entre eles."
+ ]
+ },
+ "lab-dna-pair-generator": {
+ "title": "Implemente um Gerador de Pares de DNA",
+ "intro": [
+ "Neste laboratório, você implementará um algoritmo de pareamento de bases de DNA que converte uma única fita de DNA em pares de bases complementares."
+ ]
+ },
+ "lab-html-entitiy-converter": {
+ "title": "Implemente um Conversor de Entidades HTML",
+ "intro": [
+ "Neste laboratório, você converterá caracteres especiais em uma string para suas correspondentes entidades HTML."
+ ]
+ },
+ "lab-odd-fibonacci-sum-calculator": {
+ "title": "Crie uma Calculadora de Soma de Fibonacci Ímpar",
+ "intro": [
+ "Neste laboratório, você criará uma calculadora de soma de Fibonacci ímpar que considera um número e retorna a soma de todos os números de Fibonacci ímpares até esse número."
+ ]
+ },
+ "lab-optional-arguments-sum-function": {
+ "title": "Crie uma Função de Soma de Argumentos Opcionais",
+ "intro": [
+ "Neste laboratório, você criará uma função que aceita até dois argumentos e os soma, mas se houver apenas um argumento, retorna uma função que aguarda o segundo número para somar."
+ ]
+ },
+ "review-javascript-fundamentals": {
+ "title": "Revisão sobre o básico em JavaScript",
+ "intro": [
+ "Antes de ser questionado sobre os fundamentos do JavaScript, você primeiro precisa revisar os conceitos.",
+ "Abra esta página para revisar conceitos como closures, gerenciamento de memória e mais."
+ ]
+ },
+ "quiz-javascript-fundamentals": {
+ "title": "Questionário sobre o básico em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre o básico em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-higher-order-functions-and-callbacks": {
+ "title": "Trabalhando com Funções de Ordem Superior e Callbacks",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como trabalhar com funções de ordem superior e callbacks. As funções de ordem superior que você aprenderá incluem map(), filter(), reduce(), sort(), every(), e some(). Você também aprenderá como encadear esses métodos para alcançar seus resultados desejados."
+ ]
+ },
+ "workshop-library-manager": {
+ "title": "Crie um Gerenciador de Biblioteca",
+ "intro": [
+ "Neste workshop, você aprenderá métodos de array de ordem superior construindo um gerenciador de biblioteca."
+ ]
+ },
+ "lab-book-organizer": {
+ "title": "Crie um Organizador de Livros",
+ "intro": [
+ "Neste laboratório, você criará um organizador de livros utilizando funções de ordem superior em JavaScript."
+ ]
+ },
+ "lab-sorted-index-finder": {
+ "title": "Implemente um Localizador de Índices Ordenados",
+ "intro": [
+ "Neste laboratório, você criará uma função que encontra o índice no qual um número dado deve ser inserido em um vetor ordenado para manter a ordem do vetor."
+ ]
+ },
+ "lab-symmetric-difference": {
+ "title": "Crie uma Função de Diferença Simétrica",
+ "intro": [
+ "Neste laboratório, você praticará o uso de funções de ordem superior para encontrar a diferença simétrica entre dois vetores."
+ ]
+ },
+ "lab-value-remover-function": {
+ "title": "Implemente uma Função Removedora de Valores",
+ "intro": [
+ "Neste laboratório, você criará uma função que remove todas as instâncias de um valor especificado de um array."
+ ]
+ },
+ "lab-matching-object-filter": {
+ "title": "Implemente um Filtro de Objeto por Correspondência",
+ "intro": [
+ "Neste laboratório, você criará uma função que percorre um array de objetos e retorna um array de todos os objetos que têm pares de propriedade e valor correspondentes."
+ ]
+ },
+ "lab-sum-all-primes-calculator": {
+ "title": "Crie uma Calculadora de Soma de Números Primos",
+ "intro": [
+ "Neste laboratório, você criará uma calculadora que soma todos os números primos até um determinado número."
+ ]
+ },
+ "lab-range-based-lcm-calculator": {
+ "title": "Implemente uma Calculadora de Mínimo Comum Múltiplo com Base em Intervalos",
+ "intro": [
+ "Neste laboratório, você criará uma função que aceita um array de dois números e retorna o mínimo comum múltiplo (MCM) desses dois números e de todos os números entre eles."
+ ]
+ },
+ "lab-deep-flattening-tool": {
+ "title": "Crie uma Ferramenta de Achatamento Profundo",
+ "intro": [
+ "Neste laboratório, você criará uma função que pode achatar arrays profundamente aninhados, lidando com qualquer nível de aninhamento sem utilizar métodos flat embutidos."
+ ]
+ },
+ "lab-all-true-property-validator": {
+ "title": "Crie um Validador de Propriedade Sempre-Verdadeira",
+ "intro": [
+ "Neste laboratório, você criará uma função que verifica se todos os objetos em um array têm um valor verdade para uma propriedade específica."
+ ]
+ },
+ "review-javascript-higher-order-functions": {
+ "title": "Revisão sobre funções de ordem superior em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre funções de ordem superior em JavaScript, você deve revisá-las.",
+ "Abra esta página para revisar conceitos, incluindo como trabalhar com os métodos map(), filter(), e reduce()."
+ ]
+ },
+ "quiz-javascript-higher-order-functions": {
+ "title": "Questionário sobre funções de ordem superior em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre funções de ordem superior em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-the-dom-click-events-and-web-apis": {
+ "title": "Trabalhando com o DOM, Eventos de Clique e APIs para Web",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como trabalhar com o Modelo de Objeto de Documento (DOM), o método addEventListener() e eventos, e APIs web."
+ ]
+ },
+ "workshop-storytelling-app": {
+ "title": "Crie um App de Narrativas",
+ "intro": [
+ "Neste workshop, você criará um app de narrativas que permitirá listar diferentes histórias com base no gênero."
+ ]
+ },
+ "workshop-emoji-reactor": {
+ "title": "Crie um Reator de Emojis",
+ "intro": [
+ "Neste workshop, você criará um reator de emojis para praticar querySelector e querySelectorAll."
+ ]
+ },
+ "lab-favorite-icon-toggler": {
+ "title": "Crie um alternador de ícones favoritos",
+ "intro": [
+ "Neste laboratório, você criará um alternador de ícones favoritos utilizando eventos de clique em JavaScript."
+ ]
+ },
+ "lecture-understanding-the-event-object-and-event-delegation": {
+ "title": "Compreendendo o Objeto de Evento e Delegação de Evento",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre o objeto de evento, o evento de mudança, propagação de eventos, e delegação de eventos."
+ ]
+ },
+ "workshop-music-instrument-filter": {
+ "title": "Crie um Filtro de Instrumentos Musicais",
+ "intro": [
+ "Neste workshop, você criará um filtro de instrumentos musicais com JavaScript."
+ ]
+ },
+ "lab-real-time-counter": {
+ "title": "Compilação de um contador em tempo real",
+ "intro": [
+ "Neste laboratório, você criará um contador de caracteres em tempo real.",
+ "Você praticará como trabalhar com o evento input quando o usuário digitar no campo de entrada."
+ ]
+ },
+ "lab-lightbox-viewer": {
+ "title": "Crie um visualizador de lightbox",
+ "intro": [
+ "Neste laboratório, você criará um visualizador de lightbox para visualizar imagens em modo focado.",
+ "Você praticará eventos de clique e alternância de classes."
+ ]
+ },
+ "workshop-rps-game": {
+ "title": "Crie um jogo de pedra, papel e tesoura",
+ "intro": [
+ "Neste workshop, você revisará a manipulação do DOM e eventos criando um jogo de Pedra, Papel e Tesoura."
+ ]
+ },
+ "lab-football-team-cards": {
+ "title": "Crie um conjunto de cartões de times de futebol",
+ "intro": [
+ "Neste laboratório, você usará manipulação do DOM, desestruturação de objetos, manuseio de eventos, e filtragem de dados para criar um conjunto de cartões de times de futebol."
+ ]
+ },
+ "review-dom-manipulation-and-click-events-with-javascript": {
+ "title": "Revisão sobre manipulação do DOM e eventos de clique em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre o DOM, você deve revisar o que aprendeu sobre ele.",
+ "Abra esta página para revisar conceitos, incluindo como trabalhar com o DOM, APIs da Web, o método addEventListener(), eventos de mudança, propagação de eventos e mais."
+ ]
+ },
+ "quiz-dom-manipulation-and-click-event-with-javascript": {
+ "title": "Questionário sobre manipulação do DOM e eventos de clique em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre manipulação do DOM e eventos de clique no JavaScript com este questionário."
+ ]
+ },
+ "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
+ "title": "Compreendendo aria-expanded, aria-live e Estados Comuns do ARIA",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá mais sobre atributos ARIA como aria-expanded, aria-live, e estados ARIA comuns."
+ ]
+ },
+ "workshop-planets-tablist": {
+ "title": "Crie uma Lista com Guias de Planetas",
+ "intro": [
+ "Neste workshop, você criará uma interface dinâmica com guias que exibe fatos sobre os planetas do sistema solar."
+ ]
+ },
+ "workshop-note-taking-app": {
+ "title": "Crie um Aplicativo de Anotações",
+ "intro": [
+ "Neste workshop, você criará um aplicativo de notas acessível.",
+ "Isso lhe proporcionará a oportunidade de praticar com o atributo aria-live."
+ ]
+ },
+ "lab-theme-switcher": {
+ "title": "Crie um Alternador de Temas",
+ "intro": [
+ "Neste laboratório, você criará um alternador de temas e praticará o uso dos atributos aria-haspopup, aria-expanded e aria-controls."
+ ]
+ },
+ "review-js-a11y": {
+ "title": "Revisão de JavaScript e Acessibilidade",
+ "intro": [
+ "Antes de ser testado em JavaScript e acessibilidade, você deve revisar o que aprendeu sobre isso.",
+ "Abra esta página para revisar conceitos incluindo como trabalhar com os atributos aria-expanded, aria-live, e aria-controls."
+ ]
+ },
+ "quiz-js-a11y": {
+ "title": "Questionário sobre JavaScript e Acessibilidade",
+ "intro": [
+ "Teste seu conhecimento das melhores práticas de JavaScript e acessibilidade com este questionário."
+ ]
+ },
+ "lecture-debugging-techniques": {
+ "title": "Técnicas de Depuração",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre os erros comuns em JavaScript e as técnicas que você pode usar para corrigi-los – um processo chamado depuração."
+ ]
+ },
+ "lab-random-background-color-changer": {
+ "title": "Faça a depuração do modificador de cor de fundo aleatório",
+ "intro": [
+ "Neste laboratório, você fará a depuração de um alterador de cor de fundo aleatório e corrigirá os erros para fazê-lo funcionar corretamente."
+ ]
+ },
+ "review-debugging-javascript": {
+ "title": "Revisão sobre depuração em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre técnicas comuns de depuração, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos, incluindo como trabalhar com a instrução throw, try...catch...finally e mais."
+ ]
+ },
+ "quiz-debugging-javascript": {
+ "title": "Questionário sobre depuração em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre depuração em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-regular-expressions": {
+ "title": "Trabalhando com Expressões Regulares",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre expressões regulares em JavaScript. Você aprenderá sobre métodos para trabalhar com expressões regulares, modificadores, classes de caracteres, previsões, previsões reversas, retroreferências, quantificadores, e mais."
+ ]
+ },
+ "workshop-spam-filter": {
+ "title": "Crie um Filtro de Spam",
+ "intro": [
+ "Expressões regulares, frequentemente abreviadas como \"regex\" ou \"regexp\", são padrões que ajudam programadores a encontrar, buscar e substituir texto. As expressões regulares são poderosas, mas podem ser difíceis de entender porque usam muitos caracteres especiais.",
+ "Neste workshop, você usará grupos de captura, buscas positivas, buscas negativas e outras técnicas para encontrar qualquer texto desejado."
+ ]
+ },
+ "lab-palindrome-checker": {
+ "title": "Crie um verificador de palíndromo",
+ "intro": [
+ "Para esse laboratório, você criará uma aplicação que verifica se uma determinada palavra é um palíndromo."
+ ]
+ },
+ "lab-markdown-to-html-converter": {
+ "title": "Crie um Conversor de Markdown para HTML",
+ "intro": [
+ "Para este laboratório, você criará um conversor de Markdown para HTML usando JavaScript.",
+ "Você praticará expressões regulares, manipulação de strings e mais."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Crie um sandbox de expressões regulares",
+ "intro": [
+ "Neste laboratório, você criará um sandbox de expressões regulares."
+ ]
+ },
+ "lab-spinal-case-converter": {
+ "title": "Implemente um Conversor de Casos Específicos",
+ "intro": [
+ "Neste laboratório, você criará uma função que converte uma string dada em casos específicos, onde todas as letras são minúsculas e separadas por hífens."
+ ]
+ },
+ "lab-pig-latin": {
+ "title": "Implemente um Tradutor de Latin Porco",
+ "intro": [
+ "Neste laboratório, você implementará um tradutor de Latin Porco usando JavaScript.",
+ "Você praticará manipulação de strings, lógica condicional e expressões regulares."
+ ]
+ },
+ "lab-smart-word-replacement": {
+ "title": "Crie uma Função Inteligente de Substituição de Palavras",
+ "intro": [
+ "Neste laboratório, você usará regex para criar uma função que realiza uma operação de busca e substituição em uma string dada."
+ ]
+ },
+ "review-javascript-regular-expressions": {
+ "title": "Revisão sobre expressões regulares em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre expressões regulares, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos como lookaheads, lookbehinds, modificadores comuns de regex e mais."
+ ]
+ },
+ "quiz-javascript-regular-expressions": {
+ "title": "Questionário sobre expressões regulares em JavaScript",
+ "intro": [
+ "Teste seu conhecimento sobre expressões regulares em JavaScript com este questionário."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Compreendendo Validação de Formulários",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre validação de formulários em JavaScript. Você aprenderá sobre as várias maneiras de validar formulários, como o método preventDefault() funciona, e como o evento de envio funciona."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Crie um Contador de Calorias",
+ "intro": [
+ "Às vezes, quando você está programando uma aplicação para a web, você precisa ser capaz de aceitar entradas de um usuário. Neste workshop de contador de calorias, você praticará como validar a entrada do usuário, executar cálculos com base nessa entrada e atualizar dinamicamente sua interface para exibir os resultados.",
+ "Você também praticará expressões regulares básicas, literais de template, o método addEventListener() e mais."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Crie um Formulário de Reclamação de Clientes",
+ "intro": [
+ "Para este laboratório, você usará JavaScript para validar um formulário de reclamação de clientes.",
+ "Você praticará como validar entradas de formulário, exibir mensagens de erro e impedir o envio do formulário se houver erros."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Revisão sobre validação de formulários em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre validação de formulários, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos, incluindo o método preventDefault(), o evento de envio e mais."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Questionário sobre validação de formulários em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre validação de formulários com JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-dates": {
+ "title": "Trabalhando com Datas",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre o objeto de data do JavaScript. Você aprenderá sobre os métodos para trabalhar com datas e como formatar datas."
+ ]
+ },
+ "lab-date-conversion": {
+ "title": "Crie um programa de conversão de data",
+ "intro": [
+ "Neste laboratório, você criará um programa para converter a data de um formato para outro."
+ ]
+ },
+ "review-javascript-dates": {
+ "title": "Revisão sobre datas em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre como trabalhar com datas, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar o objeto Date() e métodos comuns."
+ ]
+ },
+ "quiz-javascript-dates": {
+ "title": "Questionário sobre datas em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre datas em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-audio-and-video": {
+ "title": "Trabalhando com Áudio e Vídeo",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como trabalhar com arquivos de áudio e vídeo usando JavaScript. Você aprenderá sobre os construtores Audio e Video, seus métodos e propriedades, formatos de áudio e vídeo, codecs, a API HTMLMediaElement, e muito mais."
+ ]
+ },
+ "workshop-music-player": {
+ "title": "Crie um Tocador de Música",
+ "intro": [
+ "Neste workshop, você programará um tocador de MP3 básico usando HTML, CSS e JavaScript.",
+ "O projeto abrange conceitos fundamentais, como o manuseio de reprodução de áudio, gerenciamento de uma lista de reprodução, implementação de funções de play, pause, próximo e anterior, e atualização dinâmica da interface do usuário com base na música atual."
+ ]
+ },
+ "lab-drum-machine": {
+ "title": "Crie uma Bateria Eletrônica",
+ "intro": [
+ "Para este laboratório, você usará o elemento audio para criar uma bateria eletrônica."
+ ]
+ },
+ "review-javascript-audio-and-video": {
+ "title": "Revisão sobre áudio e vídeo em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre como trabalhar com áudio e vídeo em JavaScript, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos, incluindo o construtor Audio, a API HTMLMediaElement e mais."
+ ]
+ },
+ "quiz-javascript-audio-and-video": {
+ "title": "Questionário sobre áudio e vídeo em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre áudio e vídeo em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-maps-and-sets": {
+ "title": "Trabalhando com Mapas e Conjuntos",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre JavaScript Map e Set. Você também aprenderá como ambos diferem de WeakSets e WeakMaps."
+ ]
+ },
+ "workshop-plant-nursery-catalog": {
+ "title": "Crie um Catálogo de Viveiro de Plantas",
+ "intro": [
+ "Neste workshop, você praticará usando Maps e Sets criando um catálogo de viveiro de plantas."
+ ]
+ },
+ "lab-voting-system": {
+ "title": "Crie um Sistema de Votação",
+ "intro": [
+ "Neste laboratório, você criará um sistema de votação usando Maps e Sets.",
+ "Você praticará como usar o objeto Map para armazenar pares de chave-valor e o objeto Set para armazenar valores únicos."
+ ]
+ },
+ "review-javascript-maps-and-sets": {
+ "title": "Revisão sobre Maps e Sets em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre Maps e Sets em JavaScript, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos como os objetos Map e Set, bem como WeakSet e WeakMap."
+ ]
+ },
+ "quiz-javascript-maps-and-sets": {
+ "title": "Questionário sobre Maps e Sets em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre Maps e Sets em JavaScript com este questionário."
+ ]
+ },
+ "lecture-working-with-client-side-storage-and-crud-operations": {
+ "title": "Trabalhando com Armazenamento no Lado do Cliente e Operações CRUD",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre armazenamento no lado do cliente e operações CRUD em JavaScript. Você aprenderá sobre localStorage e sessionStorage junto com seus métodos e propriedades, cookies, a API do Cache, IndexDB, e muito mais."
+ ]
+ },
+ "workshop-todo-app": {
+ "title": "Crie um App de Listas de Tarefas usando Armazenamento Local",
+ "intro": [
+ "O armazenamento local é um recurso do navegador da web que permite aplicações web armazenarem pares de chave-valor de maneira persistente dentro do navegador do usuário. Isso permite que apps da web salvem dados durante uma sessão e os recuperem numa sessão de página posterior.",
+ "Neste workshop, você aprenderá a manipular entradas de formulários, gerenciar armazenamento local, realizar operações CRUD (Criar, Ler, Atualizar, Apagar) em tarefas, implementar ouvintes de eventos e alternar elementos da UI."
+ ]
+ },
+ "lab-bookmark-manager-app": {
+ "title": "Crie uma aplicação gerenciadora de favoritos",
+ "intro": [
+ "Para este laboratório, você criará uma aplicação gerenciadora de favoritos.",
+ "Você usará o armazenamento local para armazenar favoritos e praticará como adicionar, remover e exibir favoritos."
+ ]
+ },
+ "review-local-storage-and-crud": {
+ "title": "Revisão sobre armazenamento local e CRUD",
+ "intro": [
+ "Antes de ser questionado sobre o trabalho com localStorage, você primeiro precisa revisar os conceitos.",
+ "Abra esta página para revisar a propriedade localStorage, a propriedade sessionStorage e mais."
+ ]
+ },
+ "quiz-local-storage-and-crud": {
+ "title": "Questionário sobre armazenamento local e CRUD",
+ "intro": [
+ "Teste o que você aprendeu sobre armazenamento local e CRUD com este questionário."
+ ]
+ },
+ "lecture-understanding-how-to-work-with-classes-in-javascript": {
+ "title": "Compreendendo Como Trabalhar com Classes em JavaScript",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre classes em JavaScript. Você aprenderá sobre herança, a palavra-chave this, propriedades e métodos estáticos, e mais."
+ ]
+ },
+ "workshop-shopping-cart": {
+ "title": "Crie um Carrinho de Compras",
+ "intro": [
+ "Neste workshop, você criará um carrinho de compras usando classes JavaScript.",
+ "Você praticará como usar a palavra-chave this, criar instâncias de classes, implementar métodos para manipulação de dados e mais."
+ ]
+ },
+ "lab-project-idea-board": {
+ "title": "Crie um quadro de ideias de projetos",
+ "intro": [
+ "Neste laboratório, você criará um quadro de ideias de projetos usando POO em JavaScript.",
+ "Você praticará como criar classes, adicionar métodos a classes e criar instâncias de classes."
+ ]
+ },
+ "lab-bank-account-manager": {
+ "title": "Crie um Programa de Gestão de Contas Bancárias",
+ "intro": [
+ "Neste laboratório, você criará um sistema simples de gestão de transações para uma conta de banco."
+ ]
+ },
+ "review-javascript-classes": {
+ "title": "Revisão sobre classes em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre como trabalhar com classes, você deve revisar o que aprendeu sobre elas.",
+ "Abra esta página para revisar conceitos, incluindo a palavra-chave this, herança de classe e mais."
+ ]
+ },
+ "quiz-javascript-classes": {
+ "title": "Questionário sobre Classes em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre classes JavaScript com este questionário."
+ ]
+ },
+ "lecture-understanding-recursion-and-the-call-stack": {
+ "title": "Compreendendo Recursão e a Pilha de Chamadas",
+ "intro": [
+ "Nesta lição, você aprenderá sobre recursão e a pilha de chamadas."
+ ]
+ },
+ "workshop-decimal-to-binary-converter": {
+ "title": "Crie um Conversor de Decimais para Binários",
+ "intro": [
+ "Recursão é um conceito de programação onde uma função chama a si mesma. Isso pode reduzir um problema complexo em subproblemas mais simples, até que se tornem diretos para resolver.",
+ "Neste workshop, você criará um conversor de decimal para binário usando JavaScript. Você praticará os conceitos fundamentais de recursão, explorará a pilha de chamadas e criará uma representação visual do processo de recursão através de uma animação."
+ ]
+ },
+ "lab-permutation-generator": {
+ "title": "Crie um Gerador de Permutações",
+ "intro": [
+ "Para este laboratório, você criará um gerador de permutações que produz todas as permutações possíveis de uma string dada."
+ ]
+ },
+ "review-recursion": {
+ "title": "Revisão sobre recursão",
+ "intro": [
+ "Antes de ser testado sobre recursão, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar o que é recursão e para que ela é utilizada."
+ ]
+ },
+ "quiz-recursion": {
+ "title": "Questionário sobre recursão",
+ "intro": [
+ "Teste seu conhecimento sobre recursão com este questionário."
+ ]
+ },
+ "lecture-understanding-functional-programming": {
+ "title": "Compreendendo Programação Funcional",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre programação funcional e como aninhar funções usando uma técnica chamada currying."
+ ]
+ },
+ "workshop-recipe-ingredient-converter": {
+ "title": "Crie um Conversor de Ingredientes de Receita",
+ "intro": [
+ "Nos ensinamentos anteriores, você aprendeu os conceitos básicos por trás da programação funcional e currying.",
+ "Agora você poderá aplicar o que aprendeu sobre currying e programação funcional criando uma aplicação de conversor de ingredientes de receita."
+ ]
+ },
+ "lab-sorting-visualizer": {
+ "title": "Crie um Visualizador de Ordenação",
+ "intro": [
+ "Para este laboratório, você usará JavaScript para visualizar os passos que o algoritmo Bubble Sort leva para reordenar um array de inteiros."
+ ]
+ },
+ "review-javascript-functional-programming": {
+ "title": "Revisão sobre programação funcional em JavaScript",
+ "intro": [
+ "Antes de ser testado sobre programação funcional, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar conceitos sobre programação funcional, currying e mais."
+ ]
+ },
+ "quiz-javascript-functional-programming": {
+ "title": "Questionário sobre programação funcional em JavaScript",
+ "intro": [
+ "Teste o que você aprendeu sobre programação funcional em JavaScript com este questionário."
+ ]
+ },
+ "lecture-understanding-asynchronous-programming": {
+ "title": "Compreendendo Programação Assíncrona",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre programação assíncrona em JavaScript. Você aprenderá sobre as diferenças entre programação síncrona e assíncrona, como a palavra-chave async funciona, a API Fetch, promessas, async/await, a API Geolocation, e muito mais."
+ ]
+ },
+ "workshop-fcc-authors-page": {
+ "title": "Crie uma Página de Autores do fCC",
+ "intro": [
+ "Um aspecto comum do desenvolvimento para a web é aprender a buscar dados de uma API externa e, em seguida, trabalhar com JavaScript assíncrono.",
+ "Neste workshop, você praticará como usar o método fetch, atualizar dinamicamente o DOM para exibir os dados buscados e paginar seus dados para que você possa carregar os resultados em lotes."
+ ]
+ },
+ "lab-fcc-forum-leaderboard": {
+ "title": "Crie um Quadro de Líderes para o Fórum do fCC",
+ "intro": [
+ "Para este laboratório, você praticará JavaScript assíncrono programando seu próprio painel do fórum do freeCodeCamp."
+ ]
+ },
+ "lab-weather-app": {
+ "title": "Crie um Aplicativo do Tempo",
+ "intro": [
+ "Neste laboratório, você criará um aplicativo de previsão do tempo usando uma API.",
+ "Você praticará como buscar dados da API, armazenar e exibi-los no seu aplicativo."
+ ]
+ },
+ "review-asynchronous-javascript": {
+ "title": "Revisão sobre JavaScript assíncrono",
+ "intro": [
+ "Revise conceitos de JavaScript assíncrono para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-asynchronous-javascript": {
+ "title": "Questionário sobre JavaScript assíncrono",
+ "intro": [
+ "Teste o que você aprendeu sobre JavaScript assíncrono com este questionário."
+ ]
+ },
+ "review-javascript": {
+ "title": "Revisão sobre JavaScript",
+ "intro": [
+ "Antes de fazer o exame preparatório de JavaScript, você deve revisar tudo o que aprendeu sobre JavaScript.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo variáveis, strings, booleanos, funções, objetos, arrays, depuração, trabalhando com o DOM e mais."
+ ]
+ },
+ "kagw": {
+ "title": "258",
+ "intro": []
+ },
+ "lecture-introduction-to-javascript-libraries-and-frameworks": {
+ "title": "Introdução às Bibliotecas e Frameworks JavaScript",
+ "intro": [
+ "Nestes ensinamentos, você receberá uma introdução às bibliotecas e frameworks JavaScript. Você aprenderá sobre os papéis das bibliotecas e frameworks JavaScript, aplicativos de página única (SPAs) e o problema que os cerca, e React, a biblioteca JavaScript para frontend mais popular."
+ ]
+ },
+ "workshop-reusable-mega-navbar": {
+ "title": "Crie um Mega Navbar Reutilizável",
+ "intro": [
+ "Nos ensinamentos anteriores, você aprendeu como trabalhar com componentes no React.",
+ "Neste workshop, você criará um componente Navbar reutilizável usando React."
+ ]
+ },
+ "lab-reusable-footer": {
+ "title": "Crie um Rodapé Reutilizável",
+ "intro": [
+ "Neste laboratório, você usará React para criar um rodapé reutilizável."
+ ]
+ },
+ "lecture-working-with-data-in-react": {
+ "title": "Trabalhando com Dados em React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá como trabalhar com dados no React. Você aprenderá sobre props e como repassá-los, renderização condicional, como renderizar listas, e como usar estilos em linha."
+ ]
+ },
+ "workshop-reusable-profile-card-component": {
+ "title": "Crie um Componente de Cartão de Perfil Reutilizável",
+ "intro": [
+ "Neste workshop, você aprenderá como trabalhar com props criando um componente de cartão de perfil reutilizável."
+ ]
+ },
+ "lab-mood-board": {
+ "title": "Crie um Quadro de Humor",
+ "intro": [
+ "Neste laboratório, você criará um quadro de humor usando React.",
+ "Você praticará como passar dados de um componente pai para um componente filho usando props."
+ ]
+ },
+ "review-react-basics": {
+ "title": "Revisão dos Fundamentos do React",
+ "intro": [
+ "Revise conceitos básicos do React para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-react-basics": {
+ "title": "Questionário básico sobre React",
+ "intro": [
+ "Teste seu conhecimento sobre o básico de React com este questionário."
+ ]
+ },
+ "lecture-working-with-state-and-responding-to-events-in-react": {
+ "title": "Trabalhando com Estado e Respondendo a Eventos no React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre trabalhar com estado e responder a eventos no React."
+ ]
+ },
+ "workshop-toggle-text-app": {
+ "title": "Aplicativo de Texto Alternável",
+ "intro": [
+ "Neste workshop, você continuará aprendendo sobre o hook useState() construindo uma aplicação que oculta e exibe um trecho de texto na tela."
+ ]
+ },
+ "lab-color-picker": {
+ "title": "Crie um Aplicativo de Seletor de Cor",
+ "intro": [
+ "Neste laboratório, você criará um Seletor de Cor.",
+ "Você praticará o uso de state e hooks para gerenciar as propriedades de um elemento."
+ ]
+ },
+ "lecture-understanding-effects-and-referencing-values-in-react": {
+ "title": "Compreendendo Efeitos e Referenciando Valores no React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre efeitos e referenciação de valores no React."
+ ]
+ },
+ "workshop-fruit-search-app": {
+ "title": "Crie um Aplicativo de Busca de Frutas",
+ "intro": [
+ "Neste workshop, você continuará aprendendo sobre o hook useEffect() criando uma aplicação que busca dados de frutas de uma API com base na entrada do usuário e exibe os resultados dinamicamente."
+ ]
+ },
+ "lab-one-time-password-generator": {
+ "title": "Crie um Gerador de Senha de Uso Único",
+ "intro": [
+ "Neste laboratório, você criará um gerador de senha de uso único.",
+ "Você praticará o uso dos hooks useEffect para criar um temporizador e gerar uma senha OTP aleatória."
+ ]
+ },
+ "review-react-state-and-hooks": {
+ "title": "Revisão de Estado e Hooks do React",
+ "intro": [
+ "Antes de ser testado sobre estado e hooks do React, você deve revisar o que aprendeu.",
+ "Abra esta página para revisar o trabalho com estado, hooks customizados e mais."
+ ]
+ },
+ "quiz-react-state-and-hooks": {
+ "title": "Questionário sobre state e hooks em React",
+ "intro": [
+ "Teste o que você aprendeu sobre os hooks useState e useEffect do React com este questionário."
+ ]
+ },
+ "lecture-working-with-forms-in-react": {
+ "title": "Trabalhando com Formulários no React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre trabalhar com formulários no React."
+ ]
+ },
+ "workshop-superhero-application-form": {
+ "title": "Crie um Formulário de Aplicação de Super-herói",
+ "intro": [
+ "Neste workshop, você criará um formulário de aplicação de super-herói."
+ ]
+ },
+ "lab-event-rsvp": {
+ "title": "Crie um RSVP para Evento",
+ "intro": [
+ "Neste laboratório, você criará um formulário RSVP para eventos usando React.",
+ "Você praticará o uso do hook useState para gerenciar a entrada do formulário e exibir as respostas dos usuários."
+ ]
+ },
+ "lecture-working-with-data-fetching-and-memoization-in-react": {
+ "title": "Trabalhando com Busca de Dados e Memoization no React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre busca de dados e memoização no React."
+ ]
+ },
+ "workshop-shopping-list-app": {
+ "title": "Crie um Aplicativo de Lista de Compras",
+ "intro": [
+ "Neste workshop, você usará os hooks useMemo() e useCallback() no React para criar um aplicativo de lista de compras simples. Você aprenderá mais sobre state e o ciclo de vida dos componentes React, e como usar memoização para reduzir re-renderizações e tornar seus aplicativos mais eficientes."
+ ]
+ },
+ "lab-currency-converter": {
+ "title": "Crie um Conversor de Moedas",
+ "intro": [
+ "Para este laboratório, você criará uma aplicação de conversor de moedas.",
+ "Você usará state do React, memoização e componentes controlados para converter entre moedas."
+ ]
+ },
+ "lecture-routing-react-frameworks-and-dependency-management-tools": {
+ "title": "Roteamento, Frameworks React e Ferramentas de Gerenciamento de Dependências",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre roteamento em React, frameworks React e ferramentas de gerenciamento de dependências."
+ ]
+ },
+ "lab-tic-tac-toe": {
+ "title": "Crie um Jogo da Velha",
+ "intro": [
+ "Neste laboratório, você criará um jogo da velha usando React.",
+ "Você praticará o gerenciamento de state, o tratamento de interações do usuário e a atualização dinâmica da interface do usuário."
+ ]
+ },
+ "lecture-react-strategies-and-debugging": {
+ "title": "Estratégias e Depuração do React",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre diferentes estratégias e depuração no React."
+ ]
+ },
+ "review-react-forms-data-fetching-and-routing": {
+ "title": "Formulários React, Busca de Dados e Revisão de Rotas",
+ "intro": [
+ "Antes de fazer o questionário sobre formulários React, busca de dados e rotas, você deve revisar tudo o que aprendeu até agora.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo roteamento, formulários, gerenciamento de estado, passagem de props, busca de dados e mais."
+ ]
+ },
+ "quiz-react-forms-data-fetching-and-routing": {
+ "title": "Quiz de Formulários React, Busca de Dados e Rotas",
+ "intro": [
+ "Teste o que você aprendeu sobre roteamento, formulários e busca de dados com este questionário."
+ ]
+ },
+ "lecture-understanding-performance-in-web-applications": {
+ "title": "Compreendendo o Desempenho em Aplicações Web",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre desempenho em aplicações web."
+ ]
+ },
+ "review-web-performance": {
+ "title": "Revisão sobre desempenho na web",
+ "intro": [
+ "Antes que você faça o questionário sobre desempenho na web, você deve revisar tudo o que aprendeu até agora.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo INP, métricas-chave para medir o desempenho, APIs de Desempenho da Web e mais."
+ ]
+ },
+ "quiz-web-performance": {
+ "title": "Questionário sobre desempenho na web",
+ "intro": [
+ "Teste o que você aprendeu sobre desempenho na web com este questionário."
+ ]
+ },
+ "lecture-understanding-the-different-types-of-testing": {
+ "title": "Compreendendo os Diferentes Tipos de Testes",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre os diferentes tipos de teste."
+ ]
+ },
+ "review-testing": {
+ "title": "Revisão sobre testes",
+ "intro": [
+ "Antes de fazer o questionário de testes, você deve revisar tudo o que aprendeu até agora.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo testes unitários, testes ponta a ponta, testes funcionais e muito mais."
+ ]
+ },
+ "quiz-testing": {
+ "title": "Questionário sobre testes",
+ "intro": [
+ "Teste o que você aprendeu sobre testes com este questionário."
+ ]
+ },
+ "lecture-working-with-css-libraries-and-frameworks": {
+ "title": "Trabalhando com Bibliotecas e Frameworks CSS",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá a como trabalhar coma bibliotecas e frameworks CSS."
+ ]
+ },
+ "workshop-error-message-component": {
+ "title": "Crie um Componente de Mensagem de Erro",
+ "intro": [
+ "Neste workshop, você aprenderá o básico do Tailwind CSS, criando um componente de mensagem de erro."
+ ]
+ },
+ "workshop-tailwind-cta-component": {
+ "title": "Crie um Componente CTA",
+ "intro": [
+ "Neste workshop, você criará um componente de chamada para ação (CTA) usando Tailwind CSS."
+ ]
+ },
+ "workshop-tailwind-pricing-component": {
+ "title": "Crie um Componente de Preços",
+ "intro": [
+ "Neste workshop, você criará um componente de preços usando Tailwind CSS.",
+ "Você praticará o uso de classes utilitárias de grade do Tailwind CSS."
+ ]
+ },
+ "lab-music-shopping-cart-page": {
+ "title": "Crie uma Página de Carrinho de Compras de Música",
+ "intro": [
+ "Neste laboratório, você criará uma página de carrinho de compras de música com Tailwind CSS.",
+ "Você praticará o uso de classes utilitárias do Tailwind CSS para layouts flexbox, cores, pontos de interrupção e mais."
+ ]
+ },
+ "lab-photography-exhibit": {
+ "title": "Projete uma Exposição Fotográfica",
+ "intro": [
+ "Neste laboratório, você praticará o trabalho com o Tailwind CSS ao projetar uma página de exposição fotográfica."
+ ]
+ },
+ "review-css-libraries-and-frameworks": {
+ "title": "Revisão sobre bibliotecas e frameworks do CSS",
+ "intro": [
+ "Antes de fazer o quiz de bibliotecas e frameworks CSS, deve revisar tudo o que aprendeu até agora.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo frameworks CSS, preprocessadores CSS, Sass e mais."
+ ]
+ },
+ "quiz-css-libraries-and-frameworks": {
+ "title": "Questionário sobre bibliotecas e frameworks do CSS",
+ "intro": [
+ "Teste o que você aprendeu sobre Bibliotecas e Frameworks CSS com este questionário."
+ ]
+ },
+ "lecture-introduction-to-typescript": {
+ "title": "Introdução ao TypeScript",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá o que é TypeScript e como usá-lo."
+ ]
+ },
+ "lecture-working-with-generics-and-type-narrowing": {
+ "title": "Trabalhando com Generics e Redução de Tipos",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre genéricos e redução de tipo em TypeScript."
+ ]
+ },
+ "lecture-working-with-typescript-configuration-files": {
+ "title": "Trabalhando com Arquivos de Configuração do TypeScript",
+ "intro": [
+ "Nesta lição, você aprenderá sobre arquivos de configuração do TypeScript e como usá-los."
+ ]
+ },
+ "trvf": {
+ "title": "293",
+ "intro": []
+ },
+ "kwmg": {
+ "title": "294",
+ "intro": []
+ },
+ "nodx": {
+ "title": "295",
+ "intro": []
+ },
+ "erfj": {
+ "title": "296",
+ "intro": []
+ },
+ "muyw": {
+ "title": "297",
+ "intro": []
+ },
+ "review-typescript": {
+ "title": "Revisão sobre TypeScript",
+ "intro": [
+ "Antes de fazer o questionário de TypeScript, você deve revisar tudo o que aprendeu até agora.",
+ "Abra esta página para revisar todos os conceitos ensinados, incluindo tipos de dados em TypeScript, genéricos, estreitamento de tipos e mais."
+ ]
+ },
+ "quiz-typescript": {
+ "title": "Questionário sobre TypeScript",
+ "intro": [
+ "Teste o que você aprendeu sobre TypeScript com este questionário."
+ ]
+ },
+ "review-front-end-libraries": {
+ "title": "Revisão sobre bibliotecas Front-end",
+ "intro": [
+ "Reveja os conceitos de Bibliotecas Front-End para se preparar para o próximo questionário."
+ ]
+ },
+ "rdzk": {
+ "title": "301",
+ "intro": []
+ },
+ "vtpz": {
+ "title": "302",
+ "intro": []
+ },
+ "lecture-introduction-to-python": {
+ "title": "Introdução ao Python",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá os fundamentos do Python. Você aprenderá sobre variáveis, tipos de dados, operadores, controle de fluxo, funções, e mais."
+ ]
+ },
+ "workshop-caesar-cipher": {
+ "title": "Crie uma Cifra de César",
+ "intro": [
+ "Neste workshop, você criará uma cifra de César usando conceitos básicos de Python, tais como strings, condicionais, funções e mais."
+ ]
+ },
+ "lab-rpg-character": {
+ "title": "Crie um personagem de RPG",
+ "intro": [
+ "Neste laboratório, você praticará Python básico construindo um personagem de RPG."
+ ]
+ },
+ "review-python-basics": {
+ "title": "Revisão do Básico de Python",
+ "intro": [
+ "Antes de ser avaliado sobre o básico de Python, você deve revisar o que aprendeu sobre o assunto.",
+ "Nesta página de revisão, você revisará o trabalho com strings, funções, operadores de comparação e mais."
+ ]
+ },
+ "quiz-python-basics": {
+ "title": "Questionário de Noções Básicas de Python",
+ "intro": [
+ "Teste o que você aprendeu sobre noções básicas de Python com este questionário."
+ ]
+ },
+ "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."
+ ]
+ },
+ "workshop-pin-extractor": {
+ "title": "Crie um Extrator de Pins",
+ "intro": [
+ "Neste workshop, você criará uma função para extrair pins secretas ocultas em poemas."
+ ]
+ },
+ "lab-number-pattern-generator": {
+ "title": "Crie um Gerador de Padrões de Números",
+ "intro": [
+ "Neste laboratório você criará um gerador de padrões de números."
+ ]
+ },
+ "review-loops-and-sequences": {
+ "title": "Revisão de Laços e Sequências",
+ "intro": [
+ "Antes de ser avaliado sobre laços e sequências, você deve revisar o que aprendeu sobre eles.",
+ "Abra esta página para revisar conceitos sobre laços, listas, tuplas e alguns de seus métodos comuns."
+ ]
+ },
+ "quiz-loops-and-sequences": {
+ "title": "Questionário de Laços e Sequências",
+ "intro": [
+ "Teste o que você aprendeu sobre laços e sequências em Python com este questionário."
+ ]
+ },
+ "lecture-working-with-dictionaries-and-sets": {
+ "title": "Trabalhando com Dicionários e Conjuntos",
+ "intro": [
+ "Aprenda sobre trabalhar com dicionários e conjuntos nestas lições."
+ ]
+ },
+ "lecture-working-with-modules": {
+ "title": "Trabalhando com Módulos",
+ "intro": ["Aprenda sobre trabalhar com módulos nestas lições."]
+ },
+ "workshop-medical-data-validator": {
+ "title": "Crie um Validador de Dados Médicos",
+ "intro": [
+ "Neste workshop, você praticará o uso de dicionários e conjuntos enquanto valida uma coleção de dados médicos."
+ ]
+ },
+ "lab-user-configuration-manager": {
+ "title": "Crie um Gerenciador de Configurações de Usuário",
+ "intro": [
+ "Neste laboratório, você praticará o uso de dicionários em Python."
+ ]
+ },
+ "review-dictionaries-and-sets": {
+ "title": "Revisão de Dicionários e Conjuntos",
+ "intro": [
+ "Antes de ser avaliado sobre dicionários e conjuntos, você deve revisar o que aprendeu sobre o assunto.",
+ "Abra esta página para revisar conceitos sobre dicionários, conjuntos e como importar módulos."
+ ]
+ },
+ "quiz-dictionaries-and-sets": {
+ "title": "Questionário de Dicionários e Conjuntos",
+ "intro": [
+ "Teste o que você aprendeu sobre dicionários e conjuntos em Python com este questionário."
+ ]
+ },
+ "lecture-understanding-error-handling": {
+ "title": "Compreendendo o Tratamento de Erros",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre tratamento de erros em Python. Você aprenderá sobre os diferentes tipos de erros, algumas boas práticas de depuração, o que são exceções, e como tratá-las."
+ ]
+ },
+ "lab-isbn-validator": {
+ "title": "Depure um Validador de ISBN",
+ "intro": [
+ "Neste laboratório, você começará com um aplicativo com erros, e precisará depurá-lo e corrigir os erros até que funcione corretamente."
+ ]
+ },
+ "review-error-handling": {
+ "title": "Revisão do Tratamento de Erros",
+ "intro": [
+ "Antes de ser avaliado sobre tratamento de erro, você deve revisar o que aprendeu sobre o assunto."
+ ]
+ },
+ "quiz-error-handling": {
+ "title": "Questionário de Tratamento de Erros",
+ "intro": [
+ "Teste o que você aprendeu sobre Tratamento de Erros em Python com este questionário."
+ ]
+ },
+ "lecture-classes-and-objects": {
+ "title": "Classes e Objetos",
+ "intro": ["Aprenda sobre Classes e Objetos nestas lições."]
+ },
+ "workshop-musical-instrument-inventory": {
+ "title": "Crie um Inventário de Instrumentos Musicais",
+ "intro": [
+ "Neste workshop, você aprenderá sobre classes, objetos e métodos em Python criando um inventário simples de instrumentos musicais."
+ ]
+ },
+ "lab-budget-app": {
+ "title": "Crie um Aplicativo de Orçamento",
+ "intro": [
+ "Neste laboratório, você construirá um aplicativo de orçamento e praticará a criação de uma classe e métodos para essa classe."
+ ]
+ },
+ "review-classes-and-objects": {
+ "title": "Revisão de Classes e Objetos",
+ "intro": [
+ "Antes de ser avaliado sobre classes e objetos, você deve revisar o que aprendeu sobre o assunto.",
+ "Abra esta página para revisar conceitos como funcionamento das classes, o que são objetos, métodos, atributos, métodos especiais e mais."
+ ]
+ },
+ "quiz-classes-and-objects": {
+ "title": "Questionário de Classes e Objetos",
+ "intro": [
+ "Teste o que você aprendeu sobre classes e objetos em Python com este questionário."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-placeholder-oop-1": {
+ "title": "Placeholder - Aguardando título",
+ "intro": [""]
+ },
+ "lecture-understanding-inheritance-and-polymorphism": {
+ "title": "Compreendendo Herança e Polimorfismo",
+ "intro": [
+ "Aprenda sobre Compreender Herança e Polimorfismo nestas lições."
+ ]
+ },
+ "workshop-media-catalogue": {
+ "title": "Crie um Catálogo de Mídias",
+ "intro": [
+ "Neste workshop, você criará uma aplicação de catálogo de mídias usando princípios de programação orientada a objetos."
+ ]
+ },
+ "lab-polygon-area-calculator": {
+ "title": "Crie uma Calculadora de Área de Polígonos",
+ "intro": [
+ "Neste laboratório, você usará programação orientada a objetos para calcular as áreas de diferentes polígonos, como quadrados e retângulos."
+ ]
+ },
+ "lecture-understanding-abstraction": {
+ "title": "Compreendendo Abstração",
+ "intro": ["Aprenda sobre Compreender Abstração nestas lições."]
+ },
+ "workshop-placeholder-oop-3": {
+ "title": "Placeholder - Aguardando título",
+ "intro": [""]
+ },
+ "lab-placeholder-oop-3": {
+ "title": "",
+ "intro": [""]
+ },
+ "review-object-oriented-programming": {
+ "title": "Revisão da Programação Orientada a Objetos",
+ "intro": [
+ "Antes de ser avaliado sobre programação orientada a objetos, você deve revisar o que aprendeu sobre o assunto."
+ ]
+ },
+ "quiz-object-oriented-programming": {
+ "title": "Questionário de Programação Orientada a Objetos",
+ "intro": [
+ "Teste o que você aprendeu sobre programação orientada a objetos em Python com este questionário."
+ ]
+ },
+ "lecture-working-with-common-data-structures": {
+ "title": "Trabalhando com Estruturas de Dados Comuns",
+ "intro": [
+ "Aprenda sobre Trabalhar com Estruturas de Dados Comuns nestas lições."
+ ]
+ },
+ "workshop-linked-list-class": {
+ "title": "Crie uma Linked List",
+ "intro": [
+ "Neste workshop, você irá praticar trabalhos com estruturas de dados e construir uma lista ligada."
+ ]
+ },
+ "lab-hash-table": {
+ "title": "Crie uma Tabela Hash",
+ "intro": [
+ "Uma tabela hash é uma estrutura de dados usada para armazenar pares de chave-valor e é otimizada para pesquisas rápidas.",
+ "Neste laboratório, você usará seu conhecimento sobre estruturas de dados para construir uma tabela hash."
+ ]
+ },
+ "review-data-structures": {
+ "title": "Revisão de Estruturas de Dados",
+ "intro": [
+ "Antes de ser avaliado sobre estruturas de dados, você deve revisar o que aprendeu sobre o assunto.",
+ "Abra esta página para revisar conceitos como as diferentes estruturas de dados, algoritmos, complexidade de tempo e espaço, e notação big O."
+ ]
+ },
+ "quiz-data-structures": {
+ "title": "Questionário de Estruturas de Dados",
+ "intro": [
+ "Teste o que você aprendeu sobre estruturas de dados em Python com este questionário."
+ ]
+ },
+ "lecture-searching-and-sorting-algorithms": {
+ "title": "Algoritmos de Busca e Ordenação",
+ "intro": [
+ "Aprenda sobre algoritmos fundamentais de busca e ordenação, incluindo busca linear, busca binária e ordenação por mistura.",
+ "Estas lições cobrem implementações de algoritmos, análise de complexidade de tempo e espaço, e o paradigma de programação dividir para conquistar."
+ ]
+ },
+ "workshop-binary-search": {
+ "title": "Implementar o Algoritmo de Busca Binária",
+ "intro": [
+ "O algoritmo de busca binária é um algoritmo de pesquisa usado para encontrar um item alvo em uma lista ordenada.",
+ "Neste workshop, você implementará o algoritmo de busca binária e retornará o caminho que ele percorreu para encontrar o alvo ou retornará 'Valor não encontrado'."
+ ]
+ },
+ "lab-bisection-method": {
+ "title": "Implemente o Método da Bissecção",
+ "intro": [
+ "Neste laboratório, você implementará o método da bissecção para encontrar a raiz quadrada de um número."
+ ]
+ },
+ "workshop-merge-sort": {
+ "title": "Implemente o Algoritmo de Ordenação por Intercalação",
+ "intro": [
+ "O algoritmo de ordenação por intercalação é um algoritmo de ordenação baseado no princípio \"dividir para conquistar\".",
+ "Neste workshop, você implementará o algoritmo de ordenação por intercalação para ordenar uma lista de números aleatórios."
+ ]
+ },
+ "lab-quicksort": {
+ "title": "Implementar o Algoritmo Quicksort",
+ "intro": [
+ "Neste laboratório, você implementará o algoritmo quicksort para ordenar uma lista de inteiros."
+ ]
+ },
+ "lab-selection-sort": {
+ "title": "Implemente o Algoritmo de Ordenação por Seleção",
+ "intro": [
+ "Neste laboratório você implementará o algoritmo de ordenação por seleção."
+ ]
+ },
+ "lab-luhn-algorithm": {
+ "title": "Implemente o Algoritmo Luhn",
+ "intro": [
+ "Neste laboratório, você implementará o algoritmo Luhn para validar números de identificação, como números de cartão de crédito."
+ ]
+ },
+ "lab-tower-of-hanoi": {
+ "title": "Implemente o Algoritmo da Torre de Hanói",
+ "intro": [
+ "Neste laboratório, você implementará um algoritmo para resolver o quebra-cabeça da Torre de Hanói."
+ ]
+ },
+ "review-searching-and-sorting-algorithms": {
+ "title": "Revisão de Algoritmos de Busca e Ordenação",
+ "intro": [
+ "Antes de ser avaliado sobre algoritmos de busca e ordenação, você deve revisar o que aprendeu sobre o assunto."
+ ]
+ },
+ "quiz-searching-and-sorting-algorithms": {
+ "title": "Questionário de Algoritmos de Busca e Ordenação",
+ "intro": [
+ "Teste o que você aprendeu sobre algoritmos de busca e ordenação em Python com este questionário."
+ ]
+ },
+ "lecture-understanding-graphs-and-trees": {
+ "title": "Compreendendo Grafos e Árvores",
+ "intro": [
+ "Nesta lição, você aprenderá sobre estruturas de dados fundamentais como grafos, árvores, e suas aplicações práticas em ciência da computação."
+ ]
+ },
+ "workshop-shortest-path-algorithm": {
+ "title": "Crie um Algoritmo de Caminho mais Curto",
+ "intro": [""]
+ },
+ "lab-adjacency-list-to-matrix-converter": {
+ "title": "Crie um Conversor de Lista de Adjacência para Matriz",
+ "intro": [
+ "Neste laboratório, você implementará uma função que converte uma representação de lista de adjacência de um gráfico em uma representação de matriz de adjacência."
+ ]
+ },
+ "workshop-breadth-first-search": {
+ "title": "Crie uma Busca em Largura",
+ "intro": [""]
+ },
+ "lab-depth-first-search": {
+ "title": "Implemente o Algoritmo de Busca em Profundidade",
+ "intro": [
+ "Neste laboratório, você implementará o Algoritmo de Busca em Profundidade."
+ ]
+ },
+ "lab-n-queens-problem": {
+ "title": "",
+ "intro": [""]
+ },
+ "review-graphs-and-trees": {
+ "title": "Revisão de Grafos e Árvores",
+ "intro": [
+ "Antes de ser avaliado sobre gráficos e árvores, você deve revisar o que aprendeu sobre o assunto."
+ ]
+ },
+ "quiz-graphs-and-trees": {
+ "title": "Questionário sobre Grafos e Árvores",
+ "intro": [
+ "Teste o que você aprendeu sobre grafos e árvores em Python com este questionário."
+ ]
+ },
+ "lecture-understanding-dynamic-programming": {
+ "title": "Compreendendo a Programação Dinâmica",
+ "intro": [
+ "Nesta lição, você aprenderá sobre programação dinâmica, uma técnica algorítmica usada para resolver problemas complexos de forma eficiente, dividindo-os em subproblemas mais simples."
+ ]
+ },
+ "lab-nth-fibonacci-number": {
+ "title": "Crie um Calculador do enésimo Número de Fibonacci",
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
+ },
+ "review-dynamic-programming": {
+ "title": "Revisão de Programação Dinâmica",
+ "intro": [
+ "Antes de ser avaliado sobre programação dinâmica, você deve revisar o que aprendeu sobre o assunto."
+ ]
+ },
+ "quiz-dynamic-programming": {
+ "title": "Questionário de Programação Dinâmica",
+ "intro": [
+ "Teste o que você aprendeu sobre programação dinâmica em Python com este questionário."
+ ]
+ },
+ "review-python": {
+ "title": "Revisão de Python",
+ "intro": [
+ "Revise conceitos de Python para se preparar para o próximo exame."
+ ]
+ },
+ "lecture-understanding-the-command-line-and-working-with-bash": {
+ "title": "Entendendo a Linha de Comando e Trabalhando com Bash",
+ "intro": [
+ "Aprenda sobre a Linha de Comando e Trabalhar com Bash nestas lições."
+ ]
+ },
+ "workshop-bash-boilerplate": {
+ "title": "Crie um boilerplate",
+ "intro": [
+ "O terminal permite que você envie comandos de texto para o seu computador que podem manipular o sistema de arquivos, executar programas, automatizar tarefas e muito mais.",
+ "Neste workshop de 170 aulas, você aprenderá comandos do terminal criando o boilerplate de um site usando apenas a linha de comando."
+ ]
+ },
+ "review-bash-commands": {
+ "title": "Revisão sobre comandos no Bash",
+ "intro": [
+ "Reveja os conceitos de Comandos no Bash para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-bash-commands": {
+ "title": "Questionário sobre comandos no Bash",
+ "intro": [
+ "Teste o que você aprendeu sobre comandos do bash com este questionário."
+ ]
+ },
+ "lecture-working-with-relational-databases": {
+ "title": "Trabalhando com Bancos de Dados Relacionais",
+ "intro": [
+ "Aprenda como trabalhar com Bancos de Dados Relacionais nestas lições."
+ ]
+ },
+ "workshop-database-of-video-game-characters": {
+ "title": "Crie um Banco de Dados de Personagens de Video Game",
+ "intro": [
+ "Um banco de dados relacional organiza dados em tabelas que estão interligadas através de relacionamentos.",
+ "Neste workshop de 165 aulas, você aprenderá o básico sobre banco de dados relacional criando um banco de dados PostgreSQL preenchido com personagens de video game."
+ ]
+ },
+ "lab-celestial-bodies-database": {
+ "title": "Crie um banco de dados de corpos celestiais",
+ "intro": [
+ "Para este projeto, você vai construir um banco de dados de corpos celestiais usando PostgreSQL."
+ ]
+ },
+ "review-relational-database": {
+ "title": "Revisão sobre banco de dados Relacional",
+ "intro": [
+ "Reveja os conceitos de Banco de Dados Relacional para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-relational-database": {
+ "title": "Questionário sobre bancos de dados relacionais",
+ "intro": [
+ "Teste o que você aprendeu sobre bancos de dados relacionais com este questionário."
+ ]
+ },
+ "lecture-understanding-bash-scripting": {
+ "title": "Entendendo Scripts em Bash",
+ "intro": ["Aprenda sobre Bash Scripting nestas lições."]
+ },
+ "workshop-bash-five-programs": {
+ "title": "Crie cinco programas",
+ "intro": [
+ "Os scripts do Bash combinam comandos de terminal e lógica em programas que podem executar ou automatizar tarefas e muito mais.",
+ "Neste workshop de 220 aulas, você aprenderá mais comandos do terminal e como usá-los dentro de scripts do Bash, criando cinco programas pequenos."
+ ]
+ },
+ "review-bash-scripting": {
+ "title": "Revisão sobre scripts do Bash",
+ "intro": [
+ "Revise os conceitos de script do bash que você aprendeu para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-bash-scripting": {
+ "title": "Questionário sobre scripts em Bash",
+ "intro": [
+ "Teste o que você aprendeu sobre scripts do bash neste questionário."
+ ]
+ },
+ "lecture-working-with-sql": {
+ "title": "Trabalhando Com SQL",
+ "intro": [
+ "Nestes ensinamentos, você aprenderá sobre injeção SQL, normalização, e o problema N+1."
+ ]
+ },
+ "workshop-sql-student-database-part-1": {
+ "title": "Crie um banco de dados de alunos: parte 1",
+ "intro": [
+ "O SQL, ou linguagem de consulta estruturada, é a linguagem de comunicação com um banco de dados relacional.",
+ "Neste workshop de 140 aulas, você criará um script do Bash que utiliza SQL para inserir informações sobre seus alunos de ciência da computação no PostgreSQL."
+ ]
+ },
+ "workshop-sql-student-database-part-2": {
+ "title": "Crie um banco de dados de alunos: parte 2",
+ "intro": [
+ "Comandos join do SQL são usados para combinar informações de várias tabelas em um banco de dados relacional",
+ "Neste workshop de 140 aulas, você completará seu banco de dados de alunos, mergulhando mais fundo nos comandos SQL."
+ ]
+ },
+ "lab-world-cup-database": {
+ "title": "Crie um banco de dados da Copa do Mundo",
+ "intro": [
+ "Para este projeto, você criará um script do Bash que insere informações de jogos da Copa do Mundo no PostgreSQL. Depois, você vai consultar o banco de dados para obter estatísticas úteis."
+ ]
+ },
+ "workshop-kitty-ipsum-translator": {
+ "title": "Crie um tradutor de Kitty Ipsum",
+ "intro": [
+ "Há mais comandos do Bash do que você imagina.",
+ "Neste workshop de 140 aulas, você aprenderá alguns comandos mais complexos e detalhes de como funcionam os comandos."
+ ]
+ },
+ "workshop-bike-rental-shop": {
+ "title": "Crie uma loja de aluguel de bicicletas",
+ "intro": [
+ "Neste workshop de 210 aulas, você vai construir um programa de Bash interativo que armazena informações de aluguel para sua loja de aluguel de bicicletas utilizando PostgreSQL."
+ ]
+ },
+ "lab-salon-appointment-scheduler": {
+ "title": "Criar um agendador de compromissos do salão de beleza",
+ "intro": [
+ "Para este laboratório, você criará um programa de bash interativo que utiliza PostgreSQL para acompanhar os clientes e horários marcados em seu salão."
+ ]
+ },
+ "review-bash-and-sql": {
+ "title": "Revisão sobre Bash e SQL",
+ "intro": [
+ "Revise os conceitos de Bash e SQL para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-bash-and-sql": {
+ "title": "Questionário sobre Bash e SQL",
+ "intro": [
+ "Teste o que você aprendeu neste questionário sobre Bash e SQL."
+ ]
+ },
+ "lecture-working-with-nano": {
+ "title": "Trabalhando Com Nano",
+ "intro": ["Aprenda sobre Nano nesta lição."]
+ },
+ "workshop-castle": {
+ "title": "Crie um castelo",
+ "intro": [
+ "O Nano é um programa que permite editar arquivos diretamente no terminal.",
+ "Neste workshop de 40 aulas, você aprenderá a editar arquivos no terminal com o nano e construirá um castelo."
+ ]
+ },
+ "lecture-introduction-to-git-and-github": {
+ "title": "Introdução ao Git e GitHub",
+ "intro": ["Aprenda como trabalhar com Git e GitHub nestas lições."]
+ },
+ "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
+ "title": "Trabalhando com Revisões de Código, Ramificações, Implantação e CI/CD",
+ "intro": [
+ "Aprenda sobre revisões de código, ramificação, implantação, e CI/CD nestas lições."
+ ]
+ },
+ "workshop-sql-reference-object": {
+ "title": "Criar um objeto de referência SQL",
+ "intro": [
+ "O Git é um sistema de controle de versão que mantém o controle de todas as alterações feitas em sua base de código.",
+ "Neste workshop de 240 aulas, você aprenderá como o Git mantém o controle do seu código, criando um objeto que contém comandos SQL comumente usados."
+ ]
+ },
+ "lab-periodic-table-database": {
+ "title": "Crie um banco de dados da tabela periódica",
+ "intro": [
+ "Para este laboratório, você criará um script do Bash para obter informações sobre elementos químicos de um banco de dados de tabela periódica."
+ ]
+ },
+ "lab-number-guessing-game": {
+ "title": "Crie um jogo de adivinhação de números",
+ "intro": [
+ "Para este laboratório, você usará scripts de Bash, PostgreSQL e o Git para criar um jogo de sugestões de números que será executado no terminal e que gravará as informações de usuários."
+ ]
+ },
+ "review-git": {
+ "title": "Revisão de Git",
+ "intro": [
+ "Revise os conceitos de Git para se preparar para o próximo questionário."
+ ]
+ },
+ "quiz-git": {
+ "title": "Questionário sobre o Git",
+ "intro": [
+ "Teste o que você aprendeu sobre o Git com este questionário."
+ ]
+ },
+ "review-relational-databases": {
+ "title": "Revisão de Bancos de Dados Relacionais",
+ "intro": [
+ "Revise os conceitos de bancos de dados relacionais para se preparar para o próximo questionário."
+ ]
+ },
+ "exam-certified-full-stack-developer": {
+ "title": "Exame para Desenvolvedor Full Stack Certificado",
+ "intro": [
+ "Passe neste exame para se tornar um Desenvolvedor Full Stack Certificado."
+ ]
+ }
+ }
+ },
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
]
},
"workshop-greeting-bot": {
@@ -3016,7 +5142,7 @@
"lecture-working-with-data-types": {
"title": "Working with Data Types",
"intro": [
- "In the following lessons, 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."
+ "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": {
@@ -3035,7 +5161,7 @@
"lecture-working-with-strings-in-javascript": {
"title": "Working with Strings in JavaScript",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3048,25 +5174,25 @@
"lecture-working-with-string-character-methods": {
"title": "Working with String Character Methods",
"intro": [
- "In this lesson 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."
+ "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 lesson you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method."
+ "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."
]
},
"lecture-working-with-string-formatting-methods": {
"title": "Working with String Formatting Methods",
"intro": [
- "In this lesson 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."
+ "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."
]
},
"lecture-working-with-string-modification-methods": {
"title": "Working with String Modification Methods",
"intro": [
- "In this lesson 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."
+ "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."
]
},
"review-javascript-strings": {
@@ -3083,31 +5209,31 @@
"lecture-working-with-numbers-and-arithmetic-operators": {
"title": "Working with Numbers and Arithmetic Operators",
"intro": [
- "In these lessons you will learn about the number type, arithmetic operators, and using them with numbers and strings."
+ "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
]
},
"lecture-working-with-operator-behavior": {
"title": "Working with Operator Behavior",
"intro": [
- "In these lessons you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
+ "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
]
},
"lecture-working-with-comparison-and-boolean-operators": {
"title": "Working with Comparison and Boolean Operators",
"intro": [
- "In these lessons you will learn about booleans, and equality and inequality operators, and other comparison operators."
+ "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
]
},
"lecture-working-with-unary-and-bitwise-operators": {
"title": "Working with Unary and Bitwise Operators",
"intro": [
- "In these lessons you will learn about unary and bitwise operators."
+ "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 lessons you will learn about conditional statements, binary logical operators, and the Math object."
+ "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object."
]
},
"workshop-mathbot": {
@@ -3126,7 +5252,7 @@
"lecture-working-with-numbers-and-common-number-methods": {
"title": "Working with Numbers and Common Number Methods",
"intro": [
- "In these lessons, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
+ "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()."
]
},
"review-javascript-math": {
@@ -3145,7 +5271,7 @@
"lecture-understanding-comparisons-and-conditionals": {
"title": "Understanding Comparisons and Conditionals",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3164,7 +5290,7 @@
"lecture-working-with-functions": {
"title": "Working with Functions",
"intro": [
- "In these lessons, 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. "
+ "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": {
@@ -3235,7 +5361,7 @@
"lecture-working-with-arrays": {
"title": "Working with Arrays",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3266,7 +5392,7 @@
"lecture-working-with-common-array-methods": {
"title": "Working with Common Array Methods",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3283,19 +5409,19 @@
"lecture-introduction-to-javascript-objects-and-their-properties": {
"title": "Introduction to JavaScript Objects and Their Properties",
"intro": [
- "In these lessons, 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."
+ "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-optional-chaining-and-object-destructuring": {
"title": "Working with Optional Chaining and Object Destructuring",
"intro": [
- "In these lessons, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
+ "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
]
},
"lecture-working-with-json": {
"title": "Working with JSON",
"intro": [
- "In these lessons, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods."
+ "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."
]
},
"workshop-recipe-tracker": {
@@ -3331,7 +5457,7 @@
"lecture-working-with-loops": {
"title": "Working with Loops",
"intro": [
- "Loops are an essential part of JavaScript. That's why the following lessons have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
+ "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": {
@@ -3377,12 +5503,6 @@
"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": [
@@ -3397,19 +5517,19 @@
"lecture-working-with-types-and-objects": {
"title": "Working with Types and Objects",
"intro": [
- "In these lessons you will learn about string objects, the toString() method, the Number constructor and more."
+ "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 lessons you will learn about common practices for naming variables and functions, and how to work with arrays."
+ "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 lessons you will learn what are linters and formatters, what is memory management, and closures."
+ "In these lectures you will learn what are linters and formatters, what is memory management, and closures."
]
},
"lab-largest-number-finder": {
@@ -3447,13 +5567,7 @@
"lecture-the-var-keyword-and-hoisting": {
"title": "The var Keyword and Hoisting",
"intro": [
- "In these lessons, 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."
+ "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-falsy-remover": {
@@ -3472,19 +5586,7 @@
"lecture-understanding-modules-imports-and-exports": {
"title": "Understanding Modules, Imports, and Exports",
"intro": [
- "In this lesson, 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."
+ "In this lecture, you will learn about modules, imports, and exports in JavaScript."
]
},
"lab-password-generator": {
@@ -3499,24 +5601,12 @@
"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-optional-arguments-sum-function": {
"title": "Build an Optional Arguments Sum Function",
"intro": [
@@ -3539,7 +5629,7 @@
"lecture-working-with-higher-order-functions-and-callbacks": {
"title": "Working with Higher Order Functions and Callbacks",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3566,42 +5656,6 @@
"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-sum-all-primes-calculator": {
- "title": "Build a Prime Number Sum Calculator",
- "intro": [
- "In this lab you will build a sum all primes 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": [
@@ -3612,13 +5666,13 @@
"quiz-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Quiz",
"intro": [
- "Test your knowledge of JavaScript higher order functions with this quiz."
+ "Test what you've learned about JavaScript higher order functions with this quiz."
]
},
"lecture-working-with-the-dom-click-events-and-web-apis": {
"title": "Working with the DOM, Click Events, and Web APIs",
"intro": [
- "In these lessons, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs."
+ "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": {
@@ -3627,12 +5681,6 @@
"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": [
@@ -3642,7 +5690,7 @@
"lecture-understanding-the-event-object-and-event-delegation": {
"title": "Understanding the Event Object and Event Delegation",
"intro": [
- "In these lessons, you will learn about the event object, the change event, event bubbling, and event delegation."
+ "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
]
},
"workshop-music-instrument-filter": {
@@ -3693,7 +5741,7 @@
"lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
"title": "Understanding aria-expanded, aria-live, and Common ARIA States",
"intro": [
- "In these lessons you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
+ "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states."
]
},
"workshop-planets-tablist": {
@@ -3731,7 +5779,7 @@
"lecture-debugging-techniques": {
"title": "Debugging Techniques",
"intro": [
- "In these lessons, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging."
+ "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": {
@@ -3754,7 +5802,7 @@
"lecture-working-with-regular-expressions": {
"title": "Working with Regular Expressions",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3781,25 +5829,6 @@
"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."
- ]
- },
"review-javascript-regular-expressions": {
"title": "JavaScript Regular Expressions Review",
"intro": [
@@ -3816,7 +5845,7 @@
"lecture-understanding-form-validation": {
"title": "Understanding Form Validation",
"intro": [
- "In these lessons, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
]
},
"workshop-calorie-counter": {
@@ -3849,7 +5878,7 @@
"lecture-working-with-dates": {
"title": "Working with Dates",
"intro": [
- "In these lessons, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
+ "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": {
@@ -3874,7 +5903,7 @@
"lecture-working-with-audio-and-video": {
"title": "Working with Audio and Video",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -3906,7 +5935,7 @@
"lecture-working-with-maps-and-sets": {
"title": "Working with Maps and Sets",
"intro": [
- "In these lessons, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps."
+ "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": {
@@ -3938,7 +5967,7 @@
"lecture-working-with-client-side-storage-and-crud-operations": {
"title": "Working with Client-Side Storage and CRUD Operations",
"intro": [
- "In these lessons, 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, IndexDB, and much more."
+ "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, IndexDB, and much more."
]
},
"workshop-todo-app": {
@@ -3971,7 +6000,7 @@
"lecture-understanding-how-to-work-with-classes-in-javascript": {
"title": "Understanding How to Work with Classes in JavaScript",
"intro": [
- "In these lessons, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more."
+ "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": {
@@ -4010,14 +6039,14 @@
"lecture-understanding-recursion-and-the-call-stack": {
"title": "Understanding Recursion and the Call Stack",
"intro": [
- "In this lesson, you will learn about recursion and the call stack."
+ "In this lecture, you will learn about recursion and the call stack."
]
},
"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."
+ "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": {
@@ -4040,13 +6069,13 @@
"lecture-understanding-functional-programming": {
"title": "Understanding Functional Programming",
"intro": [
- "In these lessons, you will learn about functional programming and how to nest functions using a technique called currying."
+ "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 lessons, you learned the core concepts behind functional programming and currying.",
+ "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."
]
},
@@ -4072,7 +6101,7 @@
"lecture-understanding-asynchronous-programming": {
"title": "Understanding Asynchronous Programming",
"intro": [
- "In these lessons, 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."
+ "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": {
@@ -4095,7 +6124,7 @@
"You'll practice how to fetch data from the API, store and display it on your app."
]
},
- "review-asynchronous-javascript": {
+ "review-asynchronous-javascrip": {
"title": "Asynchronous JavaScript Review",
"intro": [
"Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
@@ -4114,1103 +6143,291 @@
"Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
]
},
- "kagw": {
- "title": "258",
- "intro": []
- },
- "lecture-introduction-to-javascript-libraries-and-frameworks": {
- "title": "Introduction to JavaScript Libraries and Frameworks",
- "intro": [
- "In these lessons, you will get an introduction to JavaScript libraries and frameworks. You will learn about the roles of JavaScript libraries and frameworks, single page applications (SPAs) and the issue surrounding them, and React, the most popular frontend JavaScript library."
- ]
- },
- "workshop-reusable-mega-navbar": {
- "title": "Build a Reusable Mega Navbar",
- "intro": [
- "In the previous lessons, you learned how to work with components in React.",
- "In this workshop, you will build a reusable Navbar component using React."
- ]
- },
- "lab-reusable-footer": {
- "title": "Build a Reusable Footer",
- "intro": ["In this lab, you'll use React to build a reusable footer."]
- },
- "lecture-working-with-data-in-react": {
- "title": "Working with Data in React",
- "intro": [
- "In these lessons, you will learn how to work with data in React. You will learn about props and how to pass them around, conditional rendering, how to render lists, and how to use inline styles."
- ]
- },
- "workshop-reusable-profile-card-component": {
- "title": "Build a Reusable Profile Card Component",
- "intro": [
- "In this workshop, you will learn how to work with props by building a reusable profile card component."
- ]
- },
- "lab-mood-board": {
- "title": "Build a Mood Board",
- "intro": [
- "In this lab, you'll create a mood board using React.",
- "You'll practice how to pass data from a parent component to a child component using props."
- ]
- },
- "review-react-basics": {
- "title": "React Basics Review",
- "intro": [
- "Review basic React concepts to prepare for the upcoming quiz."
- ]
- },
- "quiz-react-basics": {
- "title": "React Basics Quiz",
- "intro": ["Test your knowledge of React basics with this quiz."]
- },
- "lecture-working-with-state-and-responding-to-events-in-react": {
- "title": "Working with State and Responding to Events in React",
- "intro": [
- "In these lessons, you will learn about working with state and responding to events with React."
- ]
- },
- "workshop-toggle-text-app": {
- "title": "Toggle Text App",
- "intro": [
- "In this workshop, you will continue to learn about the useState() hook by building an application that hides and shows a piece of text on the screen."
- ]
- },
- "lab-color-picker": {
- "title": "Build a Color Picker App",
- "intro": [
- "In this lab you'll build a Color Picker.",
- "You'll practice using state and hooks to manage the properties of an element."
- ]
- },
- "lecture-understanding-effects-and-referencing-values-in-react": {
- "title": "Understanding Effects and Referencing Values in React",
- "intro": [
- "In these lessons, you will learn about effects and referencing values with React."
- ]
- },
- "workshop-fruit-search-app": {
- "title": "Build a Fruit Search App",
- "intro": [
- "In this workshop, you will continue to learn about the useEffect() hook by building an application that fetches fruit data from an API based on user input and displays the results dynamically."
- ]
- },
- "lab-one-time-password-generator": {
- "title": "Build a One-Time Password Generator",
- "intro": [
- "In this lab you'll build a one-time password generator.",
- "You'll practice using the useEffect hooks to create a timer and generate a random OTP."
- ]
- },
- "review-react-state-and-hooks": {
- "title": "React State and Hooks Review",
- "intro": [
- "Before you're quizzed on React state and hooks, you should review what you've learned.",
- "Open up this page to review working with state, custom hooks and more."
- ]
- },
- "quiz-react-state-and-hooks": {
- "title": "React State and Hooks Quiz",
- "intro": [
- "Test what you've learned about React's useState and useEffect hooks with this quiz."
- ]
- },
- "lecture-working-with-forms-in-react": {
- "title": "Working with Forms in React",
- "intro": [
- "In these lessons, you will learn about working with forms in React."
- ]
- },
- "workshop-superhero-application-form": {
- "title": "Build a Superhero Application Form",
- "intro": [
- "In this workshop, you will build a superhero application form."
- ]
- },
- "lab-event-rsvp": {
- "title": "Build an Event RSVP",
- "intro": [
- "In this lab, you'll build an Event RSVP form using React.",
- "You'll practice using the useState hook to manage form input and display user responses."
- ]
- },
- "lecture-working-with-data-fetching-and-memoization-in-react": {
- "title": "Working with Data Fetching and Memoization in React",
- "intro": [
- "In these lessons, you will learn about data fetching and memoization in React."
- ]
- },
- "workshop-shopping-list-app": {
- "title": "Build a Shopping List App",
- "intro": [
- "In this workshop, you'll use the useMemo() and useCallback() hooks in React to build a simple shopping list app. You'll learn more about state and the lifecycle of React components, and how to use memoization to reduce re-renders and make your apps more efficient."
- ]
- },
- "lab-currency-converter": {
- "title": "Build a Currency Converter",
- "intro": [
- "For this lab, you'll build a currency converter app.",
- "You'll use React state, memoization, and controlled components to convert between currencies."
- ]
- },
- "lecture-routing-react-frameworks-and-dependency-management-tools": {
- "title": "Routing, React Frameworks, and Dependency Management Tools",
- "intro": [
- "In these lessons, you will learn about routing in React, React frameworks, and dependency management tools."
- ]
- },
- "lab-tic-tac-toe": {
- "title": "Build a Tic-Tac-Toe Game",
- "intro": [
- "In this lab, you'll build a Tic-Tac-Toe game using React.",
- "You'll practice managing state, handling user interactions, and updating the UI dynamically."
- ]
- },
- "lecture-react-strategies-and-debugging": {
- "title": "React Strategies and Debugging",
- "intro": [
- "In these lessons, you will learn about different strategies and debugging in React."
- ]
- },
- "review-react-forms-data-fetching-and-routing": {
- "title": "React Forms, Data Fetching and Routing Review",
- "intro": [
- "Before you take the React forms, data fetching and routing quiz, you should review everything you've learned so far.",
- "Open up this page, to review all of the concepts taught including routing, forms, state management, prop drilling, data fetching and more."
- ]
- },
- "quiz-react-forms-data-fetching-and-routing": {
- "title": "React Forms, Data Fetching and Routing Quiz",
- "intro": [
- "Test what you've learned about routing, forms, and data fetching with this quiz."
- ]
- },
- "lecture-understanding-performance-in-web-applications": {
- "title": "Understanding Performance in Web Applications",
- "intro": [
- "In these lessons, you will learn performance in web applications."
- ]
- },
- "review-web-performance": {
- "title": "Web Performance Review",
- "intro": [
- "Before you take the web performance quiz, you should review everything you've learned so far.",
- "Open up this page to review all of the concepts taught including INP, key metrics for measuring performance, Performance Web APIs and more."
- ]
- },
- "quiz-web-performance": {
- "title": "Web Performance Quiz",
- "intro": [
- "Test what you've learned about Web Performance with this quiz."
- ]
- },
- "lecture-understanding-the-different-types-of-testing": {
- "title": "Understanding the Different Types of Testing",
- "intro": [
- "In these lessons, you will learn about the different types of testing."
- ]
- },
- "review-testing": {
- "title": "Testing Review",
- "intro": [
- "Before you take the testing quiz, you should review everything you've learned so far.",
- "Open up this page to review all of the concepts taught including unit testing, end-to-end testing, functional testing and more."
- ]
- },
- "quiz-testing": {
- "title": "Testing Quiz",
- "intro": ["Test what you've learned on testing with this quiz."]
- },
- "lecture-working-with-css-libraries-and-frameworks": {
- "title": "Working with CSS Libraries and Frameworks",
- "intro": [
- "In these lessons, you will learn how to work with CSS libraries and frameworks."
- ]
- },
- "workshop-error-message-component": {
- "title": "Build an Error Message Component",
- "intro": [
- "In this workshop, you will learn the basics of Tailwind CSS by building out an error message component."
- ]
- },
- "workshop-tailwind-cta-component": {
- "title": "Build a CTA Component",
- "intro": [
- "In this workshop, you will build a call to action (CTA) component using Tailwind CSS."
- ]
- },
- "workshop-tailwind-pricing-component": {
- "title": "Build a Pricing Component",
- "intro": [
- "In this workshop, you will build a pricing component using Tailwind CSS.",
- "You will practice working with Tailwind CSS grid utility classes."
- ]
- },
- "lab-music-shopping-cart-page": {
- "title": "Build a Music Shopping Cart Page",
- "intro": [
- "In this lab, you will build a music shopping cart page with Tailwind CSS.",
- "You will practice working with Tailwind CSS utility classes for flexbox layouts, colors, breakpoints and more."
- ]
- },
- "lab-photography-exhibit": {
- "title": "Design a Photography Exhibit",
- "intro": [
- "In this lab, you will practice working with Tailwind CSS by designing a photography exhibit webpage."
- ]
- },
- "review-css-libraries-and-frameworks": {
- "title": "CSS Libraries and Frameworks Review",
- "intro": [
- "Before you take the CSS libraries and frameworks quiz, you should review everything you've learned so far.",
- "Open up this page to review all of the concepts taught including CSS frameworks, CSS preprocessors, Sass and more."
- ]
- },
- "quiz-css-libraries-and-frameworks": {
- "title": "CSS Libraries and Frameworks Quiz",
- "intro": [
- "Test what you've learned about CSS Libraries and Frameworks with this quiz."
- ]
- },
- "lecture-introduction-to-typescript": {
- "title": "Introduction to TypeScript",
- "intro": [
- "In these lessons, you will learn what TypeScript is and how to use it."
- ]
- },
- "lecture-working-with-generics-and-type-narrowing": {
- "title": "Working with Generics and Type Narrowing",
- "intro": [
- "In these lessons, you will learn about generics and type narrowing in TypeScript."
- ]
- },
- "lecture-working-with-typescript-configuration-files": {
- "title": "Working with TypeScript Configuration Files",
- "intro": [
- "In this lesson, you will learn about TypeScript configuration files and how to use them."
- ]
- },
- "trvf": {
- "title": "293",
- "intro": []
- },
- "kwmg": {
- "title": "294",
- "intro": []
- },
- "nodx": {
- "title": "295",
- "intro": []
- },
- "erfj": {
- "title": "296",
- "intro": []
- },
- "muyw": {
- "title": "297",
- "intro": []
- },
- "review-typescript": {
- "title": "Typescript Review",
- "intro": [
- "Before you take the TypeScript quiz, you should review everything you've learned so far.",
- "Open up this page to review all of the concepts taught including data types in TypeScript, generics, type narrowing and more."
- ]
- },
- "quiz-typescript": {
- "title": "TypeScript Quiz",
- "intro": ["Test what you've learned on Typescript with this quiz."]
- },
- "review-front-end-libraries": {
- "title": "Front End Libraries Review",
- "intro": [
- "Review the Front End Libraries concepts to prepare for the upcoming quiz."
- ]
- },
- "rdzk": {
- "title": "301",
- "intro": []
- },
- "vtpz": {
- "title": "302",
- "intro": []
- },
- "lecture-introduction-to-python": {
- "title": "Introduction to Python",
- "intro": [
- "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more."
- ]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "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-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."
- ]
- },
- "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-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
- },
- "lab-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "lecture-understanding-abstraction": {
- "title": "Understanding Abstraction",
- "intro": ["Learn about Understanding Abstraction in these lessons."]
- },
- "workshop-placeholder-oop-3": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
- },
- "lab-placeholder-oop-3": {
- "title": "",
- "intro": [""]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "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."
- ]
- },
- "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": "Build a Shortest Path Algorithm",
- "intro": [""]
- },
- "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": "Build a Breadth First Search",
- "intro": [""]
- },
- "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": "",
- "intro": [""]
- },
- "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."
- ]
- },
- "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": [""]
- },
- "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."
- ]
- },
- "review-python": {
- "title": "Python Review",
- "intro": ["Review Python concepts to prepare for the upcoming exam."]
- },
- "lecture-understanding-the-command-line-and-working-with-bash": {
- "title": "Understanding the Command Line and Working with Bash",
- "intro": [
- "Learn about the Command Line and Working with Bash in these lessons."
- ]
- },
- "workshop-bash-boilerplate": {
- "title": "Build a Boilerplate",
- "intro": [
- "The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
- "In this 170-lesson workshop, you will learn terminal commands by creating a website boilerplate using only the command line."
- ]
- },
- "review-bash-commands": {
- "title": "Bash Commands Review",
- "intro": [
- "Review the Bash Commands concepts to prepare for the upcoming quiz."
- ]
- },
- "quiz-bash-commands": {
- "title": "Bash Commands Quiz",
- "intro": ["Test what you've learned bash commands with this quiz."]
- },
- "lecture-working-with-relational-databases": {
- "title": "Working with Relational Databases",
- "intro": [
- "Learn how to work with Relational Databases in these lessons."
- ]
- },
- "workshop-database-of-video-game-characters": {
- "title": "Build a Database of Video Game Characters",
- "intro": [
- "A relational database organizes data into tables that are linked together through relationships.",
- "In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
- ]
- },
- "lab-celestial-bodies-database": {
- "title": "Build a Celestial Bodies Database",
- "intro": [
- "For this project, you will build a database of celestial bodies using PostgreSQL."
- ]
- },
- "review-relational-database": {
- "title": "Relational Database Review",
- "intro": [
- "Review the Relational Database concepts to prepare for the upcoming quiz."
- ]
- },
- "quiz-relational-database": {
- "title": "Relational Database Quiz",
- "intro": [
- "Test what you've learned on relational databases with this quiz."
- ]
- },
- "lecture-understanding-bash-scripting": {
- "title": "Understanding Bash Scripting",
- "intro": ["Learn about Bash Scripting in these lessons."]
- },
- "workshop-bash-five-programs": {
- "title": "Build Five Programs",
- "intro": [
- "Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
- "In this 220-lesson workshop, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
- ]
- },
- "review-bash-scripting": {
- "title": "Bash Scripting Review",
- "intro": [
- "Review the bash scripting concepts you've learned to prepare for the upcoming quiz."
- ]
- },
- "quiz-bash-scripting": {
- "title": "Bash Scripting Quiz",
- "intro": ["Test what you've learned on bash scripting in this quiz."]
- },
- "lecture-working-with-sql": {
- "title": "Working With SQL",
- "intro": [
- "In these lessons, you will learn about SQL injection, normalization, and the N+1 problem."
- ]
- },
- "workshop-sql-student-database-part-1": {
- "title": "Build a Student Database: Part 1",
- "intro": [
- "SQL, or Structured Query Language, is the language for communicating with a relational database.",
- "In this 140-lesson workshop, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
- ]
- },
- "workshop-sql-student-database-part-2": {
- "title": "Build a Student Database: Part 2",
- "intro": [
- "SQL join commands are used to combine information from multiple tables in a relational database",
- "In this 140-lesson workshop, you will complete your student database while diving deeper into SQL commands."
- ]
- },
- "lab-world-cup-database": {
- "title": "Build a World Cup Database",
- "intro": [
- "For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
- ]
- },
- "workshop-kitty-ipsum-translator": {
- "title": "Build a Kitty Ipsum Translator",
- "intro": [
- "There's more to Bash commands than you might think.",
- "In this 140-lesson workshop, you will learn some more complex commands, and the details of how commands work."
- ]
- },
- "workshop-bike-rental-shop": {
- "title": "Build a Bike Rental Shop",
- "intro": [
- "In this 210-lesson workshop, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
- ]
- },
- "lab-salon-appointment-scheduler": {
- "title": "Build a Salon Appointment Scheduler",
- "intro": [
- "For this lab, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
- ]
- },
- "review-bash-and-sql": {
- "title": "Bash and SQL Review",
- "intro": [
- "Review the Bash and SQL concepts to prepare for the upcoming quiz."
- ]
- },
- "quiz-bash-and-sql": {
- "title": "Bash and SQL Quiz",
- "intro": ["Test what you've learned in this quiz on Bash and SQL."]
- },
- "lecture-working-with-nano": {
- "title": "Working With Nano",
- "intro": ["Learn about Nano in this lesson."]
- },
- "workshop-castle": {
- "title": "Build a Castle",
- "intro": [
- "Nano is a program that allows you to edit files right in the terminal.",
- "In this 40-lesson workshop, you will learn how to edit files in the terminal with Nano while building a castle."
- ]
- },
- "lecture-introduction-to-git-and-github": {
- "title": "Introduction to Git and GitHub",
- "intro": ["Learn how to work with Git and GitHub in these lessons."]
- },
- "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
- "title": "Working With Code Reviews, Branching, Deployment, and CI/CD",
- "intro": [
- "Learn about code reviews, branching, deployment, and CI/CD in these lessons."
- ]
- },
- "workshop-sql-reference-object": {
- "title": "Build an SQL Reference Object",
- "intro": [
- "Git is a version control system that keeps track of all the changes you make to your codebase.",
- "In this 240-lesson workshop, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
- ]
- },
- "lab-periodic-table-database": {
- "title": "Build a Periodic Table Database",
- "intro": [
- "For this lab, you will create a Bash script to get information about chemical elements from a periodic table database."
- ]
- },
- "lab-number-guessing-game": {
- "title": "Build a Number Guessing Game",
- "intro": [
- "For this lab, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
- ]
- },
- "review-git": {
- "title": "Git Review",
- "intro": ["Review Git concepts to prepare for the upcoming quiz."]
- },
- "quiz-git": {
- "title": "Git Quiz",
- "intro": ["Test what you've learned on Git with this quiz."]
- },
- "review-relational-databases": {
- "title": "Relational Databases Review",
- "intro": [
- "Review relational databases concepts to prepare for the upcoming quiz."
- ]
- },
- "exam-certified-full-stack-developer": {
- "title": "Certified Full Stack Developer Exam",
- "intro": ["Pass this exam to become a Certified Full Stack Developer."]
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
}
}
},
"a1-professional-spanish": {
- "title": "A1 Professional Spanish Certification (Beta)",
- "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
- "intro": ["Placeholder intro"],
+ "title": "Certificação de Espanhol Profissional A1 (Beta)",
+ "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível no momento, em breve haverá. Enquanto isso, você pode explorar os cursos que criamos abaixo.",
+ "intro": ["Introdução de Espaço Reservado"],
"chapters": {
- "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish",
- "es-a1-chapter-letters-and-sounds": "Letters and Sounds",
- "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions"
+ "es-a1-chapter-welcome-to-a1-professional-spanish": "Bem-vindo ao A1 Espanhol Profissional",
+ "es-a1-chapter-letters-and-sounds": "Letras e Sons",
+ "es-a1-chapter-greetings-and-introductions": "Saudações e Apresentações"
},
"modules": {
- "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
- "es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-introduction-and-certification-overview": "Introdução e Visão Geral da Certificação",
+ "es-a1-module-alphabet-accents-and-punctuation": "Alfabeto, Acentos e Pontuação",
+ "es-a1-module-greetings-and-farewells": "Saudações e Despedidas",
+ "es-a1-module-introducing-yourself": "Apresentando-se",
+ "es-a1-module-first-questions": "Primeiras Perguntas"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
- "note": "Coming Winter 2025",
- "intro": ["PLACEHOLDER: Write the module intro here."]
+ "note": "Inverno de 2025",
+ "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."]
},
"es-a1-module-alphabet-accents-and-punctuation": {
- "note": "Coming Winter 2025",
- "intro": ["PLACEHOLDER: Write the module intro here."]
+ "note": "Inverno de 2025",
+ "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."]
},
"es-a1-module-greetings-and-farewells": {
- "note": "Coming Winter 2025",
- "intro": ["PLACEHOLDER: Write the module intro here."]
+ "note": "Inverno de 2025",
+ "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Disponível no Inverno de 2025",
+ "intro": ["MARCADOR DE LUGAR: Escreva a introdução do módulo aqui."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Disponível no Inverno de 2025",
+ "intro": ["MARCADOR DE LUGAR: Escreva a introdução do módulo aqui."]
}
},
"blocks": {
"es-a1-warm-up-greetings-and-farewells-basics": {
- "title": "Greetings and Farewells Basics",
- "intro": ["Learn the basics of greetings and farewells in Spanish."]
+ "title": "Noções Básicas de Saudações e Despedidas",
+ "intro": ["Aprenda o básico sobre saudações e despedidas em espanhol."]
},
"es-a1-learn-greetings-during-the-day": {
- "title": "Greetings During the Day",
+ "title": "Saudações Durante o Dia",
"intro": ["", ""]
},
"es-a1-practice-greetings-and-farewells": {
- "title": "Greetings and Farewells Practice",
+ "title": "Prática de Saudações e Despedidas",
"intro": ["", ""]
},
"es-a1-review-greetings-and-farewells": {
- "title": "Greetings and Farewells Review",
+ "title": "Revisão de Saudações e Despedidas",
"intro": ["", ""]
},
"es-a1-quiz-greetings-and-farewells": {
- "title": "Greetings and Farewells Quiz",
+ "title": "Questionário de Saudações e Despedidas",
"intro": ["", ""]
},
"es-a1-learn-certification-introduction": {
- "title": "Certification Introduction",
+ "title": "Introdução à Certificação",
"intro": ["", ""]
},
"es-a1-learn-alphabet-and-accents": {
- "title": "Alphabet and Accents",
+ "title": "Alfabeto e Acentos",
"intro": ["", ""]
},
"es-a1-learn-punctuation": {
- "title": "Punctuation",
+ "title": "Pontuação",
"intro": ["", ""]
},
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
- "title": "Alphabet, Accent and Punctuation Quiz",
+ "title": "Questionário de Alfabeto, Acentos e Pontuação",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Práticas Básicas de Apresentação Pessoal",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Conheça Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Conheça Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Conheça Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Prática de Apresentação Pessoal",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Revisão de Apresentação Pessoal",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Quiz de Apresentação Pessoal",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "Práticas Básicas de Primeiras Perguntas",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Conheça Angela e Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "Prática de Primeiras Perguntas",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "Revisão de Primeiras Perguntas",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "Quiz de Primeiras Perguntas",
"intro": ["", ""]
}
}
},
"a2-professional-spanish": {
- "title": "A2 Professional Spanish Certification (Beta)",
- "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
- "intro": ["Placeholder intro"],
+ "title": "Certificação Profissional de Espanhol A2 (Beta)",
+ "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível para esta seção no momento, uma estará disponível em breve. Enquanto isso, sinta-se à vontade para explorar os cursos que criamos abaixo.",
+ "intro": ["Introdução ao Modelo"],
"blocks": {
"talk-about-who-you-are-by-using-key-verbs": {
- "title": "Talk About Who You Are by Using Key Verbs",
+ "title": "Fale Sobre Quem Você É Usando Verbs-Chave",
"intro": [
- "Learn how to introduce yourself in Spanish in a simple and professional way. In this module you'll learn how to say who you are, where you are from, what you do, how you feel, and what you like or don't like."
+ "Aprenda a se apresentar em espanhol de uma maneira simples e profissional. Neste módulo, você aprenderá a dizer quem você é, de onde você é, o que você faz, como se sente, e o que você gosta ou não."
]
},
"get-to-know-others-by-asking-simple-questions": {
- "title": "Get to Know Others by Asking Simple Questions",
+ "title": "Conheça os Outros Fazendo Perguntas Simples",
"intro": [
- "Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally."
+ "Aprenda a fazer e responder perguntas em conversas simples. Através de cinco diálogos curtos, pratique falar sobre rotinas, sentimentos, preferências, espaços de trabalho e informações pessoais. Você também aprenderá a fazer perguntas educadas, dar respostas curtas e usar negação de maneira natural."
]
}
}
},
"a2-professional-chinese": {
- "title": "A2 Professional Chinese Certification (Beta)",
- "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
- "intro": ["Placeholder intro"],
+ "title": "Certificação Profissional de Chinês A2 (Beta)",
+ "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível nesta seção no momento, haverá uma disponível em breve. Enquanto isso, você está convidado a explorar os cursos que criamos abaixo.",
+ "intro": ["Introdução ao Modelo"],
"blocks": {
"talk-about-what-you-do-by-using-key-verbs": {
- "title": "Talk About What You Do by Using Key Verbs",
+ "title": "Fale Sobre O Que Você Faz Usando Verbos-Chave",
"intro": [
- "Learn how to introduce yourself in Chinese in a simple and professional way. In this module you'll learn how to say who you are, where you are from, what you do, how you feel, and what you like or don't like."
+ "Aprenda a se apresentar em chinês de uma forma simples e profissional. Neste módulo, você aprenderá a dizer quem você é, de onde você vem, o que você faz, como você se sente e o que gosta ou não gosta."
]
},
"get-to-know-colleagues-by-asking-simple-questions": {
- "title": "Get to Know Colleagues by Asking Simple Questions",
+ "title": "Conheça Colegas Fazendo Perguntas Simples",
"intro": [
- "Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally."
+ "Aprenda a fazer e responder perguntas em conversas simples. Através de cinco diálogos curtos, pratique falar sobre rotinas, sentimentos, preferências, espaços de trabalho e informações pessoais. Você também aprenderá a fazer perguntas educadas, dar respostas curtas e usar negação de maneira natural."
]
}
}
},
"a1-professional-chinese": {
- "title": "A1 Professional Chinese Certification (Beta)",
- "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
- "intro": ["Placeholder intro"],
+ "title": "Certificação Profissional de Chinês A1 (Beta)",
+ "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível no momento, em breve haverá. Enquanto isso, você pode explorar os cursos que criamos abaixo.",
+ "intro": ["Introdução de Espaço Reservado"],
"blocks": {
"learn-essential-courtesies-at-the-office": {
- "title": "Learn Essential Courtesies at the Office",
+ "title": "Aprenda Cortesias Essenciais no Escritório",
"intro": [
- "Learn simple and polite ways to communicate at work. In this module, you'll learn essential phrases for greeting colleagues, expressing thanks, apologizing, and saying goodbye."
+ "Aprenda maneiras simples e educadas de se comunicar no trabalho. Neste módulo, você aprenderá frases essenciais para cumprimentar colegas, expressar gratidão, pedir desculpas e se despedir."
]
}
}
},
"basic-html": {
- "title": "Basic HTML",
+ "title": "HTML Básico",
"summary": [
- "Learn how to build simple webpages using HTML tags to add text, images, and links."
+ "Aprenda a construir páginas web simples usando tags HTML para adicionar textos, imagens e links."
],
- "intro": ["Larger intro for the superblock page."],
+ "intro": ["Grande introdução para a página superblock."],
"blocks": {
"cat-photo-app": {
- "title": "Build a Cat Photo App",
+ "title": "Crie um Aplicativo de Fotos de Gatos",
"intro": [
- "HTML tags give a webpage its structure. You can use HTML tags to add photos, buttons, and other elements to your webpage.",
- "In this course, you'll learn the most common HTML tags by building your own cat photo app."
+ "Tags HTML dão a uma página web sua estrutura. Você pode usar tags HTML para adicionar fotos, botões, e outros elementos à sua página web.",
+ "Neste curso, você aprenderá as tags HTML mais comuns criando seu próprio aplicativo de fotos de gatos."
]
},
"recipe-page": {
- "title": "Build a Recipe Page",
+ "title": "Crie uma Página de Receitas",
"intro": [
- "In this lab, you'll review HTML basics by creating a web page of your favorite recipe. You'll create an HTML boilerplate and work with headings, lists, images, and more."
+ "Neste laboratório, você revisará os conceitos básicos do HTML criando uma página web com sua receita favorita. Você criará um boilerplate HTML e trabalhará com títulos, listas, imagens e mais."
]
}
}
},
"semantic-html": {
- "title": "Semantic HTML",
+ "title": "HTML Semântico",
"summary": [
- "Discover how to write cleaner, more meaningful HTML using semantic tags that improve structure, accessibility, and SEO."
+ "Descubra como escrever HTML mais limpo e significativo usando tags semânticas que melhoram a estrutura, a acessibilidade e o SEO."
],
- "intro": ["Larger intro for the superblock page."],
+ "intro": ["Grande introdução para a página superblock."],
"blocks": {
"cat-blog-page": {
- "title": "Build a Cat Blog Page",
+ "title": "Crie uma Página de Blog de Gato",
"intro": [
- "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
+ "Neste workshop, você criará uma página de blog apenas em HTML usando elementos semânticos, incluindo os elementos main, nav, article e footer."
]
},
"event-hub": {
- "title": "Build an Event Hub",
+ "title": "Crie uma Central de Eventos",
"intro": [
- "In this lab, you'll build an event hub and review semantic elements like header, nav, article, and more."
+ "Neste laboratório, você criará uma central de eventos e revisará elementos semânticos, como header, nav, article e mais."
]
}
}
},
"dev-playground": {
- "title": "Dev Playground",
- "intro": ["Playground for creating and testing challenges"],
+ "title": "Playground Dev",
+ "intro": ["Playground para criar e testar desafios"],
"blocks": {
"daily-coding-challenges-javascript": {
- "title": "Daily Coding Challenges JavaScript",
- "intro": ["Place to create JavaScript daily coding challenges."]
+ "title": "Desafios Diários de Codificação JavaScript",
+ "intro": [
+ "Lugar para criar desafios diários de codificação JavaScript."
+ ]
},
"daily-coding-challenges-python": {
- "title": "Daily Coding Challenges Python",
- "intro": ["Place to create Python daily coding challenges."]
+ "title": "Desafios Diários de Codificação Python",
+ "intro": ["Lugar para criar desafios diários de codificação Python."]
}
}
},
"full-stack-open": {
"title": "Full Stack Open",
- "intro": ["A good intro is to be added here."],
+ "intro": ["Uma boa introdução será adicionada aqui."],
"blocks": {
"cat-blog-page": {
- "title": "Build a Cat Blog Page",
+ "title": "Crie uma Página de Blog de Gatos",
"intro": [
- "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements."
+ "Neste workshop, você criará uma página de blog apenas em HTML usando elementos semânticos, incluindo os elementos main, nav, article e footer."
]
}
},
"chapters": {
- "part-0": "Fundamentals of Web Apps",
- "part-1": "Introduction to React",
- "part-2": "Communicating with Servers",
- "part-3": "Programming a Server with NodeJS and Express",
- "part-4": "Testing Express Servers, User Administration",
- "part-5": "Testing React Apps",
- "part-6": "Advanced State Management",
- "part-7": "React router, custom hooks, styling app with CSS and webpack",
+ "part-0": "Fundamentos de Aplicativos Web",
+ "part-1": "Introdução ao React",
+ "part-2": "Comunicação com Servidores",
+ "part-3": "Programando um Servidor com NodeJS e Express",
+ "part-4": "Testando Servidores Express, Administração de Usuários",
+ "part-5": "Testando Aplicativos React",
+ "part-6": "Gerenciamento Avançado de Estado",
+ "part-7": "React router, hooks personalizados, estilizando aplicativo com CSS e webpack",
"part-8": "GraphQL",
"part-9": "TypeScript",
"part-10": "React Native",
"part-11": "CI/CD",
"part-12": "Containers",
- "part-13": "Using Relational Databases"
+ "part-13": "Usando Bancos de Dados Relacionais"
},
"modules": {
- "basic-html": "Basic HTML"
+ "basic-html": "HTML Básico"
},
"module-intros": {
"basic-html": {
- "title": "Basic HTML",
+ "title": "HTML Básico",
"intro": [
- "Learn how to build simple webpages using HTML tags to add text, images, and links."
+ "Aprenda a criar páginas da web simples usando tags HTML para adicionar texto, imagens e links."
]
}
}
},
"daily-coding-challenge": {
- "title": "Daily Coding Challenge",
+ "title": "Desafio de Código Diário",
"blocks": {
"daily-coding-challenge": {
- "title": "Daily Coding Challenge"
+ "title": "Desafio de Código Diário"
}
}
},
diff --git a/client/i18n/locales/portuguese/translations.json b/client/i18n/locales/portuguese/translations.json
index 152bf76eecb..8306985297e 100644
--- a/client/i18n/locales/portuguese/translations.json
+++ b/client/i18n/locales/portuguese/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Compartilhe no Threads",
"play-scene": "Aperte para começar",
"download-latest-version": "Baixe a versão mais recente",
- "start": "Iniciar",
- "go-to-today": "Vá para o desafio diário",
- "go-to-today-long": "Vá para o desafio de código diário",
- "go-to-archive": "Vá para o arquivo",
- "go-to-archive-long": "Vá para o arquivo do desafio de código diário"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Desafios de código diário",
@@ -214,6 +211,7 @@
"next-heading": "Experimente nosso currículo beta:",
"upcoming-heading": "Próximo currículo:",
"catalog-heading": "Explore nosso catálogo:",
+ "archive-link": "Procurando por um curso mais antigo? Confira <0>nossa página de arquivos0>.",
"faq": "Perguntas frequentes:",
"faqs": [
{
@@ -380,14 +378,14 @@
}
},
"exam": {
- "attempts": "Attempts",
- "no-attempts-yet": "No attempts yet",
- "date-taken": "Date Taken",
- "score": "Score",
+ "attempts": "Tentativas",
+ "no-attempts-yet": "Nenhuma tentativa ainda",
+ "date-taken": "Data de captura",
+ "score": "Pontuação",
"status": "Status",
- "pending": "Pending",
- "passed": "Passed",
- "failed": "Failed",
+ "pending": "Pendente",
+ "passed": "Aprovado",
+ "failed": "Falhou",
"download-header": "Faça o download do aplicativo de exame gratuito do freeCodeCamp",
"explanation": "Para obter uma certificação, você deve fazer um exame para testar sua compreensão do material que você aprendeu. Fazer o exame é absolutamente gratuito.",
"version": "A versão mais recente do nosso aplicativo é: {{version}}.",
@@ -536,22 +534,22 @@
"demo-project-title": "Aqui está o exemplo de um projeto que atende aos requisitos",
"github-required": "<0>Crie uma conta no GitHub0> se você já não tiver uma. Você vai precisar dela ao criar a máquina virtual do servidor Linux. Esse processo pode demorar alguns minutos.",
"ona": {
- "intro": "This course runs in a virtual Linux machine using Ona. Follow these instructions to start the course:",
- "step-1": "<0>Create an Ona account0> if you don't have one",
- "step-2": "Click the start button below",
- "step-3": "In the modal that pops up, click the create button",
- "step-4": "Once the virtual Linux machine is finished loading, start the CodeRoad extension by:",
- "step-5": "Clicking the \"hamburger\" menu near the top left of the VSCode window,",
- "step-6": "Going to the <0>View0> menu,",
- "step-7": "Clicking on the <0>Command Palette0> option,",
- "step-8": "and running the <0>CodeRoad: Start0> command",
- "step-9": "Follow the instructions in CodeRoad to complete the course",
- "continue-project": "Clicking the button below will start a new project. If you have previously started the {{course}} course, go to <0>your Ona dashboard0> to continue.",
- "learn-more": "Learn more about <0>Ona workspaces.0>",
- "logout-warning": "If you log out of freeCodeCamp before you complete the entire {{course}} course, your progress will not be saved to your freeCodeCamp account.",
- "sub-step-3": "Navigate to your <0>Ona secrets page0>",
- "sub-step-4": "Create a new secret named <0>CODEROAD_WEBHOOK_TOKEN0>",
- "sub-step-5": "In the <0>Secret0> field, paste your token"
+ "intro": "Este curso é executado em uma máquina virtual Linux usando o Ona. Siga estas instruções para iniciar o curso:",
+ "step-1": "<0>Crie uma conta no Ona0> se você não tiver uma",
+ "step-2": "Clique no botão de iniciar abaixo",
+ "step-3": "No modal que aparece para cima, clique no botão criar",
+ "step-4": "Depois que a máquina virtual do Linux terminar de carregar, inicie a extensão CodeRoad, assim:",
+ "step-5": "Clicando no menu de \"hambúrguer\" perto do canto superior esquerdo da janela do VScode,",
+ "step-6": "A partir do menu <0>Exibir0>,",
+ "step-7": "Clicando na opção <0>Paleta de comando0>,",
+ "step-8": "e executando o comando <0>CodeRoad: Start0>",
+ "step-9": "Siga as instruções no CodeRoad para concluir o curso",
+ "continue-project": "Clicar no botão abaixo iniciará um novo projeto. Se você já iniciou o curso {{course}}, vá para <0>seu painel no Ona0> para continuar.",
+ "learn-more": "Saiba mais sobre <0>Ona workspaces.0>",
+ "logout-warning": "Se você sair do FreeCodeCamp antes de completar todo o curso {{course}}, seu progresso não será salvo na sua conta do freeCodeCamp.",
+ "sub-step-3": "Navegue para a sua <0>Página de segredos do Ona0>",
+ "sub-step-4": "Crie um novo segredo chamado <0>CODEROAD_WEBHOOK_TOKEN0>",
+ "sub-step-5": "No campo <0>Secret0>, cole seu token"
},
"local": {
"intro": "Este curso é executado em uma máquina virtual Linux no seu computador. Para executar o curso, você primeiro precisa baixar cada um se você ainda não os possui:",
@@ -653,15 +651,19 @@
"invalid-transcript": "O link da transcrição não está correto. Ele deve ter esta aparência: <1>https://learn.microsoft.com/IDIOMA_DE_LOCALIZACAO/users/NOME_DO_USUARIO/transcript/ID1> - Confira os itens que aparecem em MAIÚSCULAS no seu link para ver se estão corretos."
},
"block-type": {
- "lecture": "Theory",
+ "lecture": "Teoria",
"workshop": "Workshop",
"lab": "Laboratório",
"review": "Revisão",
"quiz": "Questionário",
"exam": "Teste",
- "warm-up": "Warm-up",
- "learn": "Learn",
- "practice": "Practice"
+ "warm-up": "Aquecimento",
+ "learn": "Aprender",
+ "practice": "Praticar"
+ },
+ "archive": {
+ "title": "Nossos cursos arquivados",
+ "content-not-updated": "<0>Aviso:0> o conteúdo desta seção não está sendo atualizado, mas ainda está disponível para você continuar aprendendo. Recomendamos experimentar <1>nosso currículo atual1>."
}
},
"donate": {
@@ -1193,8 +1195,8 @@
"b1-english-for-developers-cert": "Certificação B1 Inglês para Desenvolvedores",
"full-stack-developer-v9": "Desenvolvimento Full Stack",
"full-stack-developer-v9-cert": "Certificação de desenvolvimento Full Stack",
- "a1-professional-spanish": "A1 Professional Spanish",
- "a1-professional-spanish-cert": "A1 Professional Spanish Certification",
+ "a1-professional-spanish": "Espanhol Profissional A1",
+ "a1-professional-spanish-cert": "Certificação de Espanhol Profissional A1",
"a2-professional-spanish": "Espanhol Profissional A2",
"a2-professional-spanish-cert": "Certificação Profissional de espanhol A2",
"a2-professional-chinese": "Chinês Profissional A2",
diff --git a/client/i18n/locales/swahili/intro.json b/client/i18n/locales/swahili/intro.json
index c3008d59344..1d55755968b 100644
--- a/client/i18n/locales/swahili/intro.json
+++ b/client/i18n/locales/swahili/intro.json
@@ -1818,6 +1818,7 @@
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
@@ -1868,6 +1869,12 @@
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Coming Fall 2025",
"intro": [
@@ -2133,6 +2140,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
@@ -2612,6 +2625,13 @@
"In this lab, you'll design a contact form in HTML and style it using CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Styling Forms Review",
"intro": [
@@ -4589,9 +4609,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4784,7 +4806,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
@@ -4992,6 +5016,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -5004,7 +6105,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5018,6 +6121,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5056,6 +6167,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/swahili/translations.json b/client/i18n/locales/swahili/translations.json
index 216890a9903..b141666fc42 100644
--- a/client/i18n/locales/swahili/translations.json
+++ b/client/i18n/locales/swahili/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Share on Threads",
"play-scene": "Press Play",
"download-latest-version": "Download the Latest Version",
- "start": "Start",
- "go-to-today": "Go to Today's Challenge",
- "go-to-today-long": "Go to Today's Coding Challenge",
- "go-to-archive": "Go to Archive",
- "go-to-archive-long": "Go to Daily Coding Challenge Archive"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Daily Coding Challenges",
@@ -214,6 +211,7 @@
"next-heading": "Try our beta curriculum:",
"upcoming-heading": "Upcoming curriculum:",
"catalog-heading": "Explore our Catalog:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Maswali yanayoulizwa mara kwa mara:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {
diff --git a/client/i18n/locales/ukrainian/intro.json b/client/i18n/locales/ukrainian/intro.json
index 0275bef86a4..6baa38201d2 100644
--- a/client/i18n/locales/ukrainian/intro.json
+++ b/client/i18n/locales/ukrainian/intro.json
@@ -1804,6 +1804,7 @@
"performance": "Продуктивність",
"testing": "Тестування",
"css-libraries-and-frameworks": "Бібліотеки та фреймворки CSS",
+ "data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "Основи TypeScript",
"review-front-end-libraries": "Повторення бібліотек для Front End",
"exam-front-end-libraries": "Екзамен «Бібліотеки для Front End»",
@@ -1854,6 +1855,12 @@
"У цьому модулі ви ознайомитесь з бібліотеками, фреймворками і препроцесорами CSS, включно з Tailwind CSS, Bootstrap та Sass. Ви побудуєте різні компоненти за допомогою Tailwind CSS і перевірите отримані знання, виконавши короткий тест."
]
},
+ "data-visualization": {
+ "note": "Coming Winter 2025",
+ "intro": [
+ "In this module, you will be introduced to data visualization and learn how to work with the D3 library."
+ ]
+ },
"typescript-fundamentals": {
"note": "Очікуйте цієї осені",
"intro": [
@@ -2119,6 +2126,12 @@
"In these lessons, you will learn how to work with the audio and video elements."
]
},
+ "lab-html-audio-and-video-player": {
+ "title": "Build an HTML Audio and Video Player",
+ "intro": [
+ "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes."
+ ]
+ },
"lecture-working-with-images-and-svgs": {
"title": "Робота із зображеннями та SVG",
"intro": [
@@ -2594,6 +2607,13 @@
"У цій лабораторній роботі ви створите контактну форму в HTML та стилізуєте її за допомогою CSS."
]
},
+ "lab-feature-selection": {
+ "title": "Design a Feature Selection Page",
+ "intro": [
+ "In this lab, you'll build a feature selection page with custom-styled checkboxes.",
+ "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes."
+ ]
+ },
"review-styling-forms": {
"title": "Повторення стилізації форм",
"intro": [
@@ -4573,9 +4593,11 @@
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
- "workshop-placeholder-oop-1": {
- "title": "Placeholder - Waiting for title",
- "intro": [""]
+ "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-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
@@ -4764,7 +4786,9 @@
},
"lab-nth-fibonacci-number": {
"title": "Створіть калькулятор n-го числа Фібоначчі",
- "intro": [""]
+ "intro": [
+ "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
+ ]
},
"review-dynamic-programming": {
"title": "Повторення динамічного програмування",
@@ -4976,6 +5000,1083 @@
}
}
},
+ "javascript-v9": {
+ "title": "JavaScript Certification",
+ "intro": [
+ "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
+ "To earn your JavaScript Certification:",
+ "- Complete the five required projects to qualify for the certification exam.",
+ "- Pass the JavaScript Certification exam."
+ ],
+ "chapters": {
+ "javascript": "JavaScript"
+ },
+ "modules": {
+ "javascript-variables-and-strings": "Variables and Strings",
+ "javascript-booleans-and-numbers": "Booleans and Numbers",
+ "javascript-functions": "Functions",
+ "javascript-arrays": "Arrays",
+ "javascript-objects": "Objects",
+ "javascript-loops": "Loops",
+ "review-javascript-fundamentals": "JavaScript Fundamentals Review",
+ "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
+ "dom-manipulation-and-events": "DOM Manipulation and Events",
+ "js-a11y": "JavaScript and Accessibility",
+ "debugging-javascript": "Debugging",
+ "basic-regex": "Basic Regex",
+ "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
+ "form-validation": "Form Validation",
+ "javascript-dates": "Dates",
+ "audio-and-video-events": "Audio and Video Events",
+ "lab-drum-machine": "Build a Drum Machine",
+ "maps-and-sets": "Maps and Sets",
+ "lab-voting-system": "Build a Voting System",
+ "localstorage-and-crud-operations": "localStorage and CRUD Operations",
+ "classes-and-the-this-keyword": "Classes",
+ "lab-bank-account-manager": "Build a Bank Account Management Program",
+ "recursion": "Recursion",
+ "functional-programming": "Functional Programming",
+ "asynchronous-javascript": "Asynchronous JavaScript",
+ "lab-weather-app": "Build a Weather App",
+ "review-javascript": "JavaScript Review",
+ "javascript-certification-exam": "JavaScript Certification Exam"
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "lab-reverse-a-string": {
+ "title": "Build a String Inverter",
+ "intro": [
+ "In this lab, you create a function that reverses a given string."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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-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."
+ ]
+ },
+ "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-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-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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."]
+ },
+ "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-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."
+ ]
+ },
+ "lab-regex-sandbox": {
+ "title": "Build a RegEx Sandbox",
+ "intro": ["In this lab you'll build a regex sandbox."]
+ },
+ "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."
+ ]
+ },
+ "lecture-understanding-form-validation": {
+ "title": "Understanding Form Validation",
+ "intro": [
+ "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works."
+ ]
+ },
+ "workshop-calorie-counter": {
+ "title": "Build a Calorie Counter",
+ "intro": [
+ "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
+ "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more."
+ ]
+ },
+ "lab-customer-complaint-form": {
+ "title": "Build a Customer Complaint Form",
+ "intro": [
+ "For this lab, you'll use JavaScript to validate a customer complaint form.",
+ "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
+ ]
+ },
+ "review-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Review",
+ "intro": [
+ "Before you're quizzed on form validation, you should review what you've learned.",
+ "Open up this page to review concepts including the preventDefault() method, the submit event and more."
+ ]
+ },
+ "quiz-form-validation-with-javascript": {
+ "title": "Form Validation with JavaScript Quiz",
+ "intro": [
+ "Test what you've learned about JavaScript form validation with this quiz."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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, IndexDB, 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."
+ ]
+ },
+ "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."
+ ]
+ },
+ "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-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."]
+ },
+ "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-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."
+ ]
+ },
+ "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-javascrip": {
+ "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."
+ ]
+ },
+ "review-javascript": {
+ "title": "JavaScript Review",
+ "intro": [
+ "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
+ "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
+ ]
+ },
+ "exam-javascript-certification": {
+ "title": "JavaScript Certification Exam",
+ "intro": ["Pass this exam to earn your JavaScript Certification."]
+ }
+ }
+ },
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
@@ -4988,7 +6089,9 @@
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
- "es-a1-module-greetings-and-farewells": "Greetings and Farewells"
+ "es-a1-module-greetings-and-farewells": "Greetings and Farewells",
+ "es-a1-module-introducing-yourself": "Introducing Yourself",
+ "es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
@@ -5002,6 +6105,14 @@
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-introducing-yourself": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
+ },
+ "es-a1-module-first-questions": {
+ "note": "Coming Winter 2025",
+ "intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
@@ -5040,6 +6151,54 @@
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
+ },
+ "es-a1-warm-up-introducing-yourself-basics": {
+ "title": "Introducing Yourself Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-luna": {
+ "title": "Meet Luna",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-mateo": {
+ "title": "Meet Mateo",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-julieta": {
+ "title": "Meet Julieta",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-introducing-yourself": {
+ "title": "Introducing Yourself Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-introducing-yourself": {
+ "title": "Introducing Yourself Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-introducing-yourself": {
+ "title": "Introducing Yourself Quiz",
+ "intro": ["", ""]
+ },
+ "es-a1-warm-up-first-questions-basics": {
+ "title": "First Questions Basics",
+ "intro": ["", ""]
+ },
+ "es-a1-learn-meet-angela-and-basti": {
+ "title": "Meet Angela and Basti",
+ "intro": ["", ""]
+ },
+ "es-a1-practice-first-questions": {
+ "title": "First Questions Practice",
+ "intro": ["", ""]
+ },
+ "es-a1-review-first-questions": {
+ "title": "First Questions Review",
+ "intro": ["", ""]
+ },
+ "es-a1-quiz-first-questions": {
+ "title": "First Questions Quiz",
+ "intro": ["", ""]
}
}
},
diff --git a/client/i18n/locales/ukrainian/translations.json b/client/i18n/locales/ukrainian/translations.json
index 22977baebfc..7e68a59fe66 100644
--- a/client/i18n/locales/ukrainian/translations.json
+++ b/client/i18n/locales/ukrainian/translations.json
@@ -118,11 +118,8 @@
"share-on-threads": "Поділитись на Threads",
"play-scene": "Натисніть «Відтворити»",
"download-latest-version": "Завантажити найновішу версію",
- "start": "Розпочати",
- "go-to-today": "Перейти до сьогоднішнього завдання",
- "go-to-today-long": "Перейти до сьогоднішнього завдання з програмування",
- "go-to-archive": "Перейти до архіву",
- "go-to-archive-long": "Перейти до архіву завдань з програмування"
+ "go-to-dcc-today": "Go to Today's Challenge",
+ "go-to-dcc-archive": "Go to Daily Coding Challenge Archive"
},
"daily-coding-challenges": {
"title": "Щоденні завдання з програмування",
@@ -214,6 +211,7 @@
"next-heading": "Спробуйте бета-версію навчальної програми:",
"upcoming-heading": "Майбутня навчальна програма:",
"catalog-heading": "Ознайомтесь з нашим каталогом:",
+ "archive-link": "Looking for older coursework? Check out <0>our archive page0>.",
"faq": "Часті питання:",
"faqs": [
{
@@ -662,6 +660,10 @@
"warm-up": "Warm-up",
"learn": "Learn",
"practice": "Practice"
+ },
+ "archive": {
+ "title": "Archived Coursework",
+ "content-not-updated": "<0>Warning:0> The content in this section is not being updated, but is still available for you to further your learning. We recommend trying <1>our current curriculum1>."
}
},
"donate": {