From 41ddf7eff0eceaaccae18ac160b6d5a69a0e9f80 Mon Sep 17 00:00:00 2001 From: freeCodeCamp's Camper Bot Date: Wed, 29 Oct 2025 18:28:40 +0530 Subject: [PATCH] chore(i18n,client): processed translations (#63220) --- .../locales/chinese-traditional/intro.json | 1449 +++++++- .../chinese-traditional/translations.json | 1 + client/i18n/locales/chinese/intro.json | 1449 +++++++- client/i18n/locales/chinese/translations.json | 1 + client/i18n/locales/espanol/intro.json | 1453 +++++++- client/i18n/locales/espanol/translations.json | 1 + client/i18n/locales/german/intro.json | 1449 +++++++- client/i18n/locales/german/translations.json | 1 + client/i18n/locales/italian/intro.json | 1449 +++++++- client/i18n/locales/italian/translations.json | 1 + client/i18n/locales/japanese/intro.json | 1449 +++++++- .../i18n/locales/japanese/translations.json | 1 + client/i18n/locales/korean/intro.json | 1449 +++++++- client/i18n/locales/korean/translations.json | 1 + client/i18n/locales/portuguese/intro.json | 3257 ++++++++++++----- .../i18n/locales/portuguese/translations.json | 65 +- client/i18n/locales/swahili/intro.json | 1449 +++++++- client/i18n/locales/swahili/translations.json | 1 + client/i18n/locales/ukrainian/intro.json | 1453 +++++++- .../i18n/locales/ukrainian/translations.json | 1 + 20 files changed, 15331 insertions(+), 1049 deletions(-) diff --git a/client/i18n/locales/chinese-traditional/intro.json b/client/i18n/locales/chinese-traditional/intro.json index 88d7d2ee963..2bf319f7c3c 100644 --- a/client/i18n/locales/chinese-traditional/intro.json +++ b/client/i18n/locales/chinese-traditional/intro.json @@ -1550,7 +1550,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1983,7 +1983,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4626,9 +4626,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5059,6 +5061,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5134,6 +5148,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5442,6 +5462,12 @@ "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": [ @@ -5509,6 +5535,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5528,6 +5560,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5540,12 +5584,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5595,6 +5657,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5620,6 +5718,12 @@ "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": [ @@ -5768,6 +5872,25 @@ "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": [ @@ -6100,9 +6223,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6123,9 +6563,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6144,9 +7002,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6167,14 +7235,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6423,6 +7612,12 @@ "In these lectures, 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": [ @@ -6441,6 +7636,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6582,12 +7783,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6890,6 +8103,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": [ @@ -7298,12 +8518,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/chinese-traditional/translations.json b/client/i18n/locales/chinese-traditional/translations.json index c23dd3a095c..dc137f1b0ba 100644 --- a/client/i18n/locales/chinese-traditional/translations.json +++ b/client/i18n/locales/chinese-traditional/translations.json @@ -523,6 +523,7 @@ "instructions": "說明", "notes": "注意", "preview": "預覽", + "terminal": "Terminal", "editor": "編輯器", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/chinese/intro.json b/client/i18n/locales/chinese/intro.json index 10ecafa0fdb..db6158b48f8 100644 --- a/client/i18n/locales/chinese/intro.json +++ b/client/i18n/locales/chinese/intro.json @@ -1550,7 +1550,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1983,7 +1983,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4626,9 +4626,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5059,6 +5061,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5134,6 +5148,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5442,6 +5462,12 @@ "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": [ @@ -5509,6 +5535,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5528,6 +5560,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5540,12 +5584,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5595,6 +5657,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5620,6 +5718,12 @@ "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": [ @@ -5768,6 +5872,25 @@ "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": [ @@ -6100,9 +6223,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6123,9 +6563,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6144,9 +7002,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6167,14 +7235,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6423,6 +7612,12 @@ "In these lectures, 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": [ @@ -6441,6 +7636,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6582,12 +7783,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6890,6 +8103,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": [ @@ -7298,12 +8518,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json index 2472017977b..d3ce86f8848 100644 --- a/client/i18n/locales/chinese/translations.json +++ b/client/i18n/locales/chinese/translations.json @@ -523,6 +523,7 @@ "instructions": "说明", "notes": "注意", "preview": "预览", + "terminal": "Terminal", "editor": "编辑器", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/espanol/intro.json b/client/i18n/locales/espanol/intro.json index f817ffc5ed9..1df3fa4d35a 100644 --- a/client/i18n/locales/espanol/intro.json +++ b/client/i18n/locales/espanol/intro.json @@ -1566,10 +1566,10 @@ "Este curso te proporcionará formas de explicar las cosas a otras personas mientras las asistes." ] }, - "a2-english-for-developers-certification-exam": { - "title": "Examen de certificación de inglés A2 para desarrolladores", + "en-a2-certification-exam": { + "title": "A2 English for Developers Certification Exam", "intro": [ - "Este examen es necesario para obtener la Certificación A2 de Inglés para Desarrolladores." + "This exam is required to claim the A2 English for Developers Certification." ] } } @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json index 2808baa1035..93aa53b2ae3 100644 --- a/client/i18n/locales/espanol/translations.json +++ b/client/i18n/locales/espanol/translations.json @@ -523,6 +523,7 @@ "instructions": "Instrucciones", "notes": "Notas", "preview": "Vista", + "terminal": "Terminal", "editor": "Editor", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/german/intro.json b/client/i18n/locales/german/intro.json index 74beb6e4a25..958efdcd9f7 100644 --- a/client/i18n/locales/german/intro.json +++ b/client/i18n/locales/german/intro.json @@ -1564,7 +1564,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/german/translations.json b/client/i18n/locales/german/translations.json index a1c28cddd12..ac77a308231 100644 --- a/client/i18n/locales/german/translations.json +++ b/client/i18n/locales/german/translations.json @@ -523,6 +523,7 @@ "instructions": "Anweisungen", "notes": "Hinweise", "preview": "Vorschau", + "terminal": "Terminal", "editor": "Editor", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/italian/intro.json b/client/i18n/locales/italian/intro.json index 589d00a1b12..9a6194c3f1e 100644 --- a/client/i18n/locales/italian/intro.json +++ b/client/i18n/locales/italian/intro.json @@ -1564,7 +1564,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/italian/translations.json b/client/i18n/locales/italian/translations.json index 9d1a1c23226..f6ecff336a8 100644 --- a/client/i18n/locales/italian/translations.json +++ b/client/i18n/locales/italian/translations.json @@ -523,6 +523,7 @@ "instructions": "Istruzioni", "notes": "Note", "preview": "Anteprima", + "terminal": "Terminal", "editor": "Editor", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/japanese/intro.json b/client/i18n/locales/japanese/intro.json index f4bea9a5fc1..02e1fbcd994 100644 --- a/client/i18n/locales/japanese/intro.json +++ b/client/i18n/locales/japanese/intro.json @@ -1564,7 +1564,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/japanese/translations.json b/client/i18n/locales/japanese/translations.json index c97b79e0497..a284d77692e 100644 --- a/client/i18n/locales/japanese/translations.json +++ b/client/i18n/locales/japanese/translations.json @@ -523,6 +523,7 @@ "instructions": "手順書", "notes": "ノート", "preview": "プレビュー", + "terminal": "Terminal", "editor": "エディター", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/korean/intro.json b/client/i18n/locales/korean/intro.json index c132d7b2935..aa588d23683 100644 --- a/client/i18n/locales/korean/intro.json +++ b/client/i18n/locales/korean/intro.json @@ -1564,7 +1564,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/korean/translations.json b/client/i18n/locales/korean/translations.json index 9a69e69c50d..e0b8d0cbe0a 100644 --- a/client/i18n/locales/korean/translations.json +++ b/client/i18n/locales/korean/translations.json @@ -523,6 +523,7 @@ "instructions": "Instructions", "notes": "Notes", "preview": "Preview", + "terminal": "Terminal", "editor": "Editor", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/portuguese/intro.json b/client/i18n/locales/portuguese/intro.json index 2af6c481cb7..71e78801ce1 100644 --- a/client/i18n/locales/portuguese/intro.json +++ b/client/i18n/locales/portuguese/intro.json @@ -1564,10 +1564,10 @@ "Este curso mostrará maneiras de explicar algo a outras pessoas enquanto as ajuda." ] }, - "a2-english-for-developers-certification-exam": { - "title": "Exame de Certificação de Inglês A2 para Desenvolvedores", + "en-a2-certification-exam": { + "title": "A2 English for Developers Certification Exam", "intro": [ - "Este exame é necessário para reivindicar a Certificação A2 em Inglês para Desenvolvedores." + "This exam is required to claim the A2 English for Developers Certification." ] } } @@ -1832,12 +1832,12 @@ "review-python": "Revisão de Python", "exam-python": "Exame de Python", "bash-fundamentals": "Fundamentos de Bash", - "sql-and-postgresql": "SQL and PostgreSQL", + "sql-and-postgresql": "SQL e PostgreSQL", "bash-scripting": "Scripts Bash", "sql-and-bash": "SQL e Bash", "git": "Git", - "review-relational-databases": "Relational Databases Review", - "exam-relational-databases": "Relational Databases Exam", + "review-relational-databases": "Revisão de Bancos de Dados Relacionais", + "exam-relational-databases": "Exame de Bancos de Dados Relacionais", "introduction-to-nodejs": "Introdução a Node.js", "nodejs-core-libraries": "Bibliotecas Principais do Node.js", "node-package-manager": "Node Package Manager", @@ -1911,9 +1911,9 @@ ] }, "sql-and-postgresql": { - "note": "Coming Winter 2025", + "note": "Disponível no 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á a trabalhar com bancos de dados relacionais que armazenam dados como coleções em tabelas. Alguns dos conceitos que você 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 fará um breve questionário para testar seu conhecimento." ] }, "bash-scripting": { @@ -1995,7 +1995,7 @@ ] }, "security-and-privacy": { - "note": "Próximo Lançamento: Outono de 2025", + "note": "Próximo Lançamento: Final de 2026", "intro": [ "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." ] @@ -2104,9 +2104,9 @@ ] }, "lab-html-audio-and-video-player": { - "title": "Build an HTML Audio and Video Player", + "title": "Construa um Player de Áudio e Vídeo em HTML", "intro": [ - "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes." + "Neste laboratório, você criará um player de áudio e vídeo em HTML usando os elementos video e audio com controles e atributos de fonte." ] }, "lecture-working-with-images-and-svgs": { @@ -2287,9 +2287,9 @@ ] }, "workshop-tech-conference-schedule": { - "title": "Build a Tech Conference Schedule Table", + "title": "Crie uma Tabela de Programação de Conferência Tecnológica", "intro": [ - "In this workshop, you will build an accessible tech conference schedule table." + "Neste workshop, você criará uma tabela de programação de conferência tecnológica acessível." ] }, "lecture-introduction-to-aria": { @@ -2599,10 +2599,10 @@ ] }, "lab-feature-selection": { - "title": "Design a Feature Selection Page", + "title": "Desenhe uma Página de Seleção de Recursos", "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." + "Neste laboratório, você vai criar uma página de seleção de recursos com checkboxes personalizados.", + "Você criará cartões de recursos com labels e checkboxes, depois dará estilo personalizado aos checkboxes." ] }, "review-styling-forms": { @@ -3075,9 +3075,9 @@ ] }, "workshop-string-transformer": { - "title": "Build a String Transformer", + "title": "Crie um Transformer de String", "intro": [ - "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + "Neste workshop, você praticará o uso dos métodos replace(), replaceAll() e repeat()." ] }, "review-javascript-strings": { @@ -3541,9 +3541,9 @@ ] }, "lab-element-skipper": { - "title": "Implement an Element Skipper", + "title": "Implemente um Pulador de Elementos", "intro": [ - "In this lab you will create a function that skips elements in an array based on a specified step value." + "Neste laboratório, você criará uma função que pula elementos em um array com base em um valor de passo especificado." ] }, "lab-optional-arguments-sum-function": { @@ -3608,9 +3608,9 @@ ] }, "lab-prime-number-sum-calculator": { - "title": "Build a Prime Number Sum Calculator", + "title": "Crie uma Calculadora de Soma de Números Primos", "intro": [ - "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + "Neste laboratório, você criará uma calculadora de soma de números primos que aceitará um número e retornará a soma de todos os números primos menores ou iguais a esse número." ] }, "lab-range-based-lcm-calculator": { @@ -4610,15 +4610,15 @@ ] }, "lab-planet-class": { - "title": "Build a Planet Class", + "title": "Crie uma Classe Planeta", "intro": [ - "In this lab you will create a class that represents a planet." + "Neste laboratório, você criará uma classe que representa um planeta." ] }, "workshop-email-simulator": { - "title": "Build an Email Simulator", + "title": "Crie um Simulador de E-mails", "intro": [ - "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + "Neste workshop, você implementará classes e objetos criando um simulador de e-mails que simula o envio, recebimento e gerenciamento de e-mails entre diferentes usuários." ] }, "lab-budget-app": { @@ -4647,9 +4647,9 @@ ] }, "workshop-salary-tracker": { - "title": "Build a Salary Tracker", + "title": "Crie um Rastreador de Salários", "intro": [ - "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + "Neste workshop, você praticará encapsulamento, propriedades e outros conceitos de POO construindo um sistema de rastreamento de salários para funcionários." ] }, "lab-placeholder-oop-1": { @@ -4682,9 +4682,11 @@ "title": "Placeholder - Aguardando título", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Revisão da Programação Orientada a Objetos", @@ -4810,9 +4812,9 @@ ] }, "workshop-breadth-first-search": { - "title": "Implement the Breadth-First Search Algorithm", + "title": "Implemente o Algoritmo de Busca em Largura", "intro": [ - "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + "Neste workshop, você usará o algoritmo de busca em largura para gerar todas as combinações válidas de parênteses." ] }, "lab-depth-first-search": { @@ -4822,9 +4824,9 @@ ] }, "lab-n-queens-problem": { - "title": "Implement the N-Queens Problem", + "title": "Implemente o Problema N-Rainhas", "intro": [ - "In this lab, you will implement a solution for the N-Queens problem." + "Neste laboratório, você implementará uma solução para o problema N-Rainhas." ] }, "review-graphs-and-trees": { @@ -4848,7 +4850,7 @@ "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." + "Neste laboratório, você implementará um calculador de sequência Fibonacci usando uma abordagem de programação dinâmica." ] }, "review-dynamic-programming": { @@ -4914,15 +4916,15 @@ ] }, "review-sql-and-postgresql": { - "title": "SQL and PostgreSQL Review", + "title": "Revisão de SQL e PostgreSQL", "intro": [ - "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + "Revise os conceitos de SQL e PostgreSQL para se preparar para o próximo questionário." ] }, "quiz-sql-and-postgresql": { - "title": "SQL and PostgreSQL Quiz", + "title": "Questionário de SQL e PostgreSQL", "intro": [ - "Test what you've learned about SQL and PostgreSQL with this quiz." + "Teste seu conhecimento sobre SQL e PostgreSQL com este questionário." ] }, "lecture-understanding-bash-scripting": { @@ -5060,13 +5062,13 @@ "review-relational-databases": { "title": "Revisão de Bancos de Dados Relacionais", "intro": [ - "Review relational databases concepts to prepare for the exam." + "Revise os conceitos de bancos de dados relacionais para se preparar para o exame." ] }, "lecture-understanding-the-http-request-response-model": { - "title": "Understanding the HTTP Request-Response Model", + "title": "Compreendendo o Modelo de Solicitação-Resposta HTTP", "intro": [ - "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + "Aprenda os fundamentos de como a comunicação na web funciona através do modelo de solicitação-resposta HTTP, explore diferentes tipos de ativos e respostas da web e entenda como os formulários manipulam o envio de dados usando vários métodos HTTP." ] }, "exam-certified-full-stack-developer": { @@ -5078,1176 +5080,2405 @@ } }, "javascript-v9": { - "title": "JavaScript Certification", + "title": "Certificação JavaScript", "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 qualify for the exam, you must complete the following projects:", - "- Build a Markdown to HTML Converter", - "- Build a Drum Machine", - "- Build a Voting System", - "- Build a Bank Account Management Program", - "- Build a Weather App", - "Pass the exam to earn your JavaScript Certification." + "Este curso ensina conceitos fundamentais de programação JavaScript, como trabalhar com variáveis, funções, objetos, arrays e controle de fluxo. Você também aprenderá a manipular o DOM, lidar com eventos, e aplicar técnicas como programação funcional, assíncrona e práticas recomendadas de acessibilidade.", + "Para se qualificar para o exame, você deve concluir os seguintes projetos:", + "- Crie um Conversor de Markdown para HTML", + "- Crie uma Bateria Eletrônica", + "- Crie um Sistema de Votação", + "- Crie um Programa de Gestão de Contas Bancárias", + "- Crie um Aplicativo do Tempo", + "Passe no exame para conquistar sua Certificação de JavaScript." ], "chapters": { "javascript": "JavaScript" }, "modules": { - "javascript-variables-and-strings": "Variables and Strings", - "javascript-booleans-and-numbers": "Booleans and Numbers", - "javascript-functions": "Functions", + "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": "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", + "javascript-objects": "Objetos", + "javascript-loops": "Laços", + "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", + "lab-markdown-to-html-converter": "Crie um Conversor de Markdown para HTML", + "form-validation": "Validação de Formulários", + "javascript-dates": "Datas", + "audio-and-video-events": "Eventos de Áudio e Vídeo", + "lab-drum-machine": "Crie uma Bateria Eletrônica", + "maps-and-sets": "Maps e Sets", + "lab-voting-system": "Crie um Sistema de Votação", + "localstorage-and-crud-operations": "Armazenamento local e Operações CRUD", "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" + "lab-bank-account-manager": "Crie um Programa de Gestão de Contas Bancárias", + "recursion": "Recursão", + "functional-programming": "Programação Funcional", + "asynchronous-javascript": "JavaScript Assíncrono", + "lab-weather-app": "Crie um Aplicativo do Tempo", + "review-javascript": "Revisão de JavaScript", + "javascript-certification-exam": "Exame de Certificação JavaScript" }, "blocks": { "lecture-introduction-to-javascript": { - "title": "Introduction to JavaScript", + "title": "Introdução ao 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." + "Nestas aulas, você aprenderá os fundamentos do JavaScript. Os tópicos abordados incluem, mas não se limitam, a variáveis, tipos de dados, como JavaScript interage com HTML e CSS, strings, e muito mais." + ] + }, + "lecture-introduction-to-strings": { + "title": "Introdução a Strings", + "intro": [ + "Nessas lições, você aprenderá a trabalhar com strings e concatenação de strings." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Compreendendo Clareza de Código", + "intro": [ + "Nessas lições, você aprenderá sobre comentários em JavaScript e o papel dos pontos e vírgulas na programação." ] }, "workshop-greeting-bot": { - "title": "Build a Greeting Bot", + "title": "Crie um Bot de Saudações", "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." + "Neste workshop, você aprenderá os fundamentos do JavaScript criando um bot de saudações.", + "Você aprenderá sobre variáveis, let, const, console.log e uso básico de strings." ] }, "lab-javascript-trivia-bot": { - "title": "Build a JavaScript Trivia Bot", + "title": "Crie um Bot Informativo em JavaScript", "intro": [ - "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot." + "Neste laboratório, você praticará trabalhar com variáveis e strings em JavaScript criando um bot informativo." ] }, "lab-sentence-maker": { - "title": "Build a Sentence Maker", + "title": "Crie um Construtor de Frases", "intro": [ - "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories." + "Neste laboratório, você continuará praticando com strings e concatenação criando e personalizando várias histórias." ] }, "lecture-working-with-data-types": { - "title": "Working with Data Types", + "title": "Trabalhando com Tipos de Dados", "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." + "Nas próximas aulas, você aprenderá a trabalhar com tipos de dados em JavaScript. Você também aprenderá como a tipagem dinâmica difere da estática, o operador typeof, e o bug typeof null." ] }, "review-javascript-variables-and-data-types": { - "title": "JavaScript Variables and Data Types Review", + "title": "Revisão sobre Variáveis e Tipos de Dados em JavaScript", "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." + "Antes de responder perguntas sobre variáveis e tipos de dados em JavaScript, você deve 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": "JavaScript Variables and Data Types Quiz", + "title": "Questionário sobre Variáveis e Tipos de Dados em JavaScript", "intro": [ - "Test your knowledge of JavaScript variables and data types with this quiz." + "Teste seu conhecimento sobre variáveis e tipos de dados em JavaScript com este questionário." ] }, "lecture-working-with-strings-in-javascript": { - "title": "Working with Strings in JavaScript", + "title": "Trabalhando com Strings no 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." + "Nestas aulas, você aprenderá a trabalhar com strings no 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": "Build a Teacher Chatbot", + "title": "Crie um Chatbot Professor", "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." + "Neste workshop, você continuará aprendendo mais sobre strings em JavaScript criando um chatbot.", + "Você aprenderá a trabalhar com literais de modelo e com o método indexOf." ] }, "lecture-working-with-string-character-methods": { - "title": "Working with String Character Methods", + "title": "Trabalhando com Métodos de Caracteres de String", "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." + "Nesta aula, 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": "Working with String Search and Slice Methods", + "title": "Trabalhando com Métodos de Pesquisa e Segmentação de Strings", "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." + "Nesta aula, você aprenderá a procurar substrings usando o método includes() e como extrair partes de strings usando o método slice()." ] }, "lecture-working-with-string-formatting-methods": { - "title": "Working with String Formatting Methods", + "title": "Trabalhando com Métodos de Formatação de Strings", "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." + "Nesta aula, 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": "Working with String Modification Methods", + "title": "Trabalhando com Métodos de Modificação de Strings", "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." + "Nesta aula, você aprenderá a modificar strings substituindo partes delas com o método replace() e como repetir strings várias vezes usando o método repeat()." + ] + }, + "workshop-string-transformer": { + "title": "Crie um Transformer de String", + "intro": [ + "Neste workshop, você praticará o uso dos métodos replace(), replaceAll() e repeat()." ] }, "review-javascript-strings": { - "title": "JavaScript Strings Review", + "title": "Revisão sobre Strings em JavaScript", "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." + "Antes de ser questionado sobre o trabalho com strings no JavaScript, você precisa revisar.", + "Abra esta página para revisar como trabalhar com literais de modelo, o método slice, o método includes, o método trim e mais." ] }, "quiz-javascript-strings": { - "title": "JavaScript Strings Quiz", - "intro": ["Test your knowledge of JavaScript strings with this quiz."] + "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": "Working with Numbers and Arithmetic Operators", + "title": "Trabalhando com Números e Operadores Aritméticos", "intro": [ - "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings." + "Nestas aulas, você aprenderá sobre o tipo número, operadores aritméticos e como usá-los com números e strings." ] }, "lecture-working-with-operator-behavior": { - "title": "Working with Operator Behavior", + "title": "Trabalhando com Comportamento de Operadores", "intro": [ - "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators." + "Nestas aulas, você aprenderá sobre a precedência de operadores, operadores de incremento e decremento, e operadores de atribuição composta." ] }, "lecture-working-with-comparison-and-boolean-operators": { - "title": "Working with Comparison and Boolean Operators", + "title": "Trabalhando com Operadores de Comparação e Booleanos", "intro": [ - "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators." + "Nestas aulas, 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": "Working with Unary and Bitwise Operators", + "title": "Trabalhando com Operadores Unários e Bitwise", "intro": [ - "In these lectures, you will learn about unary and bitwise operators." + "Nestas aulas, você aprenderá sobre operadores unários e operadores bitwise." ] }, "lecture-working-with-conditional-logic-and-math-methods": { - "title": "Working with Conditional Logic and Math Methods", + "title": "Trabalhando com Lógica Condicional e Métodos Matemáticos", "intro": [ - "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object." + "Nestas aulas, você aprenderá sobre instruções condicionais, operadores lógicos binários e o objeto Math." ] }, "workshop-mathbot": { - "title": "Build a Mathbot", + "title": "Crie um Bot de Matemática", "intro": [ - "In this workshop, you will review how to work with the different Math object methods by building a Mathbot." + "Neste workshop, você revisará como trabalhar com os diferentes métodos do objeto Math criando um Bot de Matemática." ] }, "lab-fortune-teller": { - "title": "Build a Fortune Teller", + "title": "Crie um Adivinhador do Futuro", "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." + "Neste laboratório, você construirá 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": "Working with Numbers and Common Number Methods", + "title": "Trabalhando com Números e Métodos Comuns de Números", "intro": [ - "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()." + "Nestas aulas, você aprenderá sobre números e métodos comuns de números. Estes incluem isNaN(), parseInt(), parseFloat() e toFixed()." ] }, "review-javascript-math": { - "title": "JavaScript Math Review", + "title": "Revisão sobre Math em JavaScript", "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." + "Antes de ser questionado sobre o uso do 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": "JavaScript Math Quiz", + "title": "Questionário sobre Math em JavaScript", "intro": [ - "Test your knowledge of the JavaScript Math object with this quiz." + "Teste seu conhecimento sobre o objeto Math do JavaScript com este questionário." ] }, "lecture-understanding-comparisons-and-conditionals": { - "title": "Understanding Comparisons and Conditionals", + "title": "Compreendendo Comparações e Condicionais", "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." + "Nestas aulas, você aprenderá sobre operadores de comparação e condicionais. Você aprenderá como diversos condicionais diferem entre si e como comparações funcionam com null e undefined." ] }, "review-javascript-comparisons-and-conditionals": { - "title": "JavaScript Comparisons and Conditionals Review", + "title": "Revisão sobre Comparações e Condicionais em JavaScript", "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." + "Antes de ser testado sobre o trabalho com 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": "JavaScript Comparisons and Conditionals Quiz", + "title": "Questionário sobre Comparações e Condicionais em JavaScript", "intro": [ - "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz." + "Teste seu conhecimento sobre comparações e condicionais em JavaScript com este questionário." ] }, "lecture-working-with-functions": { - "title": "Working with Functions", + "title": "Trabalhando com Funções", "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. " + "Nestas aulas, você aprenderá a 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": "Build a Calculator", + "title": "Crie uma Calculadora", "intro": [ - "In this workshop, you will review your knowledge of functions by building a calculator." + "Neste workshop, você revisará seu conhecimento sobre funções criando uma calculadora." ] }, "lab-boolean-check": { - "title": "Build a Boolean Check Function", + "title": "Crie uma Função de Verificação Booleana", "intro": [ - "In this lab, you'll implement a function that checks if a value is a boolean." + "Neste laboratório, você implementará uma função que verifica se um valor é booleano." ] }, "lab-email-masker": { - "title": "Build an Email Masker", + "title": "Crie um Mascarador de E-mails", "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." + "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": "Build a Loan Qualification Checker", + "title": "Crie um Verificador de Qualificação para Empréstimos", "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." + "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": "Build a Celsius to Fahrenheit Converter", + "title": "Crie um Conversor de Celsius para Fahrenheit", "intro": [ - "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit." + "Neste laboratório, você implementará uma função que converte a temperatura de Celsius para Fahrenheit." ] }, "lab-counting-cards": { - "title": "Build a Card Counting Assistant", - "intro": ["In this lab you will use JavaScript to count dealt 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": "Build a Leap Year Calculator ", + "title": "Crie uma Calculadora de Ano Bissexto", "intro": [ - "In this lab you'll use conditional statements and loops to determine if a year is a leap year." + "Neste laboratório, você usará instruções condicionais e laços para determinar se um ano é bissexto." ] }, "lab-truncate-string": { - "title": "Implement the Truncate String Algorithm", + "title": "Implemente o Algoritmo de String Truncada", "intro": [ - "In this lab, you will practice truncating a string at a certain length." + "Neste laboratório, você praticará truncar uma string em um certo comprimento." ] }, "lab-string-ending-checker": { - "title": "Build a Confirm the Ending Tool", + "title": "Crie uma Ferramenta para Confirmar o Fim de String", "intro": [ - "In this lab, you will implement a function that checks if a given string ends with a specified target string." + "Neste laboratório, você implementará uma função que verifica se uma string fornecida termina com uma string alvo especificada." ] }, "review-javascript-functions": { - "title": "JavaScript Functions Review", + "title": "Revisão sobre Funções em JavaScript", "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." + "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": "JavaScript Functions Quiz", - "intro": ["Test your knowledge of JavaScript functions with this quiz."] + "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": "Working with Arrays", + "title": "Trabalhando com 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." + "Nestas aulas, 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": "Build a Shopping List", + "title": "Crie uma Lista de Compras", "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." + "Neste workshop, você praticará como trabalhar com arrays criando uma lista de compras.", + "Você revisará como adicionar e remover elementos de um array usando métodos como push, pop, shift e unshift." ] }, "lab-lunch-picker-program": { - "title": "Build a Lunch Picker Program", + "title": "Crie um Programa de Seleção de Almoço", "intro": [ - "In this lab, you'll review working with arrays and random numbers by building a lunch picker program." + "Neste laboratório, você revisará o trabalho com arrays e números aleatórios criando um programa de seleção de almoço." ] }, "lab-golf-score-translator": { - "title": "Build a Golf Score Translator", + "title": "Crie um Tradutor de Pontuação de Golfe", "intro": [ - "For this lab, you will use array methods to translate golf scores into their nickname." + "Para este laboratório, você utilizará métodos de array para traduzir pontuações de golfe para seus apelidos." ] }, "lab-reverse-a-string": { - "title": "Build a String Inverter", + "title": "Crie um Inversor de Strings", "intro": [ - "In this lab, you create a function that reverses a given string." + "Neste laboratório, você criará uma função que inverte uma string fornecida." ] }, "lecture-working-with-common-array-methods": { - "title": "Working with Common Array Methods", + "title": "Trabalhando com Métodos Comuns de Array", "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." + "Nestes cursos, você 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": "JavaScript Arrays Review", + "title": "Revisão sobre Arrays em JavaScript", "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." + "Antes de ser questionado sobre arrays em JavaScript, você deve revisar o que aprendeu sobre eles.", + "Abra esta página para revisar conceitos como destruição de arrays, como adicionar e remover elementos de um array, e mais." ] }, "quiz-javascript-arrays": { - "title": "JavaScript Arrays Quiz", - "intro": ["Test your knowledge of JavaScript arrays with this quiz."] + "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": "Introduction to JavaScript Objects and Their Properties", + "title": "Introdução a Objetos JavaScript e Suas Propriedades", "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." + "Nestas lições, 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": "Working with Optional Chaining and Object Destructuring", + "title": "Trabalhando com Encadeamento Opcional e Desestruturação de Objetos", "intro": [ - "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax." + "Nestas lições, 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": "Working with JSON", + "title": "Trabalhando com 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." + "Nestas lições, você aprenderá sobre a 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": "Build a Recipe Tracker", + "title": "Crie um Rastreador de Receitas", "intro": [ - "In this workshop, you will review working with JavaScript objects by building a recipe tracker." + "Neste workshop, você revisará o trabalho com objetos JavaScript criando um rastreador de receitas." ] }, "lab-quiz-game": { - "title": "Build a Quiz Game", + "title": "Crie um Jogo de Questionário", "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." + "Neste laboratório, você criará um jogo de questionário usando arrays e objetos JavaScript.", + "Você também praticará o uso de funções para selecionar aleatoriamente uma pergunta e uma resposta de um array e compará-las." ] }, "lab-record-collection": { - "title": "Build a Record Collection", + "title": "Crie uma Coleção de Discos", "intro": [ - "In this lab you will build a function to manage a record collection." + "Neste laboratório, você criará uma função para gerenciar uma coleção de discos." ] }, "review-javascript-objects": { - "title": "JavaScript Objects Review", + "title": "Revisão sobre Objetos em JavaScript", "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." + "Antes de fazer o questionário sobre objetos em JavaScript, você deve revisar o que aprendeu sobre eles.", + "Abra esta página para revisar conceitos como acessar informações de objetos, desestruturação de objetos, trabalhar com JSON e mais." ] }, "quiz-javascript-objects": { - "title": "JavaScript Objects Quiz", - "intro": ["Test your knowledge of JavaScript objects with this quiz."] + "title": "Questionário sobre Objetos em JavaScript", + "intro": [ + "Teste seu conhecimento sobre objetos em JavaScript com este questionário." + ] }, "lecture-working-with-loops": { - "title": "Working with Loops", + "title": "Trabalhando com Laços", "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." + "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, como eles funcionam e também como a iteração funciona." ] }, "workshop-sentence-analyzer": { - "title": "Build a Sentence Analyzer", + "title": "Crie um Analisador de Frases", "intro": [ - "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app." + "Neste workshop, você revisará como trabalhar com laços em JavaScript desenvolvendo um aplicativo de análise de frases." ] }, "lab-longest-word-in-a-string": { - "title": "Build a Longest Word Finder App", + "title": "Crie um Aplicativo de Pesquisa da Palavra Mais Longa", "intro": [ - "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence." + "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": "Build a Factorial Calculator ", + "title": "Crie uma Calculadora de Fatorial", "intro": [ - "In this lab, you'll build a factorial calculator.", - "You'll practice using loops and conditionals to calculate the factorial of a number." + "Neste laboratório, você criará uma calculadora de fatorial.", + "Você praticará o uso de laços e condicionais para calcular o fatorial de um número." ] }, "lab-mutations": { - "title": "Implement the Mutations Algorithm", + "title": "Implemente o Algoritmo de Mutações", "intro": [ - "In this lab, you will practice iterating over two different strings to compare their characters." + "Neste laboratório, você praticará iterar sobre duas strings diferentes para comparar seus caracteres." ] }, "lab-chunky-monkey": { - "title": "Implement the Chunky Monkey Algorithm", + "title": "Implemente o Algoritmo do Macaco Chunky", "intro": [ - "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice." + "Neste laboratório você praticará dividir um array em arrays menores com a técnica de sua escolha." ] }, "lab-profile-lookup": { - "title": "Build a Profile Lookup", + "title": "Crie uma Pesquisa de Perfil", "intro": [ - "In this lab, you'll create a function that looks up profile information." + "Neste laboratório, você criará uma função que busca informações de perfil." ] }, "lab-repeat-a-string": { - "title": "Build a String Repeating Function", + "title": "Crie uma Função de Repetição de Strings", "intro": [ - "In this lab, you will implement loops to repeat a string a specified number of times." + "Neste laboratório, você implementará laços para repetir uma string um número específico de vezes." + ] + }, + "lab-missing-letter-detector": { + "title": "Crie um Detector de Letras Faltantes", + "intro": [ + "Neste laboratório, você construirá uma função que encontra a letra faltante em um intervalo dado de letras consecutivas e a retorna." ] }, "review-javascript-loops": { - "title": "JavaScript Loops Review", + "title": "Revisão sobre Laços em JavaScript", "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." + "Antes de fazer o questionário sobre os diferentes tipos de laços no JavaScript, você deve revisá-los.", + "Abra esta página para revisar o laço for...of, o laço while, instruções break e continue, e mais." ] }, "quiz-javascript-loops": { - "title": "JavaScript Loops Quiz", - "intro": ["Test your knowledge of JavaScript loops with this quiz."] + "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": "Working with Types and Objects", + "title": "Trabalhando com Tipos e Objetos", "intro": [ - "In these lectures you will learn about string objects, the toString() method, the Number constructor and more." + "Nestas lições, você aprenderá sobre objetos string, o método toString(), o construtor Number e mais." ] }, "lecture-working-with-arrays-variables-and-naming-practices": { - "title": "Working with Arrays, Variables, and Naming Practices", + "title": "Trabalhando com Arrays, Variáveis e Práticas de Nomeação", "intro": [ - "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays." + "Nestas lições, 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": "Working with Code Quality and Execution Concepts", + "title": "Trabalhando com Qualidade de Código e Conceitos de Execução", "intro": [ - "In these lectures you will learn what are linters and formatters, what is memory management, and closures." + "Nestas lições, você aprenderá sobre o que são linters e formatadores, o que é gerenciamento de memória e closures." ] }, "lab-largest-number-finder": { - "title": "Build the Largest Number Finder", + "title": "Crie o Encontrador do Maior Número", "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." + "Neste laboratório, você usará os fundamentos do JavaScript para criar uma função que encontre o maior número em cada sub-vetor de um vetor fornecido." ] }, "lab-first-element-finder": { - "title": "Build a First Element Finder", + "title": "Crie um Encontrador do Primeiro Elemento", "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\"." + "Neste laboratório, você criará uma função que percorre um vetor e retorna o primeiro elemento em que passa por um \"teste de veracidade\"." ] }, "lab-slice-and-splice": { - "title": "Implement the Slice and Splice Algorithm", + "title": "Implemente o Algoritmo de Fatia e Emenda", "intro": [ - "In this lab, you will practice merging an array with another." + "Neste laboratório, você praticará a fusão de um array com outro." ] }, "lab-pyramid-generator": { - "title": "Build a Pyramid Generator", + "title": "Crie um Gerador de Pirâmides", "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." + "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": "Build a Gradebook App", + "title": "Crie um Aplicativo de Quadro de Notas", "intro": [ - "For this lab, you'll create a gradebook app.", - "You'll practice conditionals to determine the student's grade based on their score." + "Para este laboratório, você criará um aplicativo de quadro de notas.", + "Você praticará condicionais para determinar a nota do aluno com base na sua pontuação." ] }, "lecture-the-var-keyword-and-hoisting": { - "title": "The var Keyword and Hoisting", + "title": "A Palavra-Chave var e Elevação", "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." + "Nestes cursos, você aprenderá sobre a palavra-chave var e por que não é 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ê construirá uma função que converte uma string em formato de título." ] }, "lab-falsy-remover": { - "title": "Implement a Falsy Remover", + "title": "Implemente um Removedor de Falsos", "intro": [ - "In this lab, you will create a function that removes all falsy values from an array." + "Neste laboratório, você criará uma função que remove todos os valores falsos de um vetor." ] }, "lab-inventory-management-program": { - "title": "Build an Inventory Management Program", + "title": "Crie um Programa de Gestão de Inventário", "intro": [ - "For this lab, you'll build an inventory management program using JavaScript.", - "You'll use JavaScript array of objects to manage the inventory." + "Para este laboratório, você criará um programa de gestão de inventário usando JavaScript.", + "Você usará arrays de objetos do JavaScript para gerir o inventário." ] }, "lecture-understanding-modules-imports-and-exports": { - "title": "Understanding Modules, Imports, and Exports", + "title": "Compreendendo Módulos, Importações e Exportações", "intro": [ - "In this lecture, you will learn about modules, imports, and exports in JavaScript." + "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": "Build a Password Generator App", + "title": "Crie um Aplicativo Gerador de Senhas", "intro": [ - "In this lab, you'll build a password generator app based on the user's input." + "Neste laboratório, você criará um aplicativo gerador de senhas baseado na entrada do usuário." ] }, "lab-sum-all-numbers-algorithm": { - "title": "Design a Sum All Numbers Algorithm", + "title": "Projete um Algoritmo de Soma de Todos os Números", "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." + "Neste laboratório, você projetará um algoritmo que soma todos os números. Este algoritmo pega um array de dois números e retorna a soma desses 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": "Implement an HTML Entity Converter", + "title": "Implemente um Conversor de Entidades HTML", "intro": [ - "In this lab, you will convert special characters in a string to their corresponding HTML entities." + "Neste laboratório, você converterá caracteres especiais em uma string para suas entidades HTML correspondentes." + ] + }, + "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-element-skipper": { + "title": "Implemente um Pula-Elementos", + "intro": [ + "Neste laboratório, você criará uma função que pula elementos em um array com base em um valor de passo especificado." ] }, "lab-optional-arguments-sum-function": { - "title": "Build an Optional Arguments Sum Function", + "title": "Crie uma Função de Soma de Argumentos Opcionais", "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." + "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": "JavaScript Fundamentals Review", + "title": "Revisão dos Fundamentos do JavaScript", "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." + "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": "JavaScript Fundamentals Quiz", + "title": "Questionário sobre os Fundamentos do JavaScript", "intro": [ - "Test your knowledge of JavaScript fundamentals with this quiz." + "Teste seu conhecimento sobre os fundamentos do JavaScript com este questionário." ] }, "lecture-working-with-higher-order-functions-and-callbacks": { - "title": "Working with Higher Order Functions and Callbacks", + "title": "Trabalhando com Funções de Ordem Superior e 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." + "Nestas lições, 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": "Build a Library Manager", + "title": "Crie um Gerenciador de Biblioteca", "intro": [ - "In this workshop, you will learn higher order array methods by building a library manager." + "Neste workshop, você aprenderá métodos de array de ordem superior construindo um gerenciador de biblioteca." ] }, "lab-book-organizer": { - "title": "Build a Book Organizer", + "title": "Crie um Organizador de Livros", "intro": [ - "In this lab, you'll build a book organizer using higher order functions in JavaScript." + "Neste laboratório, você criará um organizador de livros utilizando funções de ordem superior em JavaScript." ] }, "lab-sorted-index-finder": { - "title": "Implement a Sorted Index Finder", + "title": "Implemente um Localizador de Índices Ordenados", "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." + "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": "Build a Symmetric Difference Function", + "title": "Crie uma Função de Diferença Simétrica", "intro": [ - "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." + "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-prime-number-sum-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": "JavaScript Higher Order Functions Review", + "title": "Revisão sobre Funções de Ordem Superior em JavaScript", "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." + "Antes de ser questionado 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": "JavaScript Higher Order Functions Quiz", + "title": "Questionário sobre Funções de Ordem Superior em JavaScript", "intro": [ - "Test what you've learned about JavaScript higher order functions with this quiz." + "Teste o que você aprendeu sobre funções de ordem superior em JavaScript com este questionário." ] }, "lecture-working-with-the-dom-click-events-and-web-apis": { - "title": "Working with the DOM, Click Events, and Web APIs", + "title": "Trabalhando com o DOM, Eventos de Clique e APIs para Web", "intro": [ - "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs." + "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": "Build a Storytelling App", + "title": "Crie um App de Narrativas", "intro": [ - "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre." + "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": "Build a Favorite Icon Toggler", + "title": "Crie um Alternador de Ícones Favoritos", "intro": [ - "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events." + "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": "Understanding the Event Object and Event Delegation", + "title": "Compreensão do Objeto de Evento e Delegação de Evento", "intro": [ - "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation." + "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": "Build a Music Instrument Filter", + "title": "Crie um Filtro de Instrumentos Musicais", "intro": [ - "In this workshop, you will build a music instrument filter with JavaScript." + "Neste workshop, você criará um filtro de instrumentos musicais com JavaScript." ] }, "lab-real-time-counter": { - "title": "Build a Real Time Counter", + "title": "Crie um Contador em Tempo Real", "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." + "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": "Build a Lightbox Viewer", + "title": "Crie um Visualizador de Lightbox", "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." + "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": "Build a Rock, Paper, Scissors Game", + "title": "Crie um Jogo de Pedra, Papel e Tesoura", "intro": [ - "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game." + "Neste workshop, você revisará a manipulação do DOM e eventos criando um jogo de Pedra, Papel e Tesoura." ] }, "lab-football-team-cards": { - "title": "Build a Set of Football Team Cards", + "title": "Crie um Conjunto de Cartões de Times de Futebol", "intro": [ - "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards." + "Neste laboratório, você usará manipulação do DOM, desestruturação de objetos, tratamento de eventos e filtragem de dados para construir um conjunto de cartões de equipe de futebol." ] }, "review-dom-manipulation-and-click-events-with-javascript": { - "title": "DOM Manipulation and Click Events with JavaScript Review", + "title": "Revisão sobre a Manipulação do DOM e Eventos de Clique com JavaScript", "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." + "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": "DOM Manipulation and Click Events with JavaScript Quiz", + "title": "Questionário sobre Manipulação do DOM e Eventos de Clique com JavaScript", "intro": [ - "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz." + "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": "Understanding aria-expanded, aria-live, and Common ARIA States", + "title": "Compreendendo aria-expanded, aria-live e Estados Comuns do ARIA", "intro": [ - "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states." + "Nestes ensinamentos, você aprenderá mais sobre atributos ARIA como aria-expanded, aria-live e estados ARIA comuns." ] }, "workshop-planets-tablist": { - "title": "Build a Planets Tablist", + "title": "Crie uma Lista com Guias de Planetas", "intro": [ - "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system." + "Neste workshop, você criará uma interface dinâmica com guias que exibirá fatos sobre os planetas do sistema solar." ] }, "workshop-note-taking-app": { - "title": "Build a Note Taking App", + "title": "Crie um Aplicativo de Anotações", "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." + "Neste workshop, você criará um aplicativo de anotações acessível.", + "Isso proporcionará a oportunidade de praticar o uso do atributo aria-live." ] }, "lab-theme-switcher": { - "title": "Build a Theme Switcher", + "title": "Crie um Alternador de Temas", "intro": [ - "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes." + "Neste laboratório, você criará um alternador de temas e praticará com os atributos aria-haspopup, aria-expanded e aria-controls." ] }, "review-js-a11y": { - "title": "JavaScript and Accessibility Review", + "title": "Revisão de JavaScript e Acessibilidade", "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." + "Antes de ser testado sobre 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": "JavaScript and Accessibility Quiz", + "title": "Questionário de JavaScript e Acessibilidade", "intro": [ - "Test your knowledge of JavaScript and accessibility best practices with this quiz." + "Teste seu conhecimento das melhores práticas de JavaScript e acessibilidade com este questionário." ] }, "lecture-debugging-techniques": { - "title": "Debugging Techniques", + "title": "Técnicas de Depuração", "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." + "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": "Debug a Random Background Color Changer", + "title": "Depure um Modificador de Cor de Fundo Aleatório", "intro": [ - "In this lab, you'll debug a random background color changer and fix the errors to make it work properly." + "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": "Debugging JavaScript Review", + "title": "Revisão sobre Depuração em JavaScript", "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." + "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": "Debugging JavaScript Quiz", - "intro": ["Test your knowledge of JavaScript debugging with this quiz."] + "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": "Working with Regular Expressions", + "title": "Trabalhando com Expressões Regulares", "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." + "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, retro-referências, quantificadores e mais." ] }, "workshop-spam-filter": { - "title": "Build a Spam Filter", + "title": "Crie um Filtro de Spam", "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." + "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": "Build a Palindrome Checker", + "title": "Crie um Verificador de Palíndromo", "intro": [ - "For this lab, you'll build an application that checks whether a given word is a palindrome." + "Para esse laboratório, você criará uma aplicação que verifica se uma palavra fornecida é um palíndromo." ] }, "lab-markdown-to-html-converter": { - "title": "Build a Markdown to HTML Converter", + "title": "Crie um Conversor de Markdown para HTML", "intro": [ - "For this lab, you'll build a Markdown to HTML converter using JavaScript.", - "You'll practice regular expressions, string manipulation, and more." + "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": "Build a RegEx Sandbox", - "intro": ["In this lab you'll build a 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": "JavaScript Regular Expressions Review", + "title": "Revisão sobre Expressões Regulares em JavaScript", "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." + "Antes de ser testado sobre expressões regulares, você deve revisar o que aprendeu.", + "Abra esta página para revisar conceitos como previsões, previsões reversas, modificadores comuns de regex e mais." ] }, "quiz-javascript-regular-expressions": { - "title": "JavaScript Regular Expressions Quiz", + "title": "Questionário sobre Expressões Regulares em JavaScript", "intro": [ - "Test your knowledge of JavaScript Regular Expressions with this quiz." + "Teste seu conhecimento sobre expressões regulares em JavaScript com este questionário." ] }, "lecture-understanding-form-validation": { - "title": "Understanding Form Validation", + "title": "Compreendendo Validação de Formulários", "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." + "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": "Build a Calorie Counter", + "title": "Crie um Contador de Calorias", "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." + "Às vezes, quando você está programando uma aplicação 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": "Build a Customer Complaint Form", + "title": "Crie um Formulário de Reclamação de Clientes", "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." + "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": "Form Validation with JavaScript Review", + "title": "Revisão sobre Validação de Formulários em JavaScript", "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." + "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": "Form Validation with JavaScript Quiz", + "title": "Questionário sobre Validação de Formulários em JavaScript", "intro": [ - "Test what you've learned about JavaScript form validation with this quiz." + "Teste o que você aprendeu sobre validação de formulários com JavaScript com este questionário." ] }, "lecture-working-with-dates": { - "title": "Working with Dates", + "title": "Trabalhando com Datas", "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." + "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": "Build a Date Conversion Program", + "title": "Crie um programa de conversão de data", "intro": [ - "In this lab, you'll build a program to convert a date from one format to another." + "Neste laboratório, você criará um programa para converter a data de um formato para outro." ] }, "review-javascript-dates": { - "title": "JavaScript Dates Review", + "title": "Revisão sobre Datas em JavaScript", "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." + "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": "JavaScript Dates Quiz", + "title": "Questionário sobre Datas em JavaScript", "intro": [ - "Test what you've learned about JavaScript Dates with this quiz." + "Teste o que você aprendeu sobre datas em JavaScript com este questionário." ] }, "lecture-working-with-audio-and-video": { - "title": "Working with Audio and Video", + "title": "Trabalhando com Áudio e Vídeo", "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." + "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": "Build a Music Player", + "title": "Crie um Tocador de Música", "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." + "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": "Build a Drum Machine", + "title": "Crie uma Bateria Eletrônica", "intro": [ - "For this lab you will use the audio element to build a drum machine." + "Para este laboratório, você usará o elemento audio para criar uma bateria eletrônica." ] }, "review-javascript-audio-and-video": { - "title": "JavaScript Audio and Video Review", + "title": "Revisão sobre Áudio e Vídeo em JavaScript", "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." + "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": "JavaScript Audio and Video Quiz", + "title": "Questionário sobre Áudio e Vídeo em JavaScript", "intro": [ - "Test what you've learned about JavaScript audio and video with this quiz." + "Teste o que você aprendeu sobre áudio e vídeo em JavaScript com este questionário." ] }, "lecture-working-with-maps-and-sets": { - "title": "Working with Maps and Sets", + "title": "Trabalhando com Maps e 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." + "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": "Build a Plant Nursery Catalog", + "title": "Crie um Catálogo de Viveiro de Plantas", "intro": [ - "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog." + "Neste workshop, você praticará usando Maps e Sets criando um catálogo de viveiro de plantas." ] }, "lab-voting-system": { - "title": "Build a Voting System", + "title": "Crie um Sistema de Votação", "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." + "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": "JavaScript Maps and Sets Review", + "title": "Revisão sobre Maps e Sets em JavaScript", "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." + "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": "JavaScript Maps and Sets Quiz", + "title": "Questionário sobre Maps e Sets em JavaScript", "intro": [ - "Test what you've learned about JavaScript Maps and Sets with this quiz." + "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": "Working with Client-Side Storage and CRUD Operations", + "title": "Trabalhando com Armazenamento no Lado do Cliente e Operações CRUD", "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." + "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": "Build a Todo App using Local Storage", + "title": "Crie um App de Lista de Tarefas usando Armazenamento Local", "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." + "O armazenamento local é um recurso do navegador da web que permite que aplicações web armazenem 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 em uma sessão de página posterior.", + "Neste workshop, você aprenderá a manipular entradas de formulário, 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": "Build a Bookmark Manager App", + "title": "Crie uma aplicação gerenciadora de favoritos", "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." + "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": "Local Storage and CRUD Review", + "title": "Revisão sobre Armazenamento Local e CRUD", "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." + "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": "Local Storage and CRUD Quiz", + "title": "Questionário sobre Armazenamento Local e CRUD", "intro": [ - "Test what you've learned about local storage and CRUD with this quiz." + "Teste o que você aprendeu sobre armazenamento local e CRUD com este questionário." ] }, "lecture-understanding-how-to-work-with-classes-in-javascript": { - "title": "Understanding How to Work with Classes in JavaScript", + "title": "Compreendendo Como Trabalhar com Classes em 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." + "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": "Build a Shopping Cart", + "title": "Crie um Carrinho de Compras", "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." + "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": "Build a Project Idea Board", + "title": "Crie um Quadro de Ideias de Projetos", "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." + "Neste laboratório, você construirá 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": "Build a Bank Account Management Program", + "title": "Crie um Programa de Gestão de Contas Bancárias", "intro": [ - "In this lab, you'll build a simple transaction management system for a bank account." + "Neste laboratório, você criará um sistema simples de gestão de transações para uma conta de banco." ] }, "review-javascript-classes": { - "title": "JavaScript Classes Review", + "title": "Revisão sobre Classes em JavaScript", "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." + "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": "JavaScript Classes Quiz", + "title": "Questionário sobre Classes em JavaScript", "intro": [ - "Test what you've learned about JavaScript classes with this quiz." + "Teste o que você aprendeu sobre classes JavaScript com este questionário." ] }, "lecture-understanding-recursion-and-the-call-stack": { - "title": "Understanding Recursion and the Call Stack", + "title": "Compreendendo Recursão e a Pilha de Chamadas", "intro": [ - "In this lecture, you will learn about recursion and the call stack." + "Nesta lição, você aprenderá sobre recursão e a pilha de chamadas." ] }, "workshop-decimal-to-binary-converter": { - "title": "Build a Decimal to Binary Converter", + "title": "Crie um Conversor de Decimais para Binários", "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." + "Recursão é um conceito de programação onde uma função chama a si mesma. Isso pode reduzir um problema complexo em sub-problemas mais simples, até que eles se tornem fáceis de 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": "Build a Permutation Generator", + "title": "Crie um Gerador de Permutação", "intro": [ - "For this lab, you'll build a permutation generator that produces all possible permutations of a given string." + "Neste laboratório, você criará um gerador de permutação que produz todas as permutações possíveis de uma string fornecida." ] }, "review-recursion": { - "title": "Recursion Review", + "title": "Revisão sobre Recursão", "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." + "Antes de ser questionado 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": "Recursion Quiz", - "intro": ["Test your knowledge of Recursion with this quiz."] + "title": "Questionário sobre Recursão", + "intro": [ + "Teste seu conhecimento sobre recursão com este questionário." + ] }, "lecture-understanding-functional-programming": { - "title": "Understanding Functional Programming", + "title": "Compreendendo Programação Funcional ", "intro": [ - "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying." + "Nestas lições, você aprenderá sobre programação funcional e como aninhar funções usando uma técnica chamada currying." ] }, "workshop-recipe-ingredient-converter": { - "title": "Build a Recipe Ingredient Converter", + "title": "Crie um Conversor de Ingredientes de Receita", "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." + "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": "Build a Sorting Visualizer", + "title": "Crie um Visualizador de Ordenação", "intro": [ - "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers." + "Neste laboratório, você usará JavaScript para visualizar os passos que o algoritmo Bubble Sort faz para reordenar um array de inteiros." ] }, "review-javascript-functional-programming": { - "title": "JavaScript Functional Programming Review", + "title": "Revisão sobre Programação Funcional em JavaScript", "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." + "Antes de ser questionado 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": "JavaScript Functional Programming Quiz", + "title": "Questionário sobre Programação Funcional em JavaScript", "intro": [ - "Test what you've learned about JavaScript functional programming with this quiz." + "Teste o que você aprendeu sobre programação funcional em JavaScript com este questionário." ] }, "lecture-understanding-asynchronous-programming": { - "title": "Understanding Asynchronous Programming", + "title": "Compreendendo Programação Assíncrona", "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." + "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": "Build an fCC Authors Page", + "title": "Crie uma Página de Autores do fCC", "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." + "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": "Build an fCC Forum Leaderboard", + "title": "Crie um Quadro de Líderes para o Fórum do fCC", "intro": [ - "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard." + "Para este laboratório, você praticará JavaScript assíncrono programando seu próprio painel do fórum do freeCodeCamp." ] }, "lab-weather-app": { - "title": "Build a Weather App", + "title": "Crie um Aplicativo do Tempo", "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." + "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-javascrip": { - "title": "Asynchronous JavaScript Review", + "title": "Revisão sobre JavaScript Assíncrono", "intro": [ - "Review asynchronous JavaScript concepts to prepare for the upcoming quiz." + "Revise conceitos de JavaScript assíncrono para se preparar para o próximo questionário." ] }, "quiz-asynchronous-javascript": { - "title": "Asynchronous JavaScript Quiz", + "title": "Questionário sobre JavaScript Assíncrono", "intro": [ - "Test what you've learned about asynchronous JavaScript with this quiz." + "Teste o que você aprendeu sobre JavaScript assíncrono com este questionário." ] }, "review-javascript": { - "title": "JavaScript Review", + "title": "Revisão de JavaScript", "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." + "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." ] }, "exam-javascript-certification": { - "title": "JavaScript Certification Exam", - "intro": ["Pass this exam to earn your JavaScript Certification."] + "title": "Exame de Certificação de JavaScript", + "intro": [ + "Passe neste exame para conquistar a certificação de JavaScript." + ] } } }, "front-end-development-libraries-v9": { - "title": "Front End Development Libraries Certification", + "title": "Certificação de Bibliotecas de Desenvolvimento Front-End", "intro": [ - "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", - "To earn your Front End Development Libraries Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Front End Development Libraries Certification exam." + "Este curso ensina as bibliotecas que os desenvolvedores utilizam para criar páginas da web: React, TypeScript, e mais.", + "Para conquistar sua Certificação de Bibliotecas de Desenvolvimento Front-End:", + "- Complete os cinco projetos obrigatórios para se qualificar para o exame de certificação.", + "- Passe no exame de Certificação de Bibliotecas de Desenvolvimento Front-End." ], "chapters": { - "front-end-development-libraries": "Front End Development Libraries" + "front-end-development-libraries": "Bibliotecas de Desenvolvimento Front-End" }, "modules": { - "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" + "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", + "front-end-development-libraries-certification-exam": "Exame de Certificação de Bibliotecas de Desenvolvimento Front-End" + }, + "module-intros": { + "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": "Próximo Lançamento: Outono de 2025", + "intro": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Disponível no Inverno de 2025", + "intro": [ + "Passe neste exame para conquistar a Certificação de Bibliotecas de Desenvolvimento Front-End." + ] + } }, "blocks": { - "exam-front-end-development-libraries-certification": { - "title": "Front End Development Libraries Certification Exam", + "lecture-introduction-to-javascript-libraries-and-frameworks": { + "title": "Introdução às Bibliotecas e Frameworks JavaScript", "intro": [ - "Pass this exam to earn your Front End Development Libraries Certification" + "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 cursos, você aprenderá sobre os diferentes tipos de testes." + ] + }, + "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 mais." + ] + }, + "quiz-testing": { + "title": "Questionário de 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 cursos, você aprenderá como trabalhar com bibliotecas e frameworks de 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 de 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á a utilização das classes utilitárias de grid 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 muito mais." + ] + }, + "lab-photography-exhibit": { + "title": "Projete uma Exposição Fotográfica", + "intro": [ + "Neste laboratório, você praticará o trabalho com Tailwind CSS projetando uma página de exposição fotográfica." + ] + }, + "review-css-libraries-and-frameworks": { + "title": "Revisão sobre Bibliotecas e Frameworks 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 cursos, 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." + ] + }, + "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 de Bibliotecas Front-End", + "intro": [ + "Reveja os conceitos de Bibliotecas Front-End para se preparar para o próximo questionário." + ] + }, + "exam-front-end-development-libraries-certification": { + "title": "Exame de Certificação de Bibliotecas de Desenvolvimento Front-End", + "intro": [ + "Passe neste exame para ganhar sua Certificação de Bibliotecas de Desenvolvimento Front-End" ] } } }, "python-v9": { - "title": "Python Certification", + "title": "Certificação em Python", "intro": [ - "This course teaches you the fundamentals of Python programming.", - "To earn your Python Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Python Certification exam." + "Este curso ensina os fundamentos da programação em Python.", + "Para conquistar sua Certificação em Python:", + "- Complete os cinco projetos obrigatórios para se qualificar para o exame de certificação.", + "- Passe no exame de Certificação em Python." ], "chapters": { "python": "Python" }, "modules": { - "python-certification-exam": "Python Certification Exam" + "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", + "python-certification-exam": "Exame de Certificação em Python" + }, + "module-intros": { + "python-classes-and-objects": { + "note": "Disponível no Inverno de 2025", + "intro": [ + "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": "Disponível no Inverno de 2025", + "intro": [ + "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": "Disponível no Inverno de 2025", + "intro": [ + "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": "Disponível no Inverno de 2025", + "intro": [ + "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": "Disponível no Inverno de 2025", + "intro": [ + "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": "Disponível no Inverno de 2025", + "intro": [ + "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." + ] + }, + "python-certification-exam": { + "note": "Disponível no Inverno de 2025", + "intro": ["Passe neste exame para conquistar a Certificação em Python."] + } }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Crie um Simulador de E-mails", + "intro": [ + "Neste workshop você implementará classes e objetos criando um simulador de e-mails que simula envio, recebimento e gerenciamento de e-mails entre diferentes usuários." + ] + }, + "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": "Crie um Monitor de Salários", + "intro": [ + "Neste workshop, você praticará encapsulamento, propriedades e outros conceitos de POO, criando um sistema de rastreamento de salários para empregados." + ] + }, + "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á a programação orientada a objetos para calcular as áreas de diferentes polígonos, como quadrados e retângulos." + ] + }, + "lecture-understanding-abstraction": { + "title": "Compreendendo a Abstração", + "intro": ["Aprenda sobre a Compreensão da Abstração nessas lições."] + }, + "review-object-oriented-programming": { + "title": "Revisão sobre Programação Orientada a Objetos", + "intro": [ + "Antes de fazer um questionário sobre programação orientada a objetos, você deve revisar o que aprendeu sobre o assunto." + ] + }, + "quiz-object-oriented-programming": { + "title": "Questionário sobre 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 nessas lições." + ] + }, + "workshop-linked-list-class": { + "title": "Construa uma Lista Ligada", + "intro": [ + "Neste workshop, você praticará trabalhando com estruturas de dados criando 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 e valor e é otimizada para pesquisas rápidas.", + "Neste laboratório, você usará seus conhecimentos sobre estruturas de dados para criar uma tabela hash." + ] + }, + "review-data-structures": { + "title": "Revisão de Estruturas de Dados", + "intro": [ + "Antes de fazer um questionário 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, análise de complexidade de tempo e espaço, e notação big O." + ] + }, + "quiz-data-structures": { + "title": "Questionário sobre 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 fusão.", + "Estas lições abrangem implementações de algoritmos, análise de complexidade de tempo e espaço e o paradigma de programação de dividir e conquistar." + ] + }, + "workshop-binary-search": { + "title": "Implemente o Algoritmo de Busca Binária", + "intro": [ + "O algoritmo de busca binária é um algoritmo de busca 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 Fusão", + "intro": [ + "O algoritmo de ordenação por fusão é um algoritmo de ordenação baseado no princípio de dividir e conquistar.", + "Neste workshop, você implementará o algoritmo de ordenação por fusão para ordenar uma lista de números aleatórios." + ] + }, + "lab-quicksort": { + "title": "Implemente 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 fazer um questionário sobre algoritmos de busca e ordenação, você deve revisar o que aprendeu sobre o assunto." + ] + }, + "quiz-searching-and-sorting-algorithms": { + "title": "Questionário sobre 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." + ] + }, + "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 grafo em uma representação de matriz de adjacência." + ] + }, + "workshop-breadth-first-search": { + "title": "Implemente o Algoritmo de Busca em Largura", + "intro": [ + "Neste workshop, você usará o algoritmo de busca em largura para gerar todas as combinações válidas de parênteses." + ] + }, + "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": "Implemente o Problema das N Rainhas", + "intro": [ + "Neste laboratório, você implementará uma solução para o Problema das N Rainhas." + ] + }, + "review-graphs-and-trees": { + "title": "Revisão de Grafos e Árvores", + "intro": [ + "Antes de fazer um questionário sobre grafos 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 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": [ + "Neste laboratório, você implementará um calculador de sequência de Fibonacci usando uma abordagem de programação dinâmica." + ] + }, + "review-dynamic-programming": { + "title": "Revisão de Programação Dinâmica", + "intro": [ + "Antes de fazer um questionário sobre programação dinâmica, você deve revisar o que aprendeu sobre o assunto." + ] + }, + "quiz-dynamic-programming": { + "title": "Questionário sobre 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 os conceitos de Python para se preparar para o próximo exame." + ] + }, "exam-python-certification": { - "title": "Python Certification Exam", - "intro": ["Pass this exam to earn your Python Certification"] + "title": "Exame de Certificação em Python", + "intro": ["Passe neste exame para ganhar sua Certificação em Python"] } } }, "relational-databases-v9": { - "title": "Relational Databases Certification", + "title": "Certificação de Bancos de Dados Relacionais", "intro": [ - "This course teaches you the fundamentals of relational databases.", - "To earn your Relational Databases Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Relational Databases Certification exam." + "Este curso ensina os fundamentos dos bancos de dados relacionais.", + "Para conquistar sua Certificação de Bancos de Dados Relacionais:", + "- Complete os cinco projetos obrigatórios para se qualificar para o exame de certificação.", + "- Passe no exame de Certificação de Bancos de Dados Relacionais." ], "chapters": { - "relational-databases": "Relational Databases" + "relational-databases": "Bancos de Dados Relacionais" }, "modules": { - "relational-databases-certification-exam": "Relational Databases Certification Exam" + "code-editors": "Editores de Código", + "bash-fundamentals": "Fundamentos de Bash", + "sql-and-postgresql": "SQL e PostgreSQL", + "bash-scripting": "Scripts Bash", + "sql-and-bash": "SQL e Bash", + "git": "Git", + "review-relational-databases": "Revisão de Bancos de Dados Relacionais", + "lab-celestial-bodies-database": "Crie um Banco de Dados de Corpos Celestiais", + "lab-world-cup-database": "Crie um Banco de Dados da Copa do Mundo", + "lab-salon-appointment-scheduler": "Crie um Agendador de Compromissos do Salão", + "lab-periodic-table-database": "Crie um Banco de Dados da Tabela Periódica", + "lab-number-guessing-game": "Crie um Jogo de Adivinhação de Números", + "relational-databases-certification-exam": "Exame de Certificação de Bancos de Dados Relacionais" + }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Disponível no Inverno de 2025", + "intro": [ + "Passe neste exame para conquistar a sua Certificação em Bancos de Dados Relacionais." + ] + } }, "blocks": { - "exam-relational-databases-certification": { - "title": "Relational Databases Certification Exam", + "lecture-working-with-code-editors-and-ides": { + "title": "Trabalhando com Editores de Código e IDEs", "intro": [ - "Pass this exam to earn your Relational Databases Certification" + "Nessas 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-understanding-the-command-line-and-working-with-bash": { + "title": "Compreendendo a Linha de Comando e Trabalhando com Bash", + "intro": [ + "Aprenda sobre a Linha de Comando e Trabalhar com Bash nessas 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 um boilerplate de site usando apenas a linha de comando." + ] + }, + "review-bash-commands": { + "title": "Revisão sobre Comandos do Bash", + "intro": [ + "Revise os conceitos sobre Comandos Bash para se preparar para o próximo questionário." + ] + }, + "quiz-bash-commands": { + "title": "Questionário sobre Comandos do 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 nessas 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ê criará um banco de dados de corpos celestiais usando PostgreSQL." + ] + }, + "review-sql-and-postgresql": { + "title": "Revisão sobre SQL e PostgreSQL", + "intro": [ + "Revise conceitos de SQL e PostgreSQL para se preparar para o próximo questionário." + ] + }, + "quiz-sql-and-postgresql": { + "title": "Questionário sobre SQL e PostgreSQL", + "intro": [ + "Teste o que você aprendeu sobre SQL e PostgreSQL com este questionário." + ] + }, + "lecture-understanding-bash-scripting": { + "title": "Compreendendo Scripts em Bash", + "intro": ["Aprenda sobre Scripts em Bash nessas lições."] + }, + "workshop-bash-five-programs": { + "title": "Crie Cinco Programas", + "intro": [ + "Scripts 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 Bash, criando cinco programas pequenos." + ] + }, + "review-bash-scripting": { + "title": "Revisão sobre Scripts 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 Bash", + "intro": [ + "Teste o que você aprendeu sobre scripts do Bash neste questionário." + ] + }, + "lecture-working-with-sql": { + "title": "Trabalhando com SQL", + "intro": [ + "Nessas lições, 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": [ + "SQL, ou Linguagem de Consulta Estruturada, é a linguagem para 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 interativo de Bash que armazena informações de aluguel para sua loja de aluguel de bicicletas utilizando PostgreSQL." + ] + }, + "lab-salon-appointment-scheduler": { + "title": "Crie um Agendador de Compromissos do Salão", + "intro": [ + "Para este laboratório, você criará um programa interativo Bash que usa PostgreSQL para acompanhar os clientes e compromissos do seu salão." + ] + }, + "review-bash-and-sql": { + "title": "Revisão de 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 o Nano", + "intro": ["Aprenda sobre o Nano nesta lição."] + }, + "workshop-castle": { + "title": "Crie um Castelo", + "intro": [ + "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 enquanto cria um castelo." + ] + }, + "lecture-introduction-to-git-and-github": { + "title": "Introdução ao Git e GitHub", + "intro": ["Aprenda a 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ções, implantação e CI/CD nestas lições." + ] + }, + "workshop-sql-reference-object": { + "title": "Crie um Objeto de Referência SQL", + "intro": [ + "Git é um sistema de controle de versão que rastreia todas as alterações que você faz na sua base de código.", + "Neste workshop de 240 aulas, você aprenderá como o Git mantém o controle de seu código criando um objeto que contém comandos SQL comumente usados." + ] + }, + "lab-periodic-table-database": { + "title": "Crie uma Banco de Dados de Tabela Periódica", + "intro": [ + "Para este laboratório, você criará um script 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úmero", + "intro": [ + "Para este laboratório, você usará scripts Bash, PostgreSQL e Git para criar um jogo de adivinhação de números que roda no terminal e salva informações do usuário." + ] + }, + "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 exame." + ] + }, + "exam-relational-databases-certification": { + "title": "Exame de Certificação de Bancos de Dados Relacionais", + "intro": [ + "Passe neste exame para ganhar sua Certificação de Bancos de Dados Relacionais" ] } } }, "back-end-development-and-apis-v9": { - "title": "Back End Development and APIs Certification", + "title": "Certificação de Desenvolvimento Back-End e APIs", "intro": [ - "This course teaches you the fundamentals of back end development and APIs.", - "To earn your Back End Development and APIs Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Back End Development and APIs Certification exam." + "Este curso ensina os fundamentos do Desenvolvimento Back-End e APIs.", + "Para conquistar sua Certificação de Desenvolvimento Back-End e APIs:", + "- Complete os cinco projetos obrigatórios para se qualificar para o exame de certificação.", + "- Passe no exame de Certificação de Desenvolvimento Back-End e APIs." ], "chapters": { - "back-end-development-and-apis": "Back End Development and APIs" + "back-end-development-and-apis": "Desenvolvimento Back-End e APIs" }, "modules": { - "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" + "nodejs-core-libraries": "Bibliotecas Centrais do Node.js", + "node-package-manager": "Gerenciador de Pacotes Node", + "http-and-the-web-standards-model": "HTTP e o Modelo de Padrões da 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 e SQL", + "security-and-privacy": "Segurança e Privacidade", + "authentication": "Autenticação", + "tooling-and-deployment": "Ferramentas e Implantação", + "back-end-development-and-apis-certification-exam": "Exame de Certificação de Desenvolvimento Back-End e APIs" + }, + "module-intros": { + "nodejs-core-libraries": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre bibliotecas principais do Node.js 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": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você será apresentado ao Gerenciador de Pacotes Node, que os desenvolvedores usam para gerenciar dependências de projetos e scripts. Em seguida, você praticará o que aprendeu através de workshops e laboratórios e testará seus conhecimentos com um breve questionário." + ] + }, + "http-and-the-web-standards-model": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre HTTP (Protocolo de Transferência de Hipertexto) e outros conceitos importantes, incluindo o modelo de resposta a requisições, códigos de resposta comuns, DNS, TCP/IP, e mais. Em seguida, você praticará o que aprendeu através de um workshop para criar seu próprio servidor web e testará seu conhecimento com um breve questionário." + ] + }, + "rest-api-and-web-services": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre a API REST (Interface de Programação de Aplicações de Transferência de Estado Representacional) e como microserviços funcionam. Em seguida, você fará um breve questionário para testar seus conhecimentos." + ] + }, + "introduction-to-express": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você será apresentado ao Express.js, que é um framework usado para criar 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": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre middleware no Express.js, que é usado para lidar com requisições e respostas entre o cliente e o servidor. Em seguida, você praticará suas habilidades em um workshop e laboratório e testará seus conhecimentos com um breve questionário." + ] + }, + "error-handling-in-express": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre como o tratamento 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á seus conhecimentos com um breve questionário." + ] + }, + "websockets": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você conhecerá os WebSockets, que são um protocolo utilizado para comunicação em tempo real entre o cliente e o servidor. Em seguida, você praticará o que aprendeu em laboratórios e workshops e testará seus conhecimentos com um breve questionário." + ] + }, + "node-and-sql": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você praticará criando aplicações com Node e SQL. Em seguida, você fará um breve questionário para testar seus conhecimentos." + ] + }, + "security-and-privacy": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre as diferenças entre segurança e privacidade, bem 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 seus conhecimentos." + ] + }, + "authentication": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Neste módulo, você aprenderá como funciona a autenticação em aplicações web e 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á seus conhecimentos com um breve questionário." + ] + }, + "tooling-and-deployment": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "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 seus conhecimentos." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Próximo Lançamento: Final de 2026", + "intro": [ + "Passe neste exame para ganhar sua Certificação de Desenvolvimento Back End e APIs." + ] + } }, "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "lecture-understanding-the-http-request-response-model": { + "title": "Compreendendo o Modelo de Requisição-Resposta HTTP", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "Aprenda os fundamentos de como a comunicação web funciona através do modelo de requisição-resposta HTTP, explore diferentes tipos de ativos e respostas web e entenda como os formulários lidam com o envio de dados usando vários métodos HTTP." ] } } }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] + } + } + }, "a1-professional-spanish": { "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.", @@ -6374,342 +7605,366 @@ } }, "responsive-web-design-v9": { - "title": "Responsive Web Design Certification", + "title": "Certificação de Design Responsivo para a Web", "intro": [ - "This course teaches the fundamentals of HTML and CSS, including modern layout, design, accessibility, and responsive web development. You'll build practical projects and gain the skills to create professional, user-friendly webpages.", - "To qualify for the exam, you must complete the following projects:", - "- Build a Survey Form", - "- Build a Page of Playing Cards", - "- Build a Book Inventory App", - "- Build a Technical Documentation Page", - "- Build a Product Landing Page", - "Pass the exam to earn your Responsive Web Design Certification." + "Este curso ensina os fundamentos de HTML e CSS, incluindo design de layout moderno, design, acessibilidade e desenvolvimento web responsivo. Você criará projetos práticos e adquirirá as habilidades necessárias para criar páginas da web profissionais e fáceis de usar.", + "Para se qualificar para o exame, você deve concluir os seguintes projetos:", + "- Crie um Formulário de Pesquisa", + "- Crie uma Página de Baralhos", + "- Crie uma Aplicação de Inventário de Livros", + "- Crie uma Página de Documentação Técnica", + "- Crie uma Página de Produto", + "Passe no exame para conquistar sua Certificação de Design Responsivo para a Web." ], "chapters": { "html": "HTML", "css": "CSS", - "responsive-web-design-certification-exam": "Responsive Web Design Certification Exam" + "responsive-web-design-certification-exam": "Exame de Certificação de Design Responsivo para a Web" }, "modules": { - "basic-html": "Basic HTML", - "semantic-html": "Semantic HTML", - "html-forms-and-tables": "Forms and Tables", - "html-and-accessibility": "Accessibility", - "review-html": "HTML Review", - "computer-basics": "Computer Basics", - "basic-css": "Basic CSS", + "basic-html": "HTML Básico", + "semantic-html": "HTML Semântico", + "html-forms-and-tables": "Formulários e Tabelas", + "html-and-accessibility": "Acessibilidade", + "review-html": "Revisão do HTML", + "computer-basics": "Noções Básicas de 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", - "css-colors": "Colors", - "styling-forms": "Styling Forms", - "css-box-model": "The Box Model", + "absolute-and-relative-units": "Unidades Absolutas e Relativas", + "pseudo-classes-and-elements": "Pseudo Classes e Elementos", + "css-colors": "Cores", + "styling-forms": "Estilização de Formulários", + "css-box-model": "O Modelo de Caixa", "css-flexbox": "Flexbox", - "css-typography": "Typography", - "css-and-accessibility": "Accessibility", - "attribute-selectors": "Attribute Selectors", - "css-positioning": "Positioning", - "responsive-design": "Responsive Design", - "css-variables": "Variables", + "css-typography": "Tipografia", + "css-and-accessibility": "Acessibilidade", + "attribute-selectors": "Seletores de Atributo", + "css-positioning": "Posicionamento", + "responsive-design": "Design Responsivo", + "css-variables": "Variáveis", "css-grid": "Grid", - "css-animations": "Animations", - "review-css": "CSS Review", - "lab-survey-form": "Build a Survey Form", - "lab-page-of-playing-cards": "Build a Page of Playing Cards", - "lab-book-inventory-app": "Build a Book Inventory App", - "lab-technical-documentation-page": "Build a Technical Documentation Page", - "lab-product-landing-page": "Build a Product Landing Page", - "responsive-web-design-certification-exam": "Responsive Web Design Certification Exam" + "css-animations": "Animações", + "review-css": "Revisão de CSS", + "lab-survey-form": "Crie um Formulário de Pesquisa", + "lab-page-of-playing-cards": "Crie uma Página de Baralhos", + "lab-book-inventory-app": "Crie uma Aplicação de Inventário de Livros", + "lab-technical-documentation-page": "Crie uma Página de Documentação Técnica", + "lab-product-landing-page": "Crie uma Página de Produto", + "responsive-web-design-certification-exam": "Exame de Certificação de Design Responsivo para a Web" }, "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." + "Bem-vindo ao 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 o 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 lectures, 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 lectures, 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á 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." ] }, "lecture-html-fundamentals": { - "title": "HTML Fundamentals", + "title": "Fundamentos de HTML", "intro": [ - "In these lectures, 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 lectures, 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 lectures, 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": "Crie um Tocador de Áudio e Vídeo HTML", + "intro": [ + "Neste laboratório, você criará um tocador de áudio e vídeo HTML usando os elementos video e audio com controles e atributos de fonte." ] }, "lecture-working-with-images-and-svgs": { - "title": "Working with Images and SVGs", + "title": "Trabalhando com Imagens e SVGs", "intro": [ - "In these lectures, 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 lectures, 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": "Crie uma Exibição de Vídeo Usando iframe", + "intro": [ + "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 lectures, 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 do 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 lectures, 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 lectures, 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 lecture, 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 lecture, 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 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." ] }, "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á uma central 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 concluir 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 lectures, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states." + "Nestas lições, você aprenderá sobre formulários, o papel das labels, inputs e botões na criação de formulários, a validação de formulários no lado do cliente e os estados dos formulários." ] }, "workshop-hotel-feedback-form": { - "title": "Build a Hotel Feedback Form", + "title": "Crie um Formulário de Feedback de Hotel", "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ê criará um Formulário de Feedback de Hotel.", + "Você praticará o trabalho 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 lectures, you will learn about HTML tables, how to create them, and when to use them." + "Nestas lições, 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 de Exames Finais", "intro": [ - "In this workshop, you will practice working with HTML tables by building a table of final exams." + "Neste workshop, você praticará o trabalho 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 lectures, 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." + "Nestas lições, você aprenderá sobre ferramentas de HTML e como elas permitem que você escreva um código melhor. Estas ferramentas incluem validadores HTML, DOM Inspector 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, bem como 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 concluir 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 lectures, 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." + "Nestas lições, 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": "Depure uma Página de Blog de Jornada de Código", + "intro": [ + "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 lectures, you will learn about how to create accessible tables and forms." + "Nestas lições, você aprenderá como criar tabelas e formulários acessíveis." + ] + }, + "workshop-tech-conference-schedule": { + "title": "Crie uma Tabela de Horários de Conferência de Tecnologia", + "intro": [ + "Neste workshop, você criará uma tabela de horários de conferência de tecnologia acessível." ] }, "lecture-introduction-to-aria": { - "title": "Introduction to ARIA", + "title": "Introdução ao ARIA", "intro": [ - "In these lectures, you will learn about working with ARIA roles." + "Nestas lições, 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 lectures, you will learn about how to create accessible links, audio and video content." + "Nestas lições, 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 check-out acessível.", + "Você praticará conceitos como atributos alt e funções ARIA." ] }, "lab-movie-review-page": { - "title": "Design a Movie Review Page", + "title": "Crie 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á o trabalho 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 concluir um questionário, você pode revisitar esta página para acessar um novo conjunto de perguntas." ] }, "review-html": { - "title": "HTML Review", + "title": "Revisão do 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 fazer 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": { @@ -6717,611 +7972,634 @@ "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 lectures, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use." + "Nestas lições, 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 lectures, 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." + "Nestas lições, 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 lectures, 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." + "Nestas lições, 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 lectures 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 lectures, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more." + "Nestas lições, 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 lectures, you will learn the properties you need to know to effectively style lists and links, including link states like link, visited, hover, and active." + "Nestas lições, 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 lectures, 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." + "Nestas lições, 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 lectures, 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." + "Nestas lições, 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 lectures, 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." + "Nestas lições, 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 lectures, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them." + "Nestas lições, 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 lectures, you will learn about relative and absolute units, and how they both impact what you see in the browser." + "Nestas lições, 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 anúncio 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 lectures, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work." + "Nestas lições, você aprenderá sobre pseudoclasses e pseudoelementos, 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 lectures, 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 pseudoclasses.", + "Neste workshop, você terá a chance de praticar o que aprendeu desenhando um cartão de saudação." ] }, "lab-job-application-form": { - "title": "Build a Job Application Form", + "title": "Crie um Formulário de Aplicação para 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 aplicação para trabalho e o estilizará usando pseudoclasses.", + "Você praticará conceitos como :hover, :active, :focus e mais." ] }, "review-css-pseudo-classes": { - "title": "CSS Pseudo-classes Review", + "title": "Revisão sobre 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 sobre pseudoclasses e pseudoelementos em CSS, você deve revisar o que aprendeu sobre eles.", + "Abra esta página para revisar conceitos como os pseudoelementos ::before e ::after, as pseudoclasses :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 sobre 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 no CSS", "intro": [ - "In these lectures, 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." + "Nestas aulas, você aprenderá sobre gradientes lineares e radiais, a teoria das cores, diferentes tipos de cores como nomeadas, RGB, Hex e HSL. Você aprenderá como estas cores funcionam, e qual 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ê praticará diferentes formas de definir valores de cor e como combinar cores entre si." ] }, "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á uma grade de cores e praticará adicionar cores de fundo aos itens da grade 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 sobre cores do CSS, você deve revisar o que aprendeu sobre elas.", + "Abra esta página para revisar conceitos como a função rgb(), 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 lectures, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like color and datetime-local." + "Nestas aulas, você aprenderá sobre as práticas recomendadas para estilizar formulários e os problemas que pode encontrar enquanto estiliza entradas especiais como color e datetime-local." ] }, "workshop-registration-form": { - "title": "Design a Registration Form", + "title": "Crie um Formulário de Registro", "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 inscrição. Você aprenderá a controlar quais tipos de dados as pessoas podem digitar em 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": "Projete uma Página de Seleção de Recursos", + "intro": [ + "Neste laboratório, você criará uma página de seleção de recursos com caixas de seleção estilizadas.", + "Você criará cartões de recursos com rótulos e caixas de seleção, em seguida dará um estilo personalizado às caixas de seleção." ] }, "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 sobre 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, Overflow e Filtros em CSS", "intro": [ - "In these lectures, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works." + "Nestas aulas, você aprenderá sobre como trabalhar com transformações, overflow e filtros em CSS. Você também aprenderá sobre o modelo de caixas e como ele funciona." ] }, "workshop-rothko-painting": { - "title": "Design a Rothko Painting", + "title": "Projete uma Pintura ao Estilo 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 uma borda. A isso chamamos de Modelo de Caixa.", + "Neste workshop, você usará o CSS e o Box Model para criar suas próprias obras de arte retangulares ao estilo 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 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 Layouts e Efeitos 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 Layouts e Efeitos 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 overflow em CSS." ] }, "lecture-working-with-css-flexbox": { - "title": "Working with CSS Flexbox", + "title": "Trabalhando com Flexbox no CSS", "intro": [ - "In these lectures, you will learn how CSS flexbox works, its properties, and when you should use it." + "Nestas aulas, 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 com 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": "Crie uma Página de Cartas de Baralho", "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 cartas de baralho.", + "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 no CSS", "intro": [ - "In these lectures, you will learn about typography and its best practices, fonts, and the text-shadow property." + "Nestas aulas, você aprenderá sobre 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 workshop, 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 lectures, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites." + "Nestas aulas, 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 uma Página de Questionário", "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 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 lectures, 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." + "Nestas aulas, 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 uma 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 Atributo", "intro": [ - "In these lectures, you will learn about attribute selectors and how to use them to target elements like links and lists." + "Nestas aulas, 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 pseudo seletores. 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á uma aplicação de inventário de livros.", + "Você praticará seletores de atributo 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 lectures, 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 na 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 na 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 lectures, 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." + "Nessas aulas, 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 Horizonte da 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 reutilizá-los.", + "Neste workshop, você criará um horizonte da cidade. Você praticará como configurar variáveis CSS para poder reutilizá-las sempre que 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 de Variáveis 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 sobre os fundamentos de variáveis CSS, você deve revisar o que aprendeu sobre elas.", + "Abra esta página para revisar como trabalhar com propriedades personalizadas 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 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 lectures, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox." + "Nessas aulas, você aprenderá sobre CSS Grid, suas várias propriedades e como usá-las, e como CSS Grid difere do flexbox." ] }, "workshop-magazine": { - "title": "Build a Magazine", + "title": "Crie 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ê controle sobre as linhas e colunas do design da sua página da web.", + "Neste workshop, você criará um artigo de revista. Você praticará como usar CSS Grid, incluindo conceitos como linhas de grid e colunas de grid." ] }, "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 grid e colunas de grid." ] }, "lecture-debugging-css": { - "title": "Debugging CSS", + "title": "Depuração de CSS", "intro": [ - "In this lecture, you'll learn how to debug CSS using your browser's developer tools and CSS validators." + "Nesta aula, você aprenderá a depurar CSS usando as ferramentas de desenvolvedor do seu navegador e validadores de CSS." ] }, "lab-product-landing-page": { - "title": "Build a Product Landing Page", + "title": "Crie uma Página de 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 de produto para comercializar um produto de sua escolha." ] }, "review-css-grid": { - "title": "CSS Grid Review", + "title": "Revisão do CSS Grid", "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 do 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 CSS Grid", + "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 lectures, you will learn about CSS animations and their accessibility concerns. You will also learn how prefers-reduced-motion can help address those accessibility concerns." + "Nessas aulas, você aprenderá sobre animações CSS e suas preocupações de acessibilidade. Você também aprenderá como o 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ê 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": "Crie 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 designs atraentes que chamam a atenção do seu leitor. Você pode usar transformações para girar elementos, dimensioná-los e muito mais.", + "Neste workshop, você criará um pinguim. Você usará transformações CSS para posicionar e redimensionar as partes do seu pinguim, criar um fundo e animar 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 de portfólio pessoal." ] }, "review-css-animations": { - "title": "CSS Animations Review", + "title": "Revisão de Animações 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 sobre o trabalho com animações CSS, você deve revisar o que aprendeu sobre elas.", + "Abra esta página para revisar conceitos como 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 de Animações CSS", + "intro": [ + "Teste seu conhecimento sobre animações CSS com este questionário." + ] }, "review-css": { - "title": "CSS Review", + "title": "Revisão de 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 realizar o exame preparatório de CSS, você precisa 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." ] }, "exam-responsive-web-design-certification": { - "title": "Responsive Web Design Certification Exam", + "title": "Exame de Certificação de Design Responsivo para a Web", "intro": [ - "Pass this exam to earn your Responsive Web Design Certification Exam" + "Passe neste exame para ganhar sua Certificação de Design Responsivo para a Web" ] } } @@ -7368,12 +8646,217 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Bem-vindo ao A1 Chinês Profissional", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Saudação e Apresentação Pessoal", + "zh-a1-chapter-introducing-colleagues-and-family": "Apresentando Colegas e Família", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressando o que você pode e não pode fazer" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introdução e Visão Geral da Certificação", + "zh-a1-module-initials-and-finals": "Iniciais e Finais", + "zh-a1-module-greetings-and-basic-introductions": "Saudações e Introduções Básicas", + "zh-a1-module-asking-and-giving-basic-information": "Perguntando e Dando Informações Básicas", + "zh-a1-module-introducing-others": "Apresentando Outros", + "zh-a1-module-getting-to-know-the-team": "Conhecendo a Equipe", + "zh-a1-module-talking-about-personal-skills": "Falando sobre Habilidades Pessoais", + "zh-a1-module-discussing-team-skills": "Discutindo Habilidades da Equipe" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-introducing-others": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Disponível no Inverno de 2025", + "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Aprenda Cortesias Essenciais no Escritório", + "zh-a1-learn-certification-introduction": { + "title": "Introdução à Certificação", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Finais Simples", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Iniciais", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Finais Compostos", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Finais Nasais", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Revisão de Pinyin", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Questionário de Pinyin", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Saudando Novos Colegas", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Compreendendo as Saudações e Apresentações", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Questionário sobre Saudações e Apresentações", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Revisão de Saudações e Apresentações", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Questionário sobre Saudações e Apresentações", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Compreensão das Perguntas e Respostas", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Trocando Informações Básicas", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Revisão das Perguntas de Introdução", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Questionário sobre Perguntas de Introdução", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Noções Básicas de Introdução de Outros", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "A Equipe", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "Um Novo Colega", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "Minha Família", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Prática de Introdução de Outros", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Revisão de Introdução de Outros", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Verifique Sua Introdução", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Noções Básicas sobre Conhecer a Equipe", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Perguntando sobre a Equipe", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Falando sobre Outros", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Revisão sobre Introdução da Equipe", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Questionário sobre Introdução da Equipe", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Noções Básicas de Habilidades Pessoais", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Pode ou Não Pode", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Prática de Habilidades Pessoais", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Revisão sobre Descrição de Habilidades", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Questionário sobre Descrição de Habilidades", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Noções Básicas sobre Habilidades da Equipe", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Quem Pode Fazer o Quê na Equipe", "intro": [ - "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." + "Aprenda a discutir as capacidades e os papéis dos membros da equipe." ] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Falando sobre Habilidades", + "intro": [ + "Pratique discutir várias habilidades em contextos de equipe." + ] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Revisão sobre Discussão de Habilidades da Equipe", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Questionário sobre Discussão de Habilidades da Equipe", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Conhecendo Novos Membros da Equipe", + "intro": ["", ""] } } }, @@ -7479,7 +8962,7 @@ "title": "Desafio de Código Diário", "blocks": { "daily-coding-challenge": { - "title": "Desafio de Código Diário" + "title": "Desafios de código diário" } } }, diff --git a/client/i18n/locales/portuguese/translations.json b/client/i18n/locales/portuguese/translations.json index bc7bf836784..61292f47927 100644 --- a/client/i18n/locales/portuguese/translations.json +++ b/client/i18n/locales/portuguese/translations.json @@ -118,8 +118,8 @@ "share-on-threads": "Compartilhe no Threads", "play-scene": "Aperte para começar", "download-latest-version": "Baixe a versão mais recente", - "go-to-dcc-today": "Go to Today's Challenge", - "go-to-dcc-archive": "Go to Daily Coding Challenge Archive" + "go-to-dcc-today": "Vá para o desafio diário", + "go-to-dcc-archive": "Vá para o arquivo do desafio de código diário" }, "daily-coding-challenges": { "title": "Desafios de código diário", @@ -392,7 +392,7 @@ "download-details": "Faça o download manual do aplicativo", "unable-to-detect-os": "Não foi possível detectar seu sistema operacional. Por favor, faça o download manual do aplicativo abaixo.", "download-trouble": "Se você tiver problemas para fazer o download da versão correta, entre em contato com o suporte:", - "open-exam-application": "Open Exam Environment Application" + "open-exam-application": "Abrir Aplicativo do Ambiente de Exame" }, "profile": { "you-change-privacy": "Você precisa alterar sua configuração de privacidade para que seu portfólio seja visto por outros. Esta é uma prévia de como será seu portfólio quando se tornar público.", @@ -523,8 +523,9 @@ "instructions": "Instruções", "notes": "Observações", "preview": "Pré-visualizar", + "terminal": "Terminal", "editor": "Editor", - "interactive-editor": "Interactive Editor" + "interactive-editor": "Editor Interativo" }, "editor-alerts": { "tab-trapped": "Ao apertar a tecla tab, agora, você vai inserir o caractere de tabulação", @@ -536,24 +537,24 @@ "demo-project-title": "Aqui está o exemplo de um projeto que atende aos requisitos", "github-required": "<0>Crie uma conta no GitHub 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.", "codespaces": { - "intro": "This course runs in a virtual Linux machine using GitHub Codespaces. Follow these instructions to start the course:", - "step-1": "<0>Create an GitHub account if you don't have one", - "step-2": "Click the start button below", - "step-3": "On that page, 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>View menu,", - "step-7": "Clicking on the <0>Command Palette option,", - "step-8": "and running the <0>CodeRoad: Start 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 {{title}} course, go to the <0>repository page to re-open a previous workspace.", - "learn-more": "Learn more about <0>Codespace workspaces.", - "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>Codespaces secrets page", - "sub-step-4": "Create a new secret named <0>CODEROAD_WEBHOOK_TOKEN", - "sub-step-5": "In the <0>Value field, paste your token", - "sub-step-6": "In the <0>Repository access field, select the <1>freeCodeCamp/rdb-alpha repository", - "summary": "Codespaces Setup" + "intro": "Este curso é executado em uma máquina virtual Linux usando o GitHub Codespaces. Siga estas instruções para iniciar o curso:", + "step-1": "<0>Crie uma conta no GitHub se você não tiver uma", + "step-2": "Clique no botão de iniciar abaixo", + "step-3": "Naquela página, 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>Exibir,", + "step-7": "Clicando na opção <0>Paleta de comando,", + "step-8": "e executando o comando <0>CodeRoad: Start", + "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 {{title}}, vá para a <0>página do repositório para reabrir um espaço de trabalho anterior.", + "learn-more": "Saiba mais sobre <0>Espaços de trabalho Codespace.", + "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 Codespaces", + "sub-step-4": "Crie um novo segredo chamado <0>CODEROAD_WEBHOOK_TOKEN", + "sub-step-5": "No campo <0>Valor, cole seu token", + "sub-step-6": "No campo <0>Acesso ao Repositório, selecione o repositório <1>freeCodeCamp/rdb-alpha", + "summary": "Configuração do Codespaces" }, "ona": { "intro": "Este curso é executado em uma máquina virtual Linux usando o Ona. Siga estas instruções para iniciar o curso:", @@ -572,7 +573,7 @@ "sub-step-3": "Navegue para a sua <0>Página de segredos do Ona", "sub-step-4": "Crie um novo segredo chamado <0>CODEROAD_WEBHOOK_TOKEN", "sub-step-5": "No campo <0>Secret, cole seu token", - "summary": "Ona Setup" + "summary": "Configuração do Ona" }, "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:", @@ -595,7 +596,7 @@ "copy-url": "Copiar URL do curso", "step-8": "Clique em \"Start\" para começar", "step-9": "Siga as instruções no CodeRoad para completar o curso. Nota: Pode ser necessário reiniciar o terminal uma vez para que as configurações tenham efeito e os testes terminem.", - "summary": "Local Setup" + "summary": "Configuração Local" }, "step-1": "Etapa 1: Conclua o projeto", "step-2": "Etapa 2: Envie seu código", @@ -954,7 +955,7 @@ "editor-a11y-on-non-macos": "{{editorName}} conteúdo do editor. Modo de acessibilidade definido como 'ligado'. Pressione Ctrl+E para desativar ou pressione Alt+F1 para mais opções.", "terminal-output": "Saída do terminal", "not-available": "Não disponível", - "interactive-editor-desc": "Turn static code examples into interactive editors. This allows you to edit and run the code directly on the page." + "interactive-editor-desc": "Transforme exemplos de código estático em editores interativos. Isso permite que você edite e execute o código diretamente na página." }, "flash": { "no-email-in-userinfo": "Não foi possível recuperar um e-mail do provedor escolhido. Por favor, tente outro provedor ou use a opção 'Continuar com o Email'.", @@ -1106,7 +1107,7 @@ "heading": "Como parte da certificação, {{user}} concluiu os seguintes projetos e passou em todos os testes:", "solution": "Solução", "no-solution": "erro exibindo a solução, envie um e-mail para support@freeCodeCamp.org para obter ajuda.", - "no-solution-to-display": "No solution to display", + "no-solution-to-display": "Nenhuma solução a exibir", "source": "Fonte", "footnote": "Se você suspeitar que algum destes projetos viola a <2>política de honestidade acadêmica, <5>reporte isto à nossa equipe.", "title": { @@ -1283,16 +1284,16 @@ "exam-token": { "exam-token": "Token de exame", "note": "O token de exame é uma chave secreta que permite que você acesse os exames. Não compartilhe esse token com ninguém.", - "invalidation-1": "It looks like you have a valid exam token. If you generate a new one, your existing token will be invalidated.", - "invalidation-2": "If you generate a new token, your existing token will be invalidated.", + "invalidation-1": "Parece que você tem um token de exame válido. Se você gerar um novo, seu token existente será invalidado.", + "invalidation-2": "Se você gerar um novo token, seu token existente será invalidado.", "generate-exam-token": "Gerar token de exame", "error": "Houve um erro ao gerar seu token. Tente novamente daqui a pouco.", - "no-token": "It looks like you don't have a valid exam token.", - "copy": "Copy Exam Token", + "no-token": "Parece que você não tem um token de exame válido.", + "copy": "Copiar Token de Exame", "copied": "Token copiado para a área de transferência", "copy-error": "Erro ao copiar o token para a área de transferência", - "token-usage": "Your Exam Environment authorization token is used to log you into the desktop application.", - "generated": "A new Exam Environment authorization token has been generated for your account." + "token-usage": "Seu token de autorização do ambiente de exame é usado para fazer login no aplicativo de desktop.", + "generated": "Um novo token de autorização do ambiente de exame foi gerado para sua conta." }, "shortcuts": { "title": "Atalhos do teclado", diff --git a/client/i18n/locales/swahili/intro.json b/client/i18n/locales/swahili/intro.json index 9eabb426c1f..8577efb6479 100644 --- a/client/i18n/locales/swahili/intro.json +++ b/client/i18n/locales/swahili/intro.json @@ -1564,7 +1564,7 @@ "This course will provide you with ways to explain things to other people while assisting them." ] }, - "a2-english-for-developers-certification-exam": { + "en-a2-certification-exam": { "title": "A2 English for Developers Certification Exam", "intro": [ "This exam is required to claim the A2 English for Developers Certification." @@ -1997,7 +1997,7 @@ ] }, "security-and-privacy": { - "note": "Coming Fall 2025", + "note": "Coming Late 2026", "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." ] @@ -4640,9 +4640,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Object Oriented Programming Review", @@ -5073,6 +5075,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5148,6 +5162,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5456,6 +5476,12 @@ "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": [ @@ -5523,6 +5549,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5542,6 +5574,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5554,12 +5598,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5609,6 +5671,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5634,6 +5732,12 @@ "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": [ @@ -5782,6 +5886,25 @@ "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": [ @@ -6114,9 +6237,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6137,9 +6577,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6158,9 +7016,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6181,14 +7249,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6437,6 +7626,12 @@ "In these lectures, 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": [ @@ -6455,6 +7650,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6596,12 +7797,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6904,6 +8117,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": [ @@ -7312,12 +8532,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/swahili/translations.json b/client/i18n/locales/swahili/translations.json index 4d4f163bd89..141841bd159 100644 --- a/client/i18n/locales/swahili/translations.json +++ b/client/i18n/locales/swahili/translations.json @@ -523,6 +523,7 @@ "instructions": "Maagizo", "notes": "Vidokezo", "preview": "Onyesho", + "terminal": "Terminal", "editor": "Kihariri", "interactive-editor": "Interactive Editor" }, diff --git a/client/i18n/locales/ukrainian/intro.json b/client/i18n/locales/ukrainian/intro.json index 0a904836ee3..daa9a641fe0 100644 --- a/client/i18n/locales/ukrainian/intro.json +++ b/client/i18n/locales/ukrainian/intro.json @@ -1556,10 +1556,10 @@ "Цей курс ознайомить з тим, як правильно надавати пояснення іншим людям." ] }, - "a2-english-for-developers-certification-exam": { - "title": "Екзамен з сертифікації «Англійська мова A2 для розробників»", + "en-a2-certification-exam": { + "title": "A2 English for Developers Certification Exam", "intro": [ - "Це обов’язковий екзамен, щоб отримати сертифікацію «Англійська мова A2 для розробників»." + "This exam is required to claim the A2 English for Developers Certification." ] } } @@ -1983,7 +1983,7 @@ ] }, "security-and-privacy": { - "note": "Очікуйте цієї осені", + "note": "Coming Late 2026", "intro": [ "У цьому модулі ви дізнаєтесь про різницю між безпекою і приватністю, а також ознайомитесь з різними поняттями (включно з CSP, Permissions Policy, PII, CORS і багато іншим). Потім ви пройдете короткий тест, щоб перевірити отримані знання." ] @@ -4624,9 +4624,11 @@ "title": "Placeholder - Waiting for title", "intro": [""] }, - "lab-placeholder-oop-3": { - "title": "", - "intro": [""] + "lab-player-interface": { + "title": "Build a Player Interface", + "intro": [ + "In this lab, you'll use the abc module to build a player interface." + ] }, "review-object-oriented-programming": { "title": "Повторення об’єктноорієнтованого програмування", @@ -5059,6 +5061,18 @@ "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." ] }, + "lecture-introduction-to-strings": { + "title": "Introduction to Strings", + "intro": [ + "In these lessons, you will learn how to work with strings and string concatenation." + ] + }, + "lecture-understanding-code-clarity": { + "title": "Understanding Code Clarity", + "intro": [ + "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + ] + }, "workshop-greeting-bot": { "title": "Build a Greeting Bot", "intro": [ @@ -5134,6 +5148,12 @@ "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." ] }, + "workshop-string-transformer": { + "title": "Build a String Transformer", + "intro": [ + "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + ] + }, "review-javascript-strings": { "title": "JavaScript Strings Review", "intro": [ @@ -5442,6 +5462,12 @@ "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": [ @@ -5509,6 +5535,12 @@ "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." ] }, + "lab-title-case-converter": { + "title": "Build a Title Case Converter", + "intro": [ + "In this lab, you will build a function that converts a string to title case." + ] + }, "lab-falsy-remover": { "title": "Implement a Falsy Remover", "intro": [ @@ -5528,6 +5560,18 @@ "In this lecture, you will learn about modules, imports, and exports in JavaScript." ] }, + "lecture-working-with-the-arguments-object-and-rest-parameters": { + "title": "Working With the Arguments Object and Rest Parameters", + "intro": [ + "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + ] + }, + "lab-unique-sorted-union": { + "title": "Implement a Unique Sorted Union", + "intro": [ + "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + ] + }, "lab-password-generator": { "title": "Build a Password Generator App", "intro": [ @@ -5540,12 +5584,30 @@ "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." ] }, + "lab-dna-pair-generator": { + "title": "Implement a DNA Pair Generator", + "intro": [ + "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + ] + }, "lab-html-entitiy-converter": { "title": "Implement an HTML Entity Converter", "intro": [ "In this lab, you will convert special characters in a string to their corresponding HTML entities." ] }, + "lab-odd-fibonacci-sum-calculator": { + "title": "Build an Odd Fibonacci Sum Calculator", + "intro": [ + "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + ] + }, + "lab-element-skipper": { + "title": "Implement an Element Skipper", + "intro": [ + "In this lab you will create a function that skips elements in an array based on a specified step value." + ] + }, "lab-optional-arguments-sum-function": { "title": "Build an Optional Arguments Sum Function", "intro": [ @@ -5595,6 +5657,42 @@ "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." ] }, + "lab-value-remover-function": { + "title": "Implement a Value Remover Function", + "intro": [ + "In this lab, you will create a function that removes all instances of a specified value from an array." + ] + }, + "lab-matching-object-filter": { + "title": "Implement a Matching Object Filter", + "intro": [ + "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + ] + }, + "lab-prime-number-sum-calculator": { + "title": "Build a Prime Number Sum Calculator", + "intro": [ + "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + ] + }, + "lab-range-based-lcm-calculator": { + "title": "Implement a Range-Based LCM Calculator", + "intro": [ + "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + ] + }, + "lab-deep-flattening-tool": { + "title": "Create a Deep Flattening Tool", + "intro": [ + "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + ] + }, + "lab-all-true-property-validator": { + "title": "Build an All-True Property Validator", + "intro": [ + "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + ] + }, "review-javascript-higher-order-functions": { "title": "JavaScript Higher Order Functions Review", "intro": [ @@ -5620,6 +5718,12 @@ "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": [ @@ -5768,6 +5872,25 @@ "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": [ @@ -6100,9 +6223,326 @@ "front-end-development-libraries": "Front End Development Libraries" }, "modules": { + "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", + "data-visualization": "Data Visualization and D3", + "typescript-fundamentals": "TypeScript Fundamentals", + "review-front-end-libraries": "Front End Libraries Review", "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" }, + "module-intros": { + "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": [ + "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." + ] + }, + "front-end-development-libraries-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Front End Development Libraries Certification." + ] + } + }, "blocks": { + "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." + ] + }, + "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." + ] + }, "exam-front-end-development-libraries-certification": { "title": "Front End Development Libraries Certification Exam", "intro": [ @@ -6123,9 +6563,427 @@ "python": "Python" }, "modules": { + "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", "python-certification-exam": "Python Certification Exam" }, + "module-intros": { + "python-classes-and-objects": { + "note": "Coming Winter 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." + ] + }, + "python-object-oriented-programming": { + "note": "Coming Winter 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." + ] + }, + "python-linear-data-structures": { + "note": "Coming Winter 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." + ] + }, + "python-algorithms": { + "note": "Coming Winter 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." + ] + }, + "python-graphs-and-trees": { + "note": "Coming Winter 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." + ] + }, + "python-dynamic-programming": { + "note": "Coming Winter 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." + ] + }, + "python-certification-exam": { + "note": "Coming Winter 2025", + "intro": ["Pass this exam to earn your Python Certification."] + } + }, "blocks": { + "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." + ] + }, + "workshop-email-simulator": { + "title": "Build an Email Simulator", + "intro": [ + "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + ] + }, + "lab-budget-app": { + "title": "Build a Budget App", + "intro": [ + "In this lab you will build a budget app and practice creating a class and methods for that class." + ] + }, + "review-classes-and-objects": { + "title": "Classes and Objects Review", + "intro": [ + "Before you're quizzed on classes and objects, you should review what you've learned about them.", + "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + ] + }, + "quiz-classes-and-objects": { + "title": "Classes and Objects Quiz", + "intro": [ + "Test what you've learned about classes and objects in Python with this quiz." + ] + }, + "lecture-understanding-object-oriented-programming-and-encapsulation": { + "title": "Understanding Object Oriented Programming and Encapsulation", + "intro": [ + "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + ] + }, + "workshop-salary-tracker": { + "title": "Build a Salary Tracker", + "intro": [ + "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + ] + }, + "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."] + }, + "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." + ] + }, + "lab-adjacency-list-to-matrix-converter": { + "title": "Build an Adjacency List to Matrix Converter", + "intro": [ + "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + ] + }, + "workshop-breadth-first-search": { + "title": "Implement the Breadth-First Search Algorithm", + "intro": [ + "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + ] + }, + "lab-depth-first-search": { + "title": "Implement the Depth-First Search Algorithm", + "intro": [ + "In this lab, you will implement the Depth-First Search Algorithm." + ] + }, + "lab-n-queens-problem": { + "title": "Implement the N-Queens Problem", + "intro": [ + "In this lab, you will implement a solution for the N-Queens problem." + ] + }, + "review-graphs-and-trees": { + "title": "Graphs and Trees Review", + "intro": [ + "Before you're quizzed on graphs and trees, you should review what you've learned about them." + ] + }, + "quiz-graphs-and-trees": { + "title": "Graphs and Trees Quiz", + "intro": [ + "Test what you've learned about graphs and trees in Python with this quiz." + ] + }, + "lecture-understanding-dynamic-programming": { + "title": "Understanding Dynamic Programming", + "intro": [ + "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + ] + }, + "lab-nth-fibonacci-number": { + "title": "Build an Nth Fibonacci Number Calculator", + "intro": [ + "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + ] + }, + "review-dynamic-programming": { + "title": "Dynamic Programming Review", + "intro": [ + "Before you're quizzed on dynamic programming, you should review what you've learned about it." + ] + }, + "quiz-dynamic-programming": { + "title": "Dynamic Programming Quiz", + "intro": [ + "Test what you've learned about dynamic programming in python with this quiz." + ] + }, + "review-python": { + "title": "Python Review", + "intro": ["Review Python concepts to prepare for the upcoming exam."] + }, "exam-python-certification": { "title": "Python Certification Exam", "intro": ["Pass this exam to earn your Python Certification"] @@ -6144,9 +7002,219 @@ "relational-databases": "Relational Databases" }, "modules": { + "code-editors": "Code Editors", + "bash-fundamentals": "Bash Fundamentals", + "sql-and-postgresql": "SQL and PostgreSQL", + "bash-scripting": "Bash Scripting", + "sql-and-bash": "SQL and Bash", + "git": "Git", + "review-relational-databases": "Relational Databases Review", + "lab-celestial-bodies-database": "Build a Celestial Bodies Database", + "lab-world-cup-database": "Build a World Cup Database", + "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", + "lab-periodic-table-database": "Build a Periodic Table Database", + "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, + "module-intros": { + "relational-databases-certification-exam": { + "note": "Coming Winter 2025", + "intro": [ + "Pass this exam to earn your Relational Databases Certification." + ] + } + }, "blocks": { + "lecture-working-with-code-editors-and-ides": { + "title": "Working with Code Editors and 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." + ] + }, + "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-sql-and-postgresql": { + "title": "SQL and PostgreSQL Review", + "intro": [ + "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + ] + }, + "quiz-sql-and-postgresql": { + "title": "SQL and PostgreSQL Quiz", + "intro": [ + "Test what you've learned about SQL and PostgreSQL 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 exam." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -6167,14 +7235,135 @@ "back-end-development-and-apis": "Back End Development and APIs" }, "modules": { + "nodejs-core-libraries": "Node.js Core Libraries", + "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", + "websockets": "WebSockets", + "node-and-sql": "Node and SQL", + "security-and-privacy": "Security and Privacy", + "authentication": "Authentication", + "tooling-and-deployment": "Tooling and Deployment", "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, - "blocks": { - "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "module-intros": { + "nodejs-core-libraries": { + "note": "Coming Late 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "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." ] + }, + "node-package-manager": { + "note": "Coming Late 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." + ] + }, + "http-and-the-web-standards-model": { + "note": "Coming Late 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." + ] + }, + "rest-api-and-web-services": { + "note": "Coming Late 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." + ] + }, + "introduction-to-express": { + "note": "Coming Late 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." + ] + }, + "express-middleware": { + "note": "Coming Late 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." + ] + }, + "error-handling-in-express": { + "note": "Coming Late 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." + ] + }, + "websockets": { + "note": "Coming Late 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." + ] + }, + "node-and-sql": { + "note": "Coming Late 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." + ] + }, + "security-and-privacy": { + "note": "Coming Late 2026", + "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." + ] + }, + "authentication": { + "note": "Coming Late 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." + ] + }, + "tooling-and-deployment": { + "note": "Coming Late 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." + ] + }, + "back-end-development-and-apis-certification-exam": { + "note": "Coming Late 2026", + "intro": [ + "Pass this exam to earn your Back End Development and APIs Certification." + ] + } + }, + "blocks": { + "lecture-understanding-the-http-request-response-model": { + "title": "Understanding the HTTP Request-Response Model", + "intro": [ + "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + ] + } + } + }, + "full-stack-developer-v9": { + "title": "Certified Full Stack Developer Curriculum", + "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." + ], + "chapters": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "modules": { + "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + }, + "module-intros": { + "certified-full-stack-developer-exam": { + "note": "Coming Late 2026", + "intro": [ + "This will be a 90 question exam testing what you have learned throughout this certification." + ] + } + }, + "blocks": { + "exam-certified-full-stack-developer": { + "title": "Certified Full Stack Developer Exam", + "intro": ["Pass this exam to become a Certified Full Stack Developer."] } } }, @@ -6423,6 +7612,12 @@ "In these lectures, 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": [ @@ -6441,6 +7636,12 @@ "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." ] }, + "workshop-build-a-video-display-using-iframe": { + "title": "Build a Video Display Using iframe", + "intro": [ + "In this workshop, you'll learn how to work with the iframe element by building a video display." + ] + }, "lab-video-compilation-page": { "title": "Build a Video Compilation Page", "intro": [ @@ -6582,12 +7783,24 @@ "In these lectures, 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." ] }, + "workshop-debug-coding-journey-blog-page": { + "title": "Debug a Coding Journey Blog Page", + "intro": [ + "In this workshop, you will debug and fix accessibility errors in a coding blog page." + ] + }, "lecture-accessible-tables-forms": { "title": "Working with Accessible Tables and Forms", "intro": [ "In these lectures, you will learn about how to create accessible tables and forms." ] }, + "workshop-tech-conference-schedule": { + "title": "Build a Tech Conference Schedule Table", + "intro": [ + "In this workshop, you will build an accessible tech conference schedule table." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ @@ -6890,6 +8103,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": [ @@ -7298,12 +8518,213 @@ "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"], + "chapters": { + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-pinyin": "Pinyin", + "zh-a1-chapter-greeting-and-self-introduction": "Greeting and Self-introduction", + "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + }, + "modules": { + "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", + "zh-a1-module-initials-and-finals": "Initials and Finals", + "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", + "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", + "zh-a1-module-introducing-others": "Introducing Others", + "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", + "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", + "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + }, + "module-intros": { + "zh-a1-module-introduction-and-certification-overview": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-initials-and-finals": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-greetings-and-basic-introductions": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-asking-and-giving-basic-information": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-introducing-others": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-getting-to-know-the-team": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-talking-about-personal-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + }, + "zh-a1-module-discussing-team-skills": { + "note": "Coming Winter 2025", + "intro": ["PLACEHOLDER: Write the module intro here."] + } + }, "blocks": { - "learn-essential-courtesies-at-the-office": { - "title": "Learn Essential Courtesies at the Office", - "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." - ] + "zh-a1-learn-certification-introduction": { + "title": "Certification Introduction", + "intro": ["", ""] + }, + "zh-a1-learn-single-finals": { + "title": "Single Finals", + "intro": ["", ""] + }, + "zh-a1-learn-initials": { + "title": "Initials", + "intro": ["", ""] + }, + "zh-a1-learn-compound-finals": { + "title": "Compound Finals", + "intro": ["", ""] + }, + "zh-a1-learn-nasal-finals": { + "title": "Nasal Finals", + "intro": ["", ""] + }, + "zh-a1-review-pinyin": { + "title": "Pinyin Review", + "intro": ["", ""] + }, + "zh-a1-quiz-pinyin": { + "title": "Pinyin Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-greeting-new-colleagues": { + "title": "Greeting New Colleagues", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-greetings-and-introductions": { + "title": "Understanding the Greetings and Introductions", + "intro": ["", ""] + }, + "zh-a1-practice-building-your-self-introduction": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-review-greetings-and-introductions": { + "title": "Greetings and Introductions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-greetings-and-introductions": { + "title": "Greetings and Introductions Quiz", + "intro": ["", ""] + }, + "zh-a1-learn-understanding-the-questions-and-answers": { + "title": "Understanding the Questions and Answers", + "intro": ["", ""] + }, + "zh-a1-practice-exchanging-basic-information": { + "title": "Exchanging Basic Information", + "intro": ["", ""] + }, + "zh-a1-review-introduction-questions": { + "title": "Introduction Questions Review", + "intro": ["", ""] + }, + "zh-a1-quiz-introduction-questions": { + "title": "Introduction Questions Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-introducing-others-basics": { + "title": "Introducing Others Basics", + "intro": ["", ""] + }, + "zh-a1-learn-the-team": { + "title": "The Team", + "intro": ["", ""] + }, + "zh-a1-learn-a-new-colleague": { + "title": "A New Colleague", + "intro": ["", ""] + }, + "zh-a1-learn-my-family": { + "title": "My Family", + "intro": ["", ""] + }, + "zh-a1-practice-introducing-others": { + "title": "Introducing Others Practice", + "intro": ["", ""] + }, + "zh-a1-review-introducing-others": { + "title": "Introducing Others Review", + "intro": ["", ""] + }, + "zh-a1-quiz-check-your-introduction": { + "title": "Check Your Introduction", + "intro": ["", ""] + }, + "zh-a1-warm-up-knowing-the-team-basics": { + "title": "Knowing the Team Basics", + "intro": ["", ""] + }, + "zh-a1-learn-asking-about-the-team": { + "title": "Asking about the Team", + "intro": ["", ""] + }, + "zh-a1-practice-talking-about-others": { + "title": "Talking about Others", + "intro": ["", ""] + }, + "zh-a1-review-team-introduction": { + "title": "Team Introduction Review", + "intro": ["", ""] + }, + "zh-a1-quiz-team-introduction": { + "title": "Team Introduction Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-personal-skills-basics": { + "title": "Personal Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-can-or-cannot": { + "title": "Can or Can't", + "intro": ["", ""] + }, + "zh-a1-practice-personal-skills": { + "title": "Personal Skills Practice", + "intro": ["", ""] + }, + "zh-a1-review-describing-skills": { + "title": "Describing Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-describing-skills": { + "title": "Describing Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-team-skills-basics": { + "title": "Team Skills Basics", + "intro": ["", ""] + }, + "zh-a1-learn-who-can-do-what-on-the-team": { + "title": "Who Can Do What on the Team", + "intro": ["Learn to discuss team member capabilities and roles."] + }, + "zh-a1-practice-talking-about-skills": { + "title": "Talking about Skills", + "intro": ["Practice discussing various skills in team contexts."] + }, + "zh-a1-review-discussing-team-skills": { + "title": "Discussing Team Skills Review", + "intro": ["", ""] + }, + "zh-a1-quiz-discussing-team-skills": { + "title": "Discussing Team Skills Quiz", + "intro": ["", ""] + }, + "zh-a1-warm-up-meeting-new-teammates": { + "title": "Meeting New Teammates", + "intro": ["", ""] } } }, diff --git a/client/i18n/locales/ukrainian/translations.json b/client/i18n/locales/ukrainian/translations.json index e56573fb941..92bce786baa 100644 --- a/client/i18n/locales/ukrainian/translations.json +++ b/client/i18n/locales/ukrainian/translations.json @@ -523,6 +523,7 @@ "instructions": "Інструкції", "notes": "Примітки", "preview": "Попередній перегляд", + "terminal": "Terminal", "editor": "Редактор", "interactive-editor": "Interactive Editor" },