Files
freeCodeCamp/client/i18n/locales/english/intro.json
T
2025-10-03 19:50:59 +02:00

6395 lines
327 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"responsive-web-design": {
"title": "Legacy Responsive Web Design Challenges",
"intro": [
"In this Responsive Web Design Certification, you'll learn the languages that developers use to build webpages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design.",
"First, you'll build a cat photo app to learn the basics of HTML and CSS. Later, you'll learn modern techniques like CSS variables by building a penguin, and best practices for accessibility by building a web form.",
"Finally, you'll learn how to make webpages that respond to different screen sizes by building a Twitter card with Flexbox, and a complex blog layout with CSS Grid."
],
"note": "Note: Some browser extensions, such as ad-blockers and dark mode extensions can interfere with the tests. If you face issues, we recommend disabling extensions that modify the content or layout of pages, while taking the course.",
"blocks": {
"basic-html-and-html5": {
"title": "Basic HTML and HTML5",
"intro": [
"HTML is a markup language that uses a special syntax or notation to describe the structure of a webpage to the browser. HTML elements usually have opening and closing tags that surround and give meaning to content. For example, different elements can describe text as a heading, paragraph, or list item.",
"In this course, you'll build a cat photo app to learn some of the most common HTML elements — the building blocks of any webpage."
]
},
"basic-css": {
"title": "Basic CSS",
"intro": [
"CSS, or Cascading Style Sheets, tell the browser how to display the text and other content that you write in HTML. With CSS, you can control the color, font, size, spacing, and many other aspects of HTML elements.",
"Now that you've described the structure of your cat photo app, give it some style with CSS."
]
},
"applied-visual-design": {
"title": "Applied Visual Design",
"intro": [
"Visual design is a combination of typography, color theory, graphics, animation, page layout, and more to help deliver your unique message.",
"In this course, you'll learn how to apply these different elements of visual design to your webpages."
]
},
"applied-accessibility": {
"title": "Applied Accessibility",
"intro": [
"In web development, accessibility refers to web content and a UI (user interface) that can be understood, navigated, and interacted with by a broad audience. This includes people with visual, auditory, mobility, or cognitive disabilities.",
"In this course, you'll learn best practices for building webpages that are accessible to everyone."
]
},
"responsive-web-design-principles": {
"title": "Responsive Web Design Principles",
"intro": [
"There are many devices that can access the web, and they come in all shapes and sizes. Responsive web design is the practice of designing flexible websites that can respond to different screen sizes, orientations, and resolutions.",
"In this course, you'll learn how to use CSS to make your webpages look good, no matter what device they're viewed on."
]
},
"css-flexbox": {
"title": "CSS Flexbox",
"intro": [
"Flexbox is a powerful, well-supported layout method that was introduced with the latest version of CSS, CSS3. With flexbox, it's easy to center elements on the page and create dynamic user interfaces that shrink and expand automatically.",
"In this course, you'll learn the fundamentals of flexbox and dynamic layouts by building a Twitter card."
]
},
"css-grid": {
"title": "CSS Grid",
"intro": [
"The CSS grid is a newer standard that makes it easy to build complex responsive layouts. It works by turning an HTML element into a grid, and lets you place child elements anywhere within.",
"In this course, you'll learn the fundamentals of CSS grid by building different complex layouts, including a blog."
]
}
}
},
"2022/responsive-web-design": {
"title": "Responsive Web Design",
"intro": [
"In this Responsive Web Design Certification, you'll learn the languages that developers use to build webpages: HTML (Hypertext Markup Language) for content, and CSS (Cascading Style Sheets) for design.",
"First, you'll build a cat photo app to learn the basics of HTML and CSS. Later, you'll learn modern techniques like CSS variables by building a penguin, and best practices for accessibility by building a quiz site.",
"Finally, you'll learn how to make webpages that respond to different screen sizes by building a photo gallery with Flexbox, and a magazine article layout with CSS Grid."
],
"note": "Note: Some browser extensions, such as ad-blockers and dark mode extensions can interfere with the tests. If you face issues, we recommend disabling extensions that modify the content or layout of pages, while taking the course.",
"blocks": {
"build-a-tribute-page-project": {
"title": "Tribute Page",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a tribute page for a subject of your choosing, fictional or real."
]
},
"build-a-personal-portfolio-webpage-project": {
"title": "Personal Portfolio Webpage",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build your own personal portfolio page."
]
},
"build-a-product-landing-page-project": {
"title": "Product Landing Page",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a product landing page to market a product of your choice."
]
},
"build-a-survey-form-project": {
"title": "Survey Form",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a survey form to collect data from your users."
]
},
"build-a-technical-documentation-page-project": {
"title": "Technical Documentation Page",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a technical documentation page to serve as instruction or reference for a topic."
]
},
"learn-html-by-building-a-cat-photo-app": {
"title": "Learn HTML by Building a Cat Photo App",
"intro": [
"HTML tags give a webpage its structure. You can use HTML tags to add photos, buttons, and other elements to your webpage.",
"In this course, you'll learn the most common HTML tags by building your own cat photo app."
]
},
"learn-basic-css-by-building-a-cafe-menu": {
"title": "Learn Basic CSS by Building a Cafe Menu",
"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 course, you'll learn CSS by designing a menu page for a cafe webpage."
]
},
"learn-the-css-box-model-by-building-a-rothko-painting": {
"title": "Learn the CSS Box Model by Building a Rothko Painting",
"intro": [
"Every HTML element is its own box with its own spacing and a border. This is called the Box Model.",
"In this course, you'll use CSS and the Box Model to create your own Rothko-style rectangular art pieces."
]
},
"learn-css-variables-by-building-a-city-skyline": {
"title": "Learn CSS Variables by Building a City Skyline",
"intro": [
"CSS variables help you organize your styles and reuse them.",
"In this course, you'll build a city skyline. You'll learn how to configure CSS variables so you can reuse them whenever you want."
]
},
"learn-html-forms-by-building-a-registration-form": {
"title": "Learn HTML Forms by Building a Registration Form",
"intro": [
"You can use HTML forms to collect information from people who visit your webpage.",
"In this course, you'll learn HTML forms by building 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."
]
},
"learn-accessibility-by-building-a-quiz": {
"title": "Learn Accessibility by Building a Quiz",
"intro": [
"Accessibility is making your webpage easy for all people to use even people with disabilities.",
"In this course, you'll build a quiz webpage. You'll learn accessibility tools such as keyboard shortcuts, ARIA attributes, and design best practices."
]
},
"learn-intermediate-css-by-building-a-picasso-painting": {
"title": "Learn Intermediate CSS by Building a Picasso Painting",
"intro": [
"In this course, you'll learn how to use some intermediate CSS techniques by coding your own Picasso painting webpage. You'll learn about SVG icons, CSS positioning, and review other CSS skills you've learned."
]
},
"learn-responsive-web-design-by-building-a-piano": {
"title": "Learn Responsive Web Design by Building a Piano",
"intro": [
"Responsive Design tells your webpage how it should look on different-sized screens.",
"In this course, you'll use CSS and responsive design to code a piano. You'll also learn more about media queries and pseudo selectors."
]
},
"learn-css-flexbox-by-building-a-photo-gallery": {
"title": "Learn CSS Flexbox by Building a Photo Gallery",
"intro": [
"Flexbox helps you design your webpage so that it looks good on any screen size.",
"In this course, you'll use Flexbox to build a responsive photo gallery webpage."
]
},
"learn-css-grid-by-building-a-magazine": {
"title": "Learn CSS Grid by Building a Magazine",
"intro": [
"CSS Grid gives you control over the rows and columns of your webpage design.",
"In this course, you'll build a magazine article. You'll learn how to use CSS Grid, including concepts like grid rows and grid columns."
]
},
"learn-typography-by-building-a-nutrition-label": {
"title": "Learn Typography by Building a Nutrition Label",
"intro": [
"Typography is the art of styling your text to be easily readable and suit its purpose.",
"In this course, you'll use typography to build a nutrition label webpage. You'll learn how to style text, adjust line height, and position your text using CSS."
]
},
"learn-css-transforms-by-building-a-penguin": {
"title": "Learn CSS Transforms by Building a Penguin",
"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 course, 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."
]
},
"learn-css-animation-by-building-a-ferris-wheel": {
"title": "Learn CSS Animation by Building a Ferris Wheel",
"intro": [
"You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.",
"In this course, you'll build a Ferris wheel. You'll learn how to use CSS to animate elements, transform them, and adjust their speed."
]
},
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": {
"title": "Learn More About CSS Pseudo Selectors by Building A Balance Sheet",
"intro": [
"You can use CSS pseudo selectors to change specific HTML elements.",
"In this course, 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."
]
},
"learn-css-colors-by-building-a-set-of-colored-markers": {
"title": "Learn CSS Colors by Building a Set of Colored Markers",
"intro": [
"Selecting the correct colors for your webpage can greatly improve the aesthetic appeal to your readers.",
"In this course, you'll build a set of colored markers. You'll learn different ways to set color values and how to pair colors with each other."
]
},
"learn-intermediate-css-by-building-a-cat-painting": {
"title": "Learn Intermediate CSS by Building a Cat Painting",
"intro": [
"Mastering CSS positioning is essential for creating visually appealing and responsive web layouts",
"In this course, you will build a cat painting. You'll learn about how to work with absolute positioning, the z-index property, and the transform property."
]
}
}
},
"javascript-algorithms-and-data-structures": {
"title": "Legacy JavaScript Algorithms and Data Structures",
"intro": [
"While HTML and CSS control the content and styling of a page, JavaScript is used to make it interactive. In the JavaScript Algorithm and Data Structures Certification, you'll learn the fundamentals of JavaScript including variables, arrays, objects, loops, and functions.",
"Once you have the fundamentals down, you'll apply that knowledge by creating algorithms to manipulate strings, factorialize numbers, and even calculate the orbit of the International Space Station.",
"Along the way, you'll also learn two important programming styles or paradigms: Object Oriented Programming (OOP) and Functional Programming (FP)."
],
"note": "Note: Some browser extensions, such as ad-blockers and script-blockers can interfere with the tests. If you face issues, we recommend disabling extensions that modify or block the content of pages while taking the course.",
"blocks": {
"basic-javascript": {
"title": "Basic JavaScript",
"intro": [
"JavaScript is a scripting language you can use to make web pages interactive. It is one of the core technologies of the web, along with HTML and CSS, and is supported by all modern browsers.",
"In this course, you'll learn fundamental programming concepts in JavaScript. You'll start with basic data structures like numbers and strings. Then you'll learn to work with arrays, objects, functions, loops, if/else statements, and more."
]
},
"es6": {
"title": "ES6",
"intro": [
"ECMAScript, or ES, is a standardized version of JavaScript. Because all major browsers follow this specification, the terms ECMAScript and JavaScript are interchangeable.",
"Most of the JavaScript you've learned up to this point was in ES5 (ECMAScript 5), which was finalized in 2009. While you can still write programs in ES5, JavaScript is constantly evolving, and new features are released every year.",
"ES6, released in 2015, added many powerful new features to the language. In this course, you'll learn these new features, including arrow functions, destructuring, classes, promises, and modules."
]
},
"regular-expressions": {
"title": "Regular Expressions",
"intro": [
"Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are very powerful, but can be hard to read because they use special characters to make more complex, flexible matches.",
"In this course, you'll learn how to use special characters, capture groups, positive and negative lookaheads, and other techniques to match any text you want."
]
},
"debugging": {
"title": "Debugging",
"intro": [
"Debugging is the process of going through your code, finding any issues, and fixing them.",
"Issues in code generally come in three forms: syntax errors that prevent your program from running, runtime errors where your code has unexpected behavior, or logical errors where your code doesn't do what you intended.",
"In this course, you'll learn how to use the JavaScript console to debug programs and prevent common issues before they happen."
]
},
"basic-data-structures": {
"title": "Basic Data Structures",
"intro": [
"Data can be stored and accessed in many ways. You already know some common JavaScript data structures — arrays and objects.",
"In this Basic Data Structures course, you'll learn more about the differences between arrays and objects, and which to use in different situations. You'll also learn how to use helpful JS methods like <code>splice()</code> and <code>Object.keys()</code> to access and manipulate data."
]
},
"basic-algorithm-scripting": {
"title": "Basic Algorithm Scripting",
"intro": [
"An algorithm is a series of step-by-step instructions that describe how to do something.",
"To write an effective algorithm, it helps to break a problem down into smaller parts and think carefully about how to solve each part with code.",
"In this course, you'll learn the fundamentals of algorithmic thinking by writing algorithms that do everything from converting temperatures to handling complex 2D arrays."
]
},
"object-oriented-programming": {
"title": "Object Oriented Programming",
"intro": [
"OOP, or Object Oriented Programming, is one of the major approaches to the software development process. In OOP, objects and classes organize code to describe things and what they can do.",
"In this course, you'll learn the basic principles of OOP in JavaScript, including the <code>this</code> keyword, prototype chains, constructors, and inheritance."
]
},
"functional-programming": {
"title": "Functional Programming",
"intro": [
"Functional Programming is another popular approach to software development. In Functional Programming, code is organized into smaller, basic functions that can be combined to build complex programs.",
"In this course, you'll learn the core concepts of Functional Programming including pure functions, how to avoid mutations, and how to write cleaner code with methods like <code>.map()</code> and <code>.filter()</code>."
]
},
"intermediate-algorithm-scripting": {
"title": "Intermediate Algorithm Scripting",
"intro": [
"Now that you know the basics of algorithmic thinking, along with OOP and Functional Programming, test your skills with the Intermediate Algorithm Scripting challenges."
]
},
"javascript-algorithms-and-data-structures-projects": {
"title": "JavaScript Algorithms and Data Structures Projects",
"intro": [
"This is it — time to put your new JavaScript skills to work. These projects are similar to the algorithm scripting challenges you've done before just much more difficult.",
"Complete these 5 JavaScript projects to earn the JavaScript Algorithms and Data Structures certification."
]
}
}
},
"javascript-algorithms-and-data-structures-v8": {
"title": "JavaScript Algorithms and Data Structures",
"intro": [
"Developers use HTML and CSS to control the content and styling of a page. And they use JavaScript to make that page interactive.",
"In this JavaScript Algorithm and Data Structures Certification, you'll learn the JavaScript fundamentals like variables, arrays, objects, loops, functions, the DOM and more.",
"You'll also learn about Object Oriented Programming (OOP), Functional Programming, algorithmic thinking, how to work with local storage, and how to fetch data using an API."
],
"note": "Note: Some browser extensions, such as ad-blockers and script-blockers can interfere with the tests. If you face issues, we recommend disabling extensions that modify or block the content of pages while taking the course.",
"blocks": {
"build-an-rpg-creature-search-app-project": {
"title": "Build an RPG Creature Search App Project",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build an RPG creature search app."
]
},
"build-a-cash-register-project": {
"title": "Build a Cash Register Project",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you'll build a cash register web app."
]
},
"build-a-palindrome-checker-project": {
"title": "Build a Palindrome Checker Project",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you'll build an application that checks whether a given word is a palindrome."
]
},
"build-a-roman-numeral-converter-project": {
"title": "Build a Roman Numeral Converter Project",
"intro": [
"This is one of the required projects to claim your certification.",
"For this project, you'll build an application that converts integers to Roman numerals."
]
},
"build-a-telephone-number-validator-project": {
"title": "Build a Telephone Number Validator Project",
"intro": [
"This is one of the required projects to claim your certification.",
"For this project, you'll build an application that checks if a number is a valid United States phone number."
]
},
"learn-basic-javascript-by-building-a-role-playing-game": {
"title": "Learn Basic JavaScript by Building a Role Playing Game",
"intro": [
"JavaScript is a powerful scripting language that you can use to make web pages interactive. It's one of the core technologies of the web, along with HTML and CSS. All modern browsers support JavaScript.",
"In this practice project, you'll learn fundamental programming concepts in JavaScript by coding your own Role Playing Game. You'll learn how to work with arrays, strings, objects, functions, loops, <code>if/else</code> statements, and more."
]
},
"learn-form-validation-by-building-a-calorie-counter": {
"title": "Learn Form Validation by Building a Calorie Counter",
"intro": [
"Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter project, you'll learn how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
"In this practice project, you'll learn basic regular expressions, template literals, the <code>addEventListener()</code> method, and more."
]
},
"learn-functional-programming-by-building-a-spreadsheet": {
"title": "Learn Functional Programming by Building a Spreadsheet",
"intro": [
"Functional Programming is a popular approach to software development. In Functional Programming, developers organize code into smaller functions, then combine those functions to build complex programs.",
"In this spreadsheet application project, you'll learn about parsing and evaluating mathematical expressions, implementing spreadsheet functions, handling cell references, and creating interactive web interfaces. You'll learn how to dynamically update the page based on user input.",
"This project will cover concepts like the <code>map()</code>, <code>find()</code>, and <code>includes()</code> methods and the <code>parseInt()</code> function."
]
},
"learn-modern-javascript-methods-by-building-football-team-cards": {
"title": "Learn Modern JavaScript Methods by Building Football Team Cards",
"intro": [
"One common aspect of building web applications: processing datasets, and then outputting information to the screen. In this sports team cards project, you'll learn how to work with DOM manipulation, object destructuring, event handling, and data filtering.",
"This project will cover concepts like, default parameters, <code>Object.freeze()</code>, and reinforce your knowledge of the <code>switch</code> statement and <code>map()</code> method."
]
},
"learn-advanced-array-methods-by-building-a-statistics-calculator": {
"title": "Learn Advanced Array Methods by Building a Statistics Calculator",
"intro": [
"As you expand your JavaScript skills, you'll want to get comfortable with array manipulation methods, such as <code>map()</code>, <code>reduce()</code>, and <code>filter()</code>.",
"In this statistics calculator project, you'll gain experience with handling user input, DOM manipulation, and method chaining. You'll get practice by performing statistical calculations like mean, median, mode, variance, and standard deviation."
]
},
"learn-basic-oop-by-building-a-shopping-cart": {
"title": "Learn Basic OOP by Building a Shopping Cart",
"intro": [
"OOP, or Object Oriented Programming, is one of the major approaches to the software development process. In OOP, developers use objects and classes to structure their code.",
"In this shopping cart project, you'll learn how to define classes and use them. You'll create class instances and implement methods for data manipulation.",
"This project will cover concepts like the ternary operator, the spread operator, the <code>this</code> keyword, and more."
]
},
"learn-fetch-and-promises-by-building-an-fcc-authors-page": {
"title": "Learn Fetch and Promises by Building an fCC Authors Page",
"intro": [
"One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
"This freeCodeCamp authors page project will show you how to use the fetch method, then dynamically update the DOM to display the fetched data.",
"This project will also teach you how to paginate your data so you can load results in batches."
]
},
"learn-regular-expressions-by-building-a-spam-filter": {
"title": "Learn Regular Expressions by Building a Spam Filter",
"intro": [
"Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
"In this spam filter project, you'll learn about capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
]
},
"learn-basic-algorithmic-thinking-by-building-a-number-sorter": {
"title": "Learn Basic Algorithmic Thinking by Building a Number Sorter",
"intro": [
"In computer science, there are fundamental sorting algorithms that all developers should learn. In this number sorter project, you'll learn how to implement and visualize different sorting algorithms like bubble sort, selection sort, and insertion sort all with JavaScript.",
"This project will help you understand the fundamental concepts behind these algorithms, and how you can apply them to sort numerical data in web applications."
]
},
"review-algorithmic-thinking-by-building-a-dice-game": {
"title": "Review Algorithmic Thinking by Building a Dice Game",
"intro": [
"Algorithmic thinking involves the ability to break down complex problems into a sequence of well-defined, step-by-step instructions.",
"In this Dice game project, youll learn how to manage game state, implement game logic for rolling dice, keeping score, and applying rules for various combinations.",
"This project covers concepts such as event handling, array manipulation, conditional logic, and updating the user interface dynamically based on game state."
]
},
"learn-intermediate-oop-by-building-a-platformer-game": {
"title": "Learn Intermediate OOP by Building a Platformer Game",
"intro": [
"Coding a game is a great way to grasp fundamental programming principles, while also creating an interactive gaming experience.",
"In this platformer game project, you'll continue to learn about classes, objects, inheritance, and encapsulation. You'll also learn how to design and organize game elements efficiently and gain insights into problem-solving and code reusability."
]
},
"learn-localstorage-by-building-a-todo-app": {
"title": "Learn localStorage by Building a Todo App",
"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 TODO application, 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."
]
},
"learn-the-date-object-by-building-a-date-formatter": {
"title": "Learn the Date Object by Building a Date Formatter",
"intro": [
"Working with dates in JavaScript can be challenging. You have to navigate various methods, formats, and time zones. In this project, you'll learn how to work with the JavaScript Date object, including its methods and properties. You'll also learn how to correctly format dates.",
"This project will cover concepts such as the <code>getDate()</code>, <code>getMonth()</code>, and <code>getFullYear()</code> methods."
]
},
"learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard": {
"title": "Learn Asynchronous Programming by Building an fCC Forum Leaderboard",
"intro": [
"JavaScript is an asynchronous programming language. And this project will help you gain proficiency in asynchronous concepts. You'll code your own freeCodeCamp forum leaderboard.",
"This project will cover the Fetch API, promises, Async/Await, and the try..catch statement."
]
},
"learn-basic-string-and-array-methods-by-building-a-music-player": {
"title": "Learn Basic String and Array Methods by Building a Music Player",
"intro": [
"Now let's learn some essential string and array methods like the <code>find()</code>, <code>forEach()</code>, <code>map()</code>, and <code>join()</code>. These methods are crucial for developing dynamic web applications.",
"In this project, 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, previous, and shuffle functionalities. You'll even learn how to dynamically update your user interface based on the current song."
]
},
"learn-recursion-by-building-a-decimal-to-binary-converter": {
"title": "Learn Recursion by Building a Decimal to Binary Converter",
"intro": [
"Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
"In this project, youll build a decimal-to-binary converter using JavaScript. Youll learn the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
]
},
"learn-introductory-javascript-by-building-a-pyramid-generator": {
"title": "Learn Introductory JavaScript by Building a Pyramid Generator",
"intro": [
"JavaScript is a powerful scripting language that you can use to make web pages interactive. It's one of the core technologies of the web, along with HTML and CSS. All modern browsers support JavaScript.",
"In this practice project, you'll learn fundamental programming concepts in JavaScript by coding your own Pyramid Generator. You'll learn how to work with arrays, strings, functions, loops, <code>if/else</code> statements, and more."
]
},
"review-js-fundamentals-by-building-a-gradebook-app": {
"title": "Review JavaScript Fundamentals by Building a Gradebook App",
"intro": [
"In this mini project, you will get to review JavaScript fundamentals like functions, variables, conditionals and more by building a gradebook app.",
"This will give you an opportunity to solve small problems and get a better understanding of the basics."
]
},
"learn-basic-debugging-by-building-a-random-background-color-changer": {
"title": "Learn Basic Debugging by Building a Random Background Color Changer",
"intro": [
"Debugging is the process of going through your code, finding any issues, and fixing them.",
"In this project, you will help CamperBot build a random background color changer and help them find and fix errors."
]
},
"review-dom-manipulation-by-building-a-rock-paper-scissors-game": {
"title": "Review DOM Manipulation by Building a Rock, Paper, Scissors Game",
"intro": [
"In the previous projects you learned how to work with basic DOM manipulation. Now it is time to review what you have learned by building a Rock, Paper, Scissors game.",
"In this mini project, you will review conditionals, functions, <code>getElementById</code>, and more. This project will give you an opportunity to solve small problems and get a better understanding of the basics."
]
}
}
},
"front-end-development-libraries": {
"title": "Front End Development Libraries",
"intro": [
"Now that you're familiar with HTML, CSS, and JavaScript, level up your skills by learning some of the most popular front end libraries in the industry.",
"In the Front End Development Libraries Certification, you'll learn how to style your site quickly with Bootstrap. You'll also learn how to add logic to your CSS styles and extend them with Sass.",
"Later, you'll build a shopping cart and other applications to learn how to create powerful Single Page Applications (SPAs) with React and Redux."
],
"note": "",
"blocks": {
"bootstrap": {
"title": "Bootstrap",
"intro": [
"Bootstrap is a front end framework used to design responsive web pages and applications. It takes a mobile-first approach to web development, and includes pre-built CSS styles and classes, plus some JavaScript functionality.",
"In this course, you'll learn how to build responsive websites with Bootstrap, and use its included classes to style buttons, images, forms, navigation, and other common elements."
]
},
"jquery": {
"title": "jQuery",
"intro": [
"jQuery is one of the most widely used JavaScript libraries in the world.",
"In 2006 when it was released, all major browsers handled JavaScript slightly differently. jQuery simplified the process of writing client-side JavaScript, and also ensured that your code worked the same way in all browsers.",
"In this course, you'll learn how to use jQuery to select, remove, clone, and modify different elements on the page."
]
},
"sass": {
"title": "SASS",
"intro": [
"Sass, or \"Syntactically Awesome StyleSheets\", is a language extension of CSS. It adds features that aren't available in basic CSS, which make it easier for you to simplify and maintain the style sheets for your projects.",
"In this Sass course, you'll learn how to store data in variables, nest CSS, create reusable styles with mixins, add logic and loops to your styles, and more."
]
},
"react": {
"title": "React",
"intro": [
"React is a popular JavaScript library for building reusable, component-driven user interfaces for web pages or applications.",
"React combines HTML with JavaScript functionality into its own markup language called JSX. React also makes it easy to manage the flow of data throughout the application.",
"In this course, you'll learn how to create different React components, manage data in the form of state props, use different lifecycle methods like <code>componentDidMount</code>, and much more."
]
},
"redux": {
"title": "Redux",
"intro": [
"As applications grow in size and scope, managing shared data becomes much more difficult. Redux is defined as a \"predictable state container for JavaScript apps\" that helps ensure your apps work predictably, and are easier to test.",
"While you can use Redux with any view library, we introduce Redux here before combining it with React in the next set of courses.",
"In this course, you'll learn the fundamentals of Redux stores, actions, reducers and middleware to manage data throughout your application."
]
},
"react-and-redux": {
"title": "React and Redux",
"intro": [
"React and Redux are often mentioned together, and with good reason. The developer who created Redux was a React developer who wanted to make it easier to share data across different components.",
"Now that you know how to manage the flow of shared data with Redux, it's time to combine that knowledge with React. In the React and Redux courses, you'll build a React component and learn how to manage state locally at the component level, and throughout the entire application with Redux."
]
},
"front-end-development-libraries-projects": {
"title": "Front End Development Libraries Projects",
"intro": [
"It's time to put your front end development libraries skills to the test. Use Bootstrap, jQuery, Sass, React, and Redux to build 5 projects that will test everything you've learned up to this point.",
"Complete all 5 projects, and you'll earn the Front End Development Libraries certification."
]
}
}
},
"data-visualization": {
"title": "Data Visualization",
"intro": [
"Data is all around us, but it doesn't mean much without shape or context.",
"In the Data Visualization Certification, you'll build charts, graphs, and maps to present different types of data with the D3.js library.",
"You'll also learn about JSON (JavaScript Object Notation), and how to work with data online using an API (Application Programming Interface)."
],
"note": "",
"blocks": {
"data-visualization-with-d3": {
"title": "Data Visualization with D3",
"intro": [
"D3, or D3.js, stands for Data Driven Documents. It's a JavaScript library for creating dynamic and interactive data visualizations in the browser.",
"D3 is built to work with common web standards namely HTML, CSS, and Scalable Vector Graphics (SVG).",
"D3 supports many different kinds of input data formats. Then, using its powerful built-in methods, you can transform those data into different charts, graphs, and maps.",
"In the Data Visualization with D3 courses, you'll learn how to work with data to create different charts, graphs, hover elements, and other ingredients to create dynamic and attractive data visualizations."
]
},
"json-apis-and-ajax": {
"title": "JSON APIs and AJAX",
"intro": [
"Similar to how UIs help people use programs, APIs (Application Programming Interfaces) help programs interact with other programs. APIs are tools that computers use to communicate with one another, in part to send and receive data.",
"Programmers often use AJAX (Asynchronous JavaScript and XML) when working with APIs. AJAX refers to a group of technologies that make asynchronous requests to a server to transfer data, then load any returned data into the page. And the data transferred between the browser and server is often in a format called JSON (JavaScript Object Notation).",
"This course will teach you the basics about working with APIs and different AJAX technologies in the browser."
]
},
"data-visualization-projects": {
"title": "Data Visualization Projects",
"intro": [
"Now that you learned how to work with D3, APIs, and AJAX technologies, put your skills to the test with these 5 Data Visualization projects.",
"In these projects, you'll need to fetch data and parse a dataset, then use D3 to create different data visualizations. Finish them all to earn your Data Visualization certification."
]
}
}
},
"relational-database": {
"title": "Relational Database",
"intro": [
"For these courses, you will use real developer tools and software including VS Code, PostgreSQL, and the Linux / Unix command line to complete interactive tutorials and build projects.",
"These courses start off with basic Bash commands. Using the terminal, you will learn everything from navigating and manipulating a file system, scripting in Bash, all the way to advanced usage.",
"Next, you will learn how to create and use a relational database with PostgreSQL, a database management system, and SQL, the language of these databases.",
"Finally, you will learn Git, the version control system, an essential tool of every developer."
],
"blocks": {
"build-a-celestial-bodies-database-project": {
"title": "Celestial Bodies Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"build-a-number-guessing-game-project": {
"title": "Number Guessing Game",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"build-a-periodic-table-database-project": {
"title": "Periodic Table Database",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create a Bash script to get information about chemical elements from a periodic table database."
]
},
"build-a-salon-appointment-scheduler-project": {
"title": "Salon Appointment Scheduler",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"build-a-world-cup-database-project": {
"title": "World Cup Database",
"intro": [
"This is one of the required projects to earn your certification.",
"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."
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "Learn Advanced Bash by Building a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140-lesson course, you will learn some more complex commands, and the details of how commands work."
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "Learn Bash and SQL by Building a Bike Rental Shop",
"intro": [
"In this 210-lesson course, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "Learn Bash by Building 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 course, you will learn terminal commands by creating a website boilerplate using only the command line."
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "Learn Bash Scripting by Building 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 course, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "Learn Git by Building 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 course, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"learn-nano-by-building-a-castle": {
"title": "Learn Nano by Building a Castle",
"intro": [
"Nano is a program that allows you to edit files right in the terminal.",
"In this 40-lesson course, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"learn-relational-databases-by-building-a-database-of-video-game-characters": {
"title": "Learn Relational Databases by Building a Database of Video Game Characters",
"intro": [
"A relational database organizes data into tables that are linked together through relationships.",
"In this 165-lesson course, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
]
},
"learn-sql-by-building-a-student-database-part-1": {
"title": "Learn SQL by Building a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with a relational database.",
"In this 140-lesson course, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "Learn SQL by Building 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 course, you will complete your student database while diving deeper into SQL commands."
]
}
}
},
"back-end-development-and-apis": {
"title": "Back End Development and APIs",
"intro": [
"Until this point, you've only used JavaScript on the front end to add interactivity to a page, solve algorithm challenges, or build an SPA. But JavaScript can also be used on the back end, or server, to build entire web applications.",
"Today, one of the popular ways to build applications is through microservices, which are small, modular applications that work together to form a larger whole.",
"In the Back End Development and APIs Certification, you'll learn how to write back end apps with Node.js and npm. You'll also build web applications with the Express framework, and build a People Finder microservice with MongoDB and the Mongoose library."
],
"note": "",
"blocks": {
"managing-packages-with-npm": {
"title": "Managing Packages with NPM",
"intro": [
"npm (Node Package Manager), is a command line tool to install, create, and share packages of JavaScript code written for Node.js. There are many open source packages available on npm, so before starting a project, take some time to explore so you don't end up recreating the wheel for things like working with dates or fetching data from an API.",
"In this course, you'll learn the basics of using npm, including how to work with the <code>package.json</code> and how to manage your installed dependencies."
]
},
"basic-node-and-express": {
"title": "Basic Node and Express",
"intro": [
"Node.js is a JavaScript runtime that allows developers to write backend (server-side) programs in JavaScript. Node.js comes with a handful of built-in modules — small, independent programs — that help with this. Some of the core modules include HTTP, which acts like a server, and File System, a module to read and modify files.",
"In the last set of courses you learned to install and manage packages from npm, which are collections of smaller modules. These packages can help you build larger, more complex applications.",
"Express is a lightweight web application framework, and is one of the most popular packages on npm. Express makes it much easier to create a server and handle routing for your application, which handles things like directing people to the correct page when they visit a certain endpoint like <pre>/blog</pre>.",
"In this course, you'll learn the basics of Node and Express including how to create a server, serve different files, and handle different requests from the browser."
]
},
"mongodb-and-mongoose": {
"title": "MongoDB and Mongoose",
"intro": [
"MongoDB is a database application that stores JSON documents (or records) that you can use in your application. Unlike SQL, another type of database, MongoDB is a non-relational or \"NoSQL\" database. This means MongoDB stores all associated data within one record, instead of storing it across many preset tables as in a SQL database.",
"Mongoose is a popular npm package for interacting with MongoDB. With Mongoose, you can use plain JavaScript objects instead of JSON, which makes it easier to work with MongoDB. Also, it allows you to create blueprints for your documents called schemas, so you don't accidentally save the wrong type of data and cause bugs later.",
"In the MongoDB and Mongoose courses, you'll learn the fundamentals of working with persistent data including how to set up a model, and save, delete, and find documents in the database."
]
},
"back-end-development-and-apis-projects": {
"title": "Back End Development and APIs Projects",
"intro": [
"You've worked with APIs before, but now that you know npm, Node, Express, MongoDB, and Mongoose, it's time to build your own. Draw on everything you've learned up to this point to create 5 different microservices, which are smaller applications that are limited in scope.",
"After creating these, you'll have 5 cool microservice APIs you can show off to friends, family, and potential employers. Oh, and you'll have a shiny new Back End Development and APIs Certification, too."
]
}
}
},
"quality-assurance": {
"title": "Quality Assurance",
"intro": [
"As your programs or web applications become more complex, you'll want to test them to make sure that new changes don't break their original functionality.",
"In the Quality Assurance Certification, you'll learn how to write tests with Chai to ensure your applications work the way you expect them to.",
"Then you'll build a chat application to learn advanced Node and Express concepts. You'll also use Pug as a template engine, Passport for authentication, and Socket.io for real-time communication between the server and connected clients."
],
"note": "",
"blocks": {
"quality-assurance-and-testing-with-chai": {
"title": "Quality Assurance and Testing with Chai",
"intro": [
"Chai is a JavaScript testing library that helps you confirm that your program still behaves the way you expect it to after you make changes to your code.",
"Using Chai, you can write tests that describe your program's requirements and see if your program meets them.",
"In this course, you'll learn about assertions, deep equality, truthiness, testing APIs, and other fundamentals for testing JavaScript applications."
]
},
"advanced-node-and-express": {
"title": "Advanced Node and Express",
"intro": [
"Now it's time to take a deep dive into Node.js and Express.js by building a chat application with a sign-in system.",
"To implement the sign-in system safely, you'll need to learn about authentication. This is the act of verifying the identity of a person or process.",
"In this course, you'll learn how to use Passport to manage authentication, Pug to create reusable templates for quickly building the front end, and web sockets for real-time communication between the clients and server."
]
},
"quality-assurance-projects": {
"title": "Quality Assurance Projects",
"intro": [
"Now that you're well versed in both the front end and back end, it's time to apply all the skills and concepts you've learned up to this point. You'll build 5 different web applications, and write tests for each one to make sure they're working and can handle different edge cases.",
"After completing these Quality Assurance projects, you'll have 5 more projects under your belt, and a new certification to show off on your portfolio."
]
}
}
},
"scientific-computing-with-python": {
"title": "Scientific Computing with Python",
"intro": [
"The Scientific Computing with Python curriculum will equip you with the skills to analyze and manipulate data using Python, a powerful and versatile programming language. You'll learn key concepts like data structures, algorithm, Object Oriented Programming, and how to perform complex calculations using a variety of tools.",
"This comprehensive course will guide you through the fundamentals of scientific computing, including data structures, and algorithms."
],
"note": "",
"blocks": {
"learn-string-manipulation-by-building-a-cipher": {
"title": "Learn String Manipulation by Building a Cipher",
"intro": [
"Python is a powerful and popular programming language widely used for data science, data visualization, web development, game development, machine learning and more.",
"In this project, you'll learn fundamental programming concepts in Python, such as variables, functions, loops, and conditional statements. You'll use these to code your first programs."
]
},
"learn-how-to-work-with-numbers-and-strings-by-implementing-the-luhn-algorithm": {
"title": "Learn How to Work with Numbers and Strings by Implementing the Luhn Algorithm",
"intro": [
"The Luhn Algorithm is widely used for error-checking in various applications, such as verifying credit card numbers.",
"By building this project, you'll gain experience working with numerical computations and string manipulation."
]
},
"learn-list-comprehension-by-building-a-case-converter-program": {
"title": "Learn Python List Comprehension by Building a Case Converter Program",
"intro": [
"List Comprehension is a way to construct a new Python list from an iterable types: lists, tuples, and strings. All without using a for loop or the `.append()` list method.",
"In this project, you'll write a program that takes a string formatted in Camel Case or Pascal Case, then converts it into Snake Case.",
"The project has two phases: first you'll use a for loop to implement the program. Then you'll learn how to use List Comprehension instead of a loop to achieve the same results."
]
},
"learn-regular-expressions-by-building-a-password-generator": {
"title": "Learn Regular Expressions by Building a Password Generator",
"intro": [
"A Python module is a file that contains a set of statements and definitions that you can use in your code.",
"In this project, you'll learn how to import modules from the Python standard library. You'll also learn how to use Regular Expressions by building your own password generator program."
]
},
"learn-algorithm-design-by-building-a-shortest-path-algorithm": {
"title": "Learn Algorithm Design by Building a Shortest Path Algorithm",
"intro": [
"Algorithms are step-by-step procedures that developers use to perform calculations and solve computational problems.",
"In this project, you'll learn how to use functions, loops, conditional statements, and dictionary comprehensions to implement a Shortest Path algorithm."
]
},
"learn-recursion-by-solving-the-tower-of-hanoi-puzzle": {
"title": "Learn Recursion by Solving the Tower of Hanoi Puzzle",
"intro": [
"Recursion is a programming approach that allows you to solve complicated computational problems with just a little code.",
"In this project, you'll start with a loop-based approach to solving the tower of Hanoi mathematical puzzle. Then you'll learn how to implement a recursive solution."
]
},
"learn-data-structures-by-building-the-merge-sort-algorithm": {
"title": "Learn Data Structures by Building the Merge Sort Algorithm",
"intro": [
"The Merge Sort Algorithm is a sorting algorithm based on the divide and conquer principle.",
"In this project, you'll learn how to interact with data structures by sorting a list of random numbers using the Merge Sort Algorithm."
]
},
"learn-classes-and-objects-by-building-a-sudoku-solver": {
"title": "Learn Classes and Objects by Building a Sudoku Solver",
"intro": [
"Classes and objects are important programming concepts. These Object-Oriented Programming tools help developers to achieve code modularity, abstraction, and readability. And they promote reusability.",
"In this Sudoku Solver project, you'll learn how to use classes and objects to build a Sudoku grid and to solve a Sudoku puzzle."
]
},
"learn-tree-traversal-by-building-a-binary-search-tree": {
"title": "Learn Tree Traversal by Building a Binary Search Tree",
"intro": [
"A Binary Search Tree (BST) is an common data structure where data is sorted hierarchically.",
"In this project, you'll learn how to construct your own BST and perform an in-order traversal. You'll also learn key operations like insertion, search, and deletion."
]
},
"learn-lambda-functions-by-building-an-expense-tracker": {
"title": "Learn Lambda Functions by Building an Expense Tracker",
"intro": [
"Lambda functions give you a concise way to write small, throwaway functions in your code.",
"In this project, you'll explore the power of Lambda Functions by creating an expense tracker. Your resulting app will demonstrate how you can use Lambda Functions for efficient, streamlined operations."
]
},
"build-an-arithmetic-formatter-project": {
"title": "Build an Arithmetic Formatter Project",
"intro": [
"This is one of the required projects to claim your certification."
]
},
"build-a-time-calculator-project": {
"title": "Build a Time Calculator Project",
"intro": [
"This is one of the required projects to claim your certification."
]
},
"build-a-budget-app-project": {
"title": "Build a Budget App Project",
"intro": [
"This is one of the required projects to claim your certification."
]
},
"build-a-polygon-area-calculator-project": {
"title": "Build a Polygon Area Calculator Project",
"intro": [
"This is one of the required projects to claim your certification."
]
},
"build-a-probability-calculator-project": {
"title": "Build a Probability Calculator Project",
"intro": [
"This is one of the required projects to claim your certification."
]
},
"learn-interfaces-by-building-an-equation-solver": {
"title": "Learn Interfaces by Building an Equation Solver",
"intro": [
"Abstract classes enable you to define formal interfaces - objects acting as blueprints for classes.",
"In this project, you'll discover how to implement an interface in Python while building a simple equation solver program."
]
},
"learn-special-methods-by-building-a-vector-space": {
"title": "Learn Special Methods by Building a Vector Space",
"intro": [
"Python special methods are called in response to specific operations and enable you to customize the behavior of your objects in a detailed and effective way.",
"In this project, you are going to explore some of the most common special methods while learning about vectors by building a vector space."
]
},
"learn-encapsulation-by-building-a-projectile-trajectory-calculator": {
"title": "Learn Encapsulation by Building a Projectile Trajectory Calculator",
"intro": [
"Encapsulation is a core OOP principle based on writing code that limits direct access to data.",
"In this project, you'll discover new concepts related to encapsulation, such as getters, setters, and name mangling, and you'll use them together with what you already learned to create a program that calculates a projectile trajectory."
]
},
"learn-the-bisection-method-by-finding-the-square-root-of-a-number": {
"title": "Learn the Bisection Method by Finding the Square Root of a Number",
"intro": [
"Numerical methods are used to approximate solutions to mathematical problems that are difficult or impossible to solve analytically.",
"In this project, you will explore the numerical method of bisection to find the square root of a number by iteratively narrowing down the possible range of values that contain the square root."
]
}
}
},
"data-analysis-with-python": {
"title": "Data Analysis with Python",
"intro": [
"Data Analysis has been around for a long time. But up until a few years ago, developers practiced it using expensive, closed-source tools like Tableau. But recently, Python, SQL, and other open libraries have changed Data Analysis forever.",
"In the Data Analysis with Python Certification, you'll learn the fundamentals of data analysis with Python. By the end of this certification, you'll know how to read data from sources like CSVs and SQL, and how to use libraries like Numpy, Pandas, Matplotlib, and Seaborn to process and visualize data."
],
"note": "",
"blocks": {
"data-analysis-with-python-course": {
"title": "Data Analysis with Python",
"intro": [
"In these comprehensive video courses, created by Santiago Basulto, you will learn the whole process of data analysis. You'll be reading data from multiple sources (CSV, SQL, Excel), process that data using NumPy and Pandas, and visualize it using Matplotlib and Seaborn,",
"Additionally, we've included a thorough Jupyter Notebook course, and a quick Python reference to refresh your programming skills."
]
},
"numpy": {
"title": "Numpy",
"intro": [
"Learn the basics of the NumPy library in the following video course created by Keith Galli.",
"In this course, you'll learn how NumPy works and how it compares to Python's built-in lists. You'll also learn how to write code with NumPy, indexing, reshaping, applied statistics, and much more."
]
},
"data-analysis-with-python-projects": {
"title": "Data Analysis with Python Projects",
"intro": [
"There are many ways to analyze data with Python. By completing these projects, you will demonstrate that you have a good foundational knowledge of data analysis with Python.",
"Finish them all to claim your Data Analysis with Python certification."
]
}
}
},
"information-security": {
"title": "Information Security",
"intro": [
"With everything we do online, there's a vast amount of sensitive information at risk: email addresses, passwords, phone numbers, and much more.",
"With the Information Security Certification, you'll build a secure web app with HelmetJS to learn the fundamentals of protecting people's information online.",
"You'll also build a TCP client, and an Nmap and port scanner in Python. This will help you learn the basics of penetration testing — an important component of good information security."
],
"note": "",
"blocks": {
"information-security-with-helmetjs": {
"title": "Information Security with HelmetJS",
"intro": [
"This programming course focuses on HelmetJS, a type of middleware for Express-based applications that automatically sets HTTP headers. This way it can prevent sensitive information from unintentionally being passed between the server and client.",
"Completing the courses below will help you understand how to protect your website from malicious behavior."
]
},
"python-for-penetration-testing": {
"title": "Python for Penetration Testing",
"intro": [
"These video courses teach you penetration testing with Python. Also known as a pen test, penetration testing is a simulated attack against a system to check for vulnerabilities.",
"In this course, you'll learn about sockets, create a TCP server and client, build an Nmap scanner, and other tools and techniques that pen testers use daily."
]
},
"information-security-projects": {
"title": "Information Security Projects",
"intro": [
"Now its time to put your new information security skills to work. These projects will give you a chance to apply the infosec skills, principles, and concepts you've learned.",
"When you are done, you will have plenty of information security projects under your belt, along with a certification that you can show off to friends, family, and employers."
]
}
}
},
"machine-learning-with-python": {
"title": "Machine Learning with Python",
"intro": [
"Machine learning has many practical applications that you can use in your projects or on the job.",
"In the Machine Learning with Python Certification, you'll use the TensorFlow framework to build several neural networks and explore more advanced techniques like natural language processing and reinforcement learning.",
"You'll also dive into neural networks, and learn the principles behind how deep, recurrent, and convolutional neural networks work."
],
"note": "",
"blocks": {
"tensorflow": {
"title": "TensorFlow",
"intro": [
"TensorFlow is an open source framework that makes machine learning and neural networking easier to use.",
"The following video course was created by Tim Ruscica, also known as “Tech With Tim”. It will help you to understand TensorFlow and some of its powerful capabilities."
]
},
"how-neural-networks-work": {
"title": "How Neural Networks Work",
"intro": [
"Neural networks are at the core of what we call artificial intelligence today. But historically they've been hard to understand. Especially for beginners in the machine learning field.",
"Even if you are completely new to neural networks, these video courses by Brandon Rohrer will get you comfortable with the concepts and the math behind them."
]
},
"machine-learning-with-python-projects": {
"title": "Machine Learning with Python Projects",
"intro": [
"Machine learning has many practical applications. By completing these free and challenging coding projects, you will demonstrate that you have a good foundational knowledge of machine learning, and qualify for your Machine Learning with Python certification."
]
}
}
},
"college-algebra-with-python": {
"title": "College Algebra with Python",
"intro": [
"This course is designed as a one-semester college course. It consists of instructional videos, with Google Colaboratory notebooks to follow along interactively, assignments, and challenging projects.",
"As you go through each part of this course in sequence, you will gain a full understanding of Algebra and how to write Python code to solve Algebra problems.",
"Throughout this course, you will also build your own Algebra Colab notebook that you will be able to use as your custom calculator. This course (and the code you write here) will give you the foundation for a deeper math and data science understanding."
],
"note": "",
"blocks": {
"learn-ratios-and-proportions": {
"title": "Learn Ratios and Proportions",
"intro": [
"Your journey begins here as you learn how to set up a Colab Notebook that can run Python code. Then, use the notebook to follow along with the videos to learn ratios and proportions using Python."
]
},
"learn-how-to-solve-for-x": {
"title": "Learn How to Solve for X",
"intro": [
"This unit will focus on how to solve for an unknown number (often referred to as \"x\") using written Algebra and Python code."
]
},
"learn-fractions-and-decimals": {
"title": "Learn Fractions and Decimals",
"intro": [
"This unit will focus on converting decimals to fractions and percents."
]
},
"learn-functions-and-graphing": {
"title": "Learn Functions and Graphing",
"intro": ["This unit will teach you about math functions."]
},
"learn-linear-functions": {
"title": "Learn Linear Functions",
"intro": [
"This unit will show you how to develop linear equations from two points."
]
},
"learn-common-factors-and-square-roots": {
"title": "Learn Common Factors and Square Roots",
"intro": [
"In this unit, you will learn how to find common factors and divide them out. This will be useful when simplifying fractions and factoring square roots."
]
},
"build-a-multi-function-calculator-project": {
"title": "Multi-Function Calculator",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a multi-function calculator."
]
},
"learn-how-to-graph-systems-of-equations": {
"title": "Learn How to Graph Systems of Equations",
"intro": [
"This unit will focus on graphing two equations on the same coordinate plane, so that you can see where the lines intersect."
]
},
"learn-how-to-solve-systems-of-equations": {
"title": "Learn How to Solve Systems of Equations",
"intro": [
"In this unit, you will learn how to solve a system of two equations (with two variables) without graphing. You will see how you can factor an equation and solve for a certain variable in Python. By the end of this unit, you will be able to solve and graph the system with one block of code."
]
},
"learn-applications-of-linear-systems": {
"title": "Learn Applications of Linear Systems",
"intro": [
"In this unit, you will see how you can use the algebra you learned so far to solve real world problems."
]
},
"learn-quadratic-equations": {
"title": "Learn Quadratic Equations",
"intro": [
"This unit will go beyond linear equations, to work with exponents and graph parabolas. You will learn how to find key points in parabolas and how to solve quadratic equations."
]
},
"build-a-graphing-calculator-project": {
"title": "Graphing Calculator",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a graphing calculator."
]
},
"learn-parent-graphs-and-polynomials": {
"title": "Learn Parent Graphs and Polynomials",
"intro": [
"This unit will show you many different types of \"parent\" graphs, the basic patterns that make up more complicated graphs. Polynomials are mathematical expressions with \"multiple things\" - the more complicated equations that are built with basic patterns. You will see what these graphs look like, how to modify them, and how to do this all with Python code."
]
},
"build-three-math-games-project": {
"title": "Three Math Games",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build three math games."
]
},
"learn-business-applications-of-college-algebra": {
"title": "Learn Business Applications of College Algebra",
"intro": [
"This unit will show you how to apply your solving and graphing skills to find cost, revenue, and profit. You will write code to develop a demand function from two points. You will see how price affects the profit graph and how all of these equations relate to each other."
]
},
"learn-simple-and-compound-interest": {
"title": "Learn Simple and Compound Interest",
"intro": [
"This unit will show you how to calculate interest, loan payments, and the estimated value of investments. You will see the math formula and turn that into code. Because these formulas tend to get complicated, you will appreciate having the code where you can just modify a few values."
]
},
"learn-exponents-and-logarithms": {
"title": "Learn Exponents and Logarithms",
"intro": [
"This unit will show you how exponents and logarithms are inverse functions, and how you can use these functions in various applications."
]
},
"build-a-financial-calculator-project": {
"title": "Financial Calculator",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a financial calculator."
]
},
"college-algebra-with-python-conclusion": {
"title": "College Algebra with Python: Conclusion",
"intro": [
"This will be the last unit in this course. Let's look at how you can connect your Math and Python knowledge with external data."
]
},
"build-a-data-graph-explorer-project": {
"title": "Data Graph Explorer",
"intro": [
"This is one of the required projects to earn your certification.",
"For this project, you will build a data graph explorer."
]
}
}
},
"python-for-everybody": {
"title": "Legacy Python for Everybody",
"intro": [
"Python is one of the most popular, flexible programming languages today. You can use it for everything from basic scripting to machine learning."
],
"note": "",
"blocks": {
"python-for-everybody": {
"title": "Python for Everybody",
"intro": [
"Python for everybody is a free video course series that teaches the basics of using Python 3.",
"The courses were created by Dr. Charles Severance (also known as Dr. Chuck). He is a Clinical Professor at the University of Michigan School of Information, where he teaches various technology-oriented courses including programming, database design, and web development."
]
}
}
},
"coding-interview-prep": {
"title": "Coding Interview Prep",
"intro": [
"If you're looking for free coding exercises to prepare for your next job interview, we've got you covered.",
"This section contains dozens of coding challenges that test your knowledge of algorithms, data structures, and mathematics. It also has a number of take-home projects you can use to strengthen your skills, or add to your portfolio.",
"This work incorporates material from <a href=\"https://www.wikipedia.org/\" target=\"_blank\">Wikipedia</a>, which is licensed under the <a href=\"https://creativecommons.org/licenses/by-sa/4.0/\" target=\"_blank\">Creative Commons Attribution-ShareAlike License 4.0</a>. The original content might have been modified and adapted. For the unaltered version and additional details, see the original page on <a href=\"https://www.wikipedia.org/\" target\"_blank\">Wikipedia</a>."
],
"note": "The Project Euler Project and Rosetta Code have been moved to their own courses. Go back to the curriculum to see the list of courses we offer.",
"blocks": {
"algorithms": {
"title": "Algorithms",
"intro": [
"These free programming exercises will teach you about some common algorithms that you will likely encounter in real life. They are a great opportunity to improve your logic and programming skills.",
"These algorithms are frequently used in job interviews to test a candidate's skills. We'll give you clear and concise explanations of how these different algorithms work so you can implement a solution for each one.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"data-structures": {
"title": "Data Structures",
"intro": [
"These free programming courses are meant to help you deal with large and complex data structures that you may not yet be familiar with.",
"Working through the courses below, you will learn about each type of data structure, and implement algorithms to reinforce your understanding of them.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"take-home-projects": {
"title": "Take Home Projects",
"intro": [
"Programming interviews have always been stressful. Job applicants are sometimes given a take home project to be completed outside of the interview. These types of interviews usually require a lot of work, but they're a great way for employers to see how you might perform on the job.",
"Build the bonus coding projects below for extra practice. Take your time, make them great, and put them on your resume or portfolio to show potential employers."
]
}
}
},
"the-odin-project": {
"title": "The Odin Project - freeCodeCamp Remix",
"intro": [
"The Odin Project was created in 2013 by a lone developer, Erik Trautman. Over the years, an open source community has sprung up to maintain and expand the project.",
"freeCodeCamp has expanded upon the open source curriculum to make it run interactively in the browser, with tests to evaluate your code and ensure you've understood key concepts.",
"If you want the original experience of configuring all of The Odin Project to run on your local computer, you can check out the original Odin Project on <a href='https://www.theodinproject.com/' target='_blank' rel='noopener noreferrer nofollow'>The Odin Project website</a>. A huge thanks to The Odin Project community for continuing to maintain this valuable learning resource for developers all around the world.",
"This course is unofficial, and not endorsed by The Odin Project. Changes to The Odin Project curriculum content have been made, and all instructional material for this course is licensed under <a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' target='_blank' rel='noopener noreferrer nofollow'>CC-BY-SA-NC 4.0</a>",
"<a href='https://creativecommons.org/licenses/by-nc-sa/4.0/deed' target='_blank' rel='noopener noreferrer nofollow'>&copy; The Odin Project</a>",
"This course includes content from <a href='https://javascript.info/' target='_blank' rel='noopener noreferrer nofollow'>JavaScript.info</a>, which is licensed under <a href='https://creativecommons.org/licenses/by-nc-sa/4.0/' target='_blank' rel='noopener noreferrer nofollow'>CC-BY-NC-SA 4.0</a>."
],
"blocks": {
"top-learn-html-foundations": {
"title": "Learn HTML Foundations",
"intro": [
"Get a solid grasp of HTML essentials with this course. From structuring web pages to understanding semantic tags, you'll build a strong foundation for creating well-organized and accessible content on the web."
]
},
"top-working-with-text": {
"title": "Working with Text",
"intro": [
"Explore the intricacies of working with text in web development. Learn about text formatting, manipulation, and presentation to enhance your skills in creating web content."
]
},
"top-links-and-images": {
"title": "Links and Images",
"intro": [
"Learn how to incorporate links and images into your web projects. This course covers the fundamentals of creating links and embedding images to make your websites more interactive and visually appealing."
]
},
"top-build-a-recipe-project": {
"title": "Learn HTML Foundations by Building a Recipe Page",
"intro": [
"Put your HTML skills into practice by building a recipe page. This hands-on project allows you to apply your knowledge and create a functional web page while reinforcing key concepts of HTML development."
]
},
"top-learn-css-foundations": {
"title": "Learn CSS Foundations",
"intro": [
"Dive into the world of Cascading Style Sheets (CSS) and learn how to style your HTML elements. Explore styling properties, selectors, and layouts to bring your web pages to life."
]
},
"top-learn-css-foundations-projects": {
"title": "Learn CSS Foundations Projects",
"intro": [
"Take your CSS skills to the next level by working on practical projects. This course provides hands-on experience in applying CSS to create responsive designs for real-world scenarios."
]
},
"top-learn-css-specificity": {
"title": "Learn CSS Specificity",
"intro": [
"Learn CSS specificity and gain a better understanding of how styles are applied to HTML elements. This course explores the nuances of CSS rules and helps you write efficient and targeted styles for your web pages."
]
},
"top-the-box-model": {
"title": "Learn the Box Model",
"intro": [
"Learn the CSS box model with this course. Understand how elements are rendered on the web, and learn to manipulate spacing, borders, and padding to achieve your desired layout and design."
]
},
"top-introduction-to-flexbox": {
"title": "Introduction to Flexbox",
"intro": [
"Discover the power of Flexbox, a layout model that simplifies the design of flexible and responsive web layouts. Learn how to create dynamic and adaptive page structures with ease."
]
},
"top-learn-block-and-inline": {
"title": "Learn the difference between Block and Inline",
"intro": [
"Explore the distinctions between block and inline elements in HTML and CSS. This course provides insights into how these display types affect layout and behavior, empowering you to make informed design decisions."
]
},
"top-learn-variables-and-operators": {
"title": "Learn Variables and Operators",
"intro": [
"Get started with JavaScript by learning about variables and operators. This course covers the fundamentals of JavaScript programming, including data types, operators, and variable declarations."
]
},
"top-learn-data-types-and-conditionals": {
"title": "Learn Data Types and Conditionals",
"intro": ["Learn about data types and conditionals in JavaScript."]
},
"top-learn-function-basics": {
"title": "Learn Function Basics",
"intro": ["Learn about functions in JavaScript."]
},
"top-basic-function-projects": {
"title": "Basic Function Projects",
"intro": [
"Put your JavaScript skills to the test by building basic functions."
]
},
"top-learn-arrays-and-loops": {
"title": "Learn Arrays and Loops",
"intro": ["Learn about arrays and loops in JavaScript."]
},
"top-learn-to-solve-problems-and-understand-errors": {
"title": "Learn to Solve Problems and Understand Errors",
"intro": [
"Learn how to solve problems and understand errors in JavaScript."
]
},
"top-build-a-rock-paper-scissors-game": {
"title": "Build a Rock Paper Scissors Game",
"intro": [
"Put your JavaScript skills to the test by building a Rock Paper Scissors game."
]
}
}
},
"project-euler": {
"title": "Project Euler",
"intro": [
"Complete the programming challenges below, from the massive Project Euler archives. These will harden your algorithm and mathematics knowledge.",
"These problems range in difficulty and, for many, the experience is inductive chain learning. That is, by solving one problem, it will expose you to a new concept that allows you to undertake a previously inaccessible problem. Can you finish them all?"
],
"blocks": {
"project-euler-problems-1-to-100": {
"title": "Project Euler Problems 1 to 100",
"intro": [
"In this first set of challenges, you will use mathematical concepts like the Fibonacci sequence, prime number theory, and combinatorics to write efficient algorithms to solve these problems.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-101-to-200": {
"title": "Project Euler Problems 101 to 200",
"intro": [
"In this set of challenges, you'll build upon the skills you learned in the first part of the course and use more advanced concepts like vector computation, Pascal's pyramid, and the RSA algorithm to solve these problems efficiently.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-201-to-300": {
"title": "Project Euler Problems 201 to 300",
"intro": [
"In this set of challenges, you'll continue to build upon the skills you learned earlier and use concepts like the binomial theorem, Hamming numbers, and the Collatz sequence to further develop your math and problem solving skills.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-301-to-400": {
"title": "Project Euler Problems 301 to 400",
"intro": [
"Here you will continue to flex your mathematical and algorithmic skills as you use concepts such as combinatorial game theory, bitwise operations, and Golomb's self-describing sequence to develop efficient solutions to these problems.",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-401-to-480": {
"title": "Project Euler Problems 401 to 480",
"intro": [
"In this final set of challenges, you will need draw upon everything you learned up to this point and use advanced concepts like unitary divisors, the Kaprekar routine, and much more to solve these complex problems.",
"NOTE: These challenges support JavaScript only solutions."
]
}
}
},
"foundational-c-sharp-with-microsoft": {
"title": "Free Foundational C# with Microsoft Certification",
"intro": [
"This course offers a comprehensive introduction to C# programming, covering its core concepts, syntax, and practical application in software development.",
"Through hands-on exercises and projects, you will learn the fundamentals of C#, including variables, data types, control structures, and object-oriented programming principles.",
"By the end of this course, you will have gained the practical skills and knowledge needed to confidently leverage C# for building applications."
],
"note": "Each section below has a trophy associated with it that you must earn on the Microsoft Learn platform. After earning each trophy, you need to verify them on freeCodeCamp. Once you have done those, you can qualify for the certification exam.",
"blocks": {
"write-your-first-code-using-c-sharp": {
"title": "Write Your First Code Using C#",
"intro": [
"Begin your journey by learning to write your first code using C#. Develop a strong foundation as you explore the fundamentals and syntax of the language, setting the stage for your programming adventures."
]
},
"create-and-run-simple-c-sharp-console-applications": {
"title": "Create and Run Simple C# Console Applications",
"intro": [
"Master the art of creating and running simple C# console applications. Dive into the world of console-based programming, where you will gain hands-on experience executing your code and seeing it in action."
]
},
"add-logic-to-c-sharp-console-applications": {
"title": "Add Logic to C# Console Applications",
"intro": [
"Unlock the power of logic in C# console applications. Learn how to add logic and decision-making capabilities to your code, enabling your applications to make dynamic choices and respond intelligently to different scenarios."
]
},
"work-with-variable-data-in-c-sharp-console-applications": {
"title": "Work with Variable Data in C# Console Applications",
"intro": [
"Discover the versatility of variable data in C# console applications. Harness the ability to store and manipulate different types of data, such as numbers and text, as you delve into the essential concepts of variables and data handling."
]
},
"create-methods-in-c-sharp-console-applications": {
"title": "Create Methods in C# Console Applications",
"intro": [
"Take your C# console applications to the next level by mastering the art of creating methods. Learn how to organize and modularize your code, making it more manageable, reusable, and efficient."
]
},
"debug-c-sharp-console-applications": {
"title": "Debug C# Console Applications",
"intro": [
"Sharpen your troubleshooting skills as you dive into the world of debugging C# console applications. Gain the ability to identify and fix issues in your code, ensuring your applications run smoothly and deliver the desired results."
]
},
"foundational-c-sharp-with-microsoft-certification-exam": {
"title": "Foundational C# with Microsoft Certification Exam",
"intro": [
"Use what you've learned to pass the exam to earn your Foundational C# with Microsoft Certification"
]
}
}
},
"a2-english-for-developers": {
"title": "A2 English for Developers (Beta) Certification",
"intro": [
"In this English for Developers Curriculum, you'll learn the essentials of English communication. This will follow the A2 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for developers.",
"The first half of the curriculum will help you get comfortable with English grammar and usage. It will give you tons of hands-on practice. You'll learn basics like introducing yourself, making small talk, and discussing your work.",
"In the second half, you'll practice vocabulary specific to software development. You'll learn how to describe code, discuss tech trends, and participate in stand-up meetings.",
"This entire A2-level curriculum includes 105 different dialogues. Each is designed to build your vocabulary and boost your confidence when speaking in a professional tech setting."
],
"blocks": {
"learn-greetings-in-your-first-day-at-the-office": {
"title": "Learn Greetings in your First Day at the Office",
"intro": [
"In this first course, you'll learn common expressions for situations you may encounter on your first day at work. You'll learn about introductions, getting to know people, asking for lunch recommendations, and getting an access card from security."
]
},
"learn-introductions-in-an-online-team-meeting": {
"title": "Learn Introductions in an Online Team Meeting",
"intro": [
"In this course, you'll learn how to give a personal introduction. You'll also learn how to state your profession, and share your goals in group meetings."
]
},
"learn-conversation-starters-in-the-break-room": {
"title": "Learn Conversation Starters in the Break Room",
"intro": [
"In this course, you'll learn how to start a conversation in casual settings. You'll also learn how to talk about your hobbies and personality traits. You'll even learn how to ask about places around the town."
]
},
"learn-how-to-talk-about-a-typical-workday-and-tasks": {
"title": "Learn How to Talk About a Typical Workday and Tasks",
"intro": [
"In this course, you'll learn how to talk about your workday and the tasks that you perform in the workplace and how to share them with others. It mainly focuses on the structures used for describing your activities and task-related vocabulary."
]
},
"learn-how-to-discuss-your-morning-or-evening-routine": {
"title": "Learn How to Discuss Your Morning or Evening Routine",
"intro": [
"In this course, you'll learn how to talk about details of your routine and share them with someone else. It mainly focuses on the structures used for declaring routine actions and related vocabulary."
]
},
"learn-how-to-describe-your-current-project": {
"title": "Learn How to Describe Your Current Project",
"intro": [
"In this course, you'll learn how to talk about the projects that you are involved in and how to inform others of what you are doing in these projects. It mainly focuses on the structures used for informing it and on the related vocabulary."
]
},
"learn-how-to-ask-and-share-about-educational-and-professional-background": {
"title": "Learn How to Ask and Share About Educational and Professional Background",
"intro": [
"In this course, you'll learn how to ask about another person's educational and professional backgrounds and you'll learn how to share information about your background as well."
]
},
"learn-how-to-talk-about-hobbies-and-interests": {
"title": "Learn How to Talk About Hobbies and Interests",
"intro": [
"In this course, you'll learn different ways to talk about hobbies and things that interest you. You'll also learn how to ask about other people's hobbies and how to invite them to join you in these activities."
]
},
"learn-how-to-discuss-roles-and-responsibilities": {
"title": "Learn How to Discuss Roles and Responsibilities",
"intro": [
"In this course, you'll discuss people's roles and responsibilities in a company and out of it. You'll discover how to ask about these roles and responsibilities and how to share information about you related to the topic."
]
},
"learn-how-to-have-a-conversation-about-preferences-and-motivations": {
"title": "Learn How to Have a Conversation About Preferences and Motivations",
"intro": [
"In this course, you'll learn how to ask about what motivates people in their personal and professional lives, answer questions related to your motivations, and discuss about people's preferences."
]
},
"learn-how-to-discuss-popular-trends-in-technology": {
"title": "Learn How to Discuss Popular Trends in Technology",
"intro": [
"In this course, you'll learn how to discuss about things that everybody's talking about in technology these days."
]
},
"learn-how-to-clarify-information-in-different-interactions": {
"title": "Learn How to Clarify Information in Different Interactions",
"intro": [
"In this course, you'll learn how to check to see if the information you had is correct and how to ask for clarification when something is not clear to you."
]
},
"learn-how-to-use-basic-programming-vocabulary-in-conversations": {
"title": "Learn How to Use Basic Programming Vocabulary in Conversations",
"intro": [
"This course will present basic vocabulary related to programming. You'll learn how to ask questions related to basic programming concepts."
]
},
"learn-how-to-use-code-related-concepts-and-terms": {
"title": "Learn How to Use Code-related Concepts and Terms",
"intro": [
"In this course, you will be introduced to terms related to coding and learn how to use them in conversation."
]
},
"learn-how-to-discuss-tech-trends-and-updates": {
"title": "Learn How to Discuss Tech Trends and Updates",
"intro": [
"In this course, you will be introduced to some recent trends in the world of technology and learn how to discuss them in English."
]
},
"learn-how-to-help-a-coworker-troubleshoot-on-github": {
"title": "Learn How to Help a Coworker Troubleshoot on GitHub",
"intro": [
"In this course, you will learn expression related to how to ask for help from a coworker as well as how to offer them some assistance."
]
},
"learn-how-to-share-your-progress-in-weekly-stand-up-meetings": {
"title": "Learn How to Share Your Progress in Weekly Stand-up Meetings",
"intro": [
"This course will show you how to talk about your projects in terms of what you have already done and what you are currently doing in them."
]
},
"learn-how-to-ask-for-clarification-on-code-understanding": {
"title": "Learn How to Ask for Clarification on Code Understanding",
"intro": [
"In this course, you will see how you can ask questions to clarify things which are not very clear to you in a code."
]
},
"learn-how-to-document-code-for-a-project": {
"title": "Learn How to Document Code for a Project",
"intro": [
"This course will show you expressions related to what to do when documenting code."
]
},
"learn-how-to-read-and-understand-code-documentation": {
"title": "Learn How to Read and Understand Code Documentation",
"intro": [
"This course will present more expressions related to code documentation and bring tips on how to understand it."
]
},
"learn-how-to-analyze-code-documentation": {
"title": "Learn How to Analyze Code Documentation",
"intro": [
"In this course, you will see some ideas to help you to approach documentation and analyze it in simple terms."
]
},
"learn-how-to-share-progress-and-accomplishments": {
"title": "Learn How to Share Progress and Accomplishments",
"intro": [
"In this course, you will learn how to share your progress with coworkers and tell about what successes you've had in your projects."
]
},
"learn-how-to-talk-about-updates-and-plans-for-tasks-and-projects": {
"title": "Learn How to Talk about Updates and Plans for Tasks and Projects",
"intro": [
"This course will show you how to speak about the most recent advancements in your projects and about your plans."
]
},
"learn-how-to-express-agreement-or-disagreement": {
"title": "Learn How to Express Agreement or Disagreement",
"intro": [
"This course will introduce how to say that you agree with what another person says and to tell them politely that you do not agree with them."
]
},
"learn-how-to-offer-technical-support-and-guidance": {
"title": "Learn How to Offer Technical Support and Guidance",
"intro": [
"In this course, you will see ways of offering some help in terms of technical specifics to another person."
]
},
"learn-how-to-request-and-receive-guidance": {
"title": "Learn How to Request and Receive Guidance",
"intro": [
"This course will show you how to ask for assistance from a coworker when you need it."
]
},
"learn-how-to-provide-explanations-when-helping-others": {
"title": "Learn How to Provide Explanations When Helping Others",
"intro": [
"This course will provide you with ways to explain things to other people while assisting them."
]
},
"a2-english-for-developers-certification-exam": {
"title": "A2 English for Developers Certification Exam",
"intro": [
"This exam is required to claim the A2 English for Developers Certification."
]
}
}
},
"b1-english-for-developers": {
"title": "B1 English for Developers (Beta) Certification",
"intro": [
"In this English for Developers Curriculum, you'll learn the essentials of English communication. This will follow the B1 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for developers.",
"It will help you strengthen your foundational skills while introducing more complex grammar and usage. You'll learn how to describe places and things, share past experiences, and confidently use tenses like Present Perfect and Future. Practical communication strategies are included as well, such as managing conversations, expressing opinions, and building agreement or disagreement in discussions.",
"You'll also focus on applying these skills in professional and technical settings. You'll practice vocabulary and phrases essential for developers, such as describing code, participating in stand-up meetings, and discussing tech trends. Advanced topics include conditionals, comparative structures, and conversation management, so you can prepare for real-world interactions in the tech industry.",
"This entire B1-level curriculum includes 73 different dialogues. Each is designed to build your vocabulary and boost your confidence when speaking in a professional tech setting."
],
"blocks": {
"learn-how-to-describe-places-and-events": {
"title": "Learn How to Describe Places and Events",
"intro": [
"This course will show you ways of talking about places and events conversationally."
]
},
"learn-how-to-talk-about-past-experiences": {
"title": "Learn How to Talk About Past Experiences",
"intro": [
"In this course, you will learn how to share experiences that you had in the past."
]
},
"learn-how-to-talk-about-past-activities": {
"title": "Learn How to Talk About Past Activities",
"intro": [
"In this course, you will learn how talk about things that you did."
]
},
"learn-present-perfect-while-talking-about-accessibility": {
"title": "Learn Present Perfect while Talking About Accessibility",
"intro": [
"In this course, you will learn to use the Present Perfect structure and learn a bit more about accessibility."
]
},
"learn-how-to-plan-future-events": {
"title": "Learn How to Plan Future Events",
"intro": [
"In this course, you will learn to use the different forms of the future to plan for upcoming events."
]
},
"learn-future-continuous-while-describing-actions": {
"title": "Learn Future Continuous while Describing Actions",
"intro": [
"In this course, you will learn to use the Future Continuous tense, and how to describe actions to be performed."
]
},
"learn-how-to-use-conditionals": {
"title": "Learn How to Use Conditionals",
"intro": [
"In this course, you will learn to use the conditional sentences to describe hypothetical outcomes depending on the fact that certain conditions are met."
]
},
"learn-how-to-share-feedback": {
"title": "Learn How to Share Feedback",
"intro": [
"In this course, you will see ways of telling other people how you feel about their work, highlighting both their strengths and points for improvement."
]
},
"learn-how-to-share-your-opinion": {
"title": "Learn How to Share Your Opinion",
"intro": [
"This course will show you how to express your ideas and feeling towards topics in a discussion."
]
},
"learn-how-to-express-agreement": {
"title": "Learn How to Express Agreement",
"intro": [
"In this course, you will learn to express agreement in different professional settings."
]
},
"learn-how-to-express-disagreement": {
"title": "Learn How to Express Disagreement",
"intro": [
"In this course, you will learn to express disagreement in different professional settings."
]
},
"learn-how-to-express-concerns": {
"title": "Learn How to Express Concerns",
"intro": [
"In this course, you will learn to inform other people that you are worried about things that might happen to your projects and tasks."
]
},
"learn-how-to-express-decisions-based-on-comparisons": {
"title": "Learn How to Express Decisions Based on Comparisons",
"intro": [
"In this course, you will learn how to compare things like tools or companies using words like better, faster, and the best. You will also practice having friendly conversations to give opinions and make decisions"
]
},
"learn-how-to-use-modal-verbs": {
"title": "Learn How to Use Modal Verbs",
"intro": [
"In this course, you will learn how to talk about rules, describe things that are necessary, and what could happen if they aren't. You'll also practice asking and answering questions clearly, and adding helpful details to your ideas."
]
},
"learn-how-to-manage-a-conversation": {
"title": "Learn How to Manage a Conversation",
"intro": [
"In this course, you will learn how to manage conversations at work — like how to continue a talk after a break, change topics politely, or interrupt when needed. You'll also practice using useful expressions to keep the conversation clear, friendly, and organized."
]
},
"learn-how-to-clarify-misunderstandings": {
"title": "Learn How to Clarify Misunderstandings",
"intro": [
"In this course, you will learn how to ask for and give explanations when something is not clear, using polite questions and helpful responses. You'll also practice guessing the meaning of new words, describing problems, and clearing up misunderstandings in a friendly and professional way."
]
},
"learn-about-speculation-and-requests": {
"title": "Learn About Speculation and Requests",
"intro": [
"In this course, you will learn how to talk about things that should or could have happened in the past, and how to give suggestions or make polite requests. You'll also practice using expressions to guess what might have caused a problem and how to work together to solve it in a clear and respectful way."
]
},
"learn-about-adverbial-phrases": {
"title": "Learn About Adverbial Phrases",
"intro": [
"In this course, you will learn how to use phrases that give more information about when, where, how often, or how much something happens. You'll also practice using these phrases to describe tasks, talk about plans, and explain results more clearly in your daily work."
]
},
"learn-how-to-use-adjectives-in-conversations": {
"title": "Learn How to Use Adjectives in Conversations",
"intro": [
"In this course, you will learn how to use adjectives to describe things clearly, compare options, and highlight important details in professional conversations. You'll also practice how to make your ideas stronger and more persuasive."
]
},
"learn-determiners-and-advanced-use-of-articles": {
"title": "Learn Determiners and Advanced Use of Articles",
"intro": [
"In this course, you will learn how to use determiners to give clear information about quantity, choice, and distribution. You will also practice using articles in more advanced ways, especially in professional conversations about planning, tasks, and resources."
]
},
"learn-how-to-use-reported-speech": {
"title": "Learn How to Use Reported Speech",
"intro": [
"In this course, you will learn how to report what someone else said in a clear and natural way. You will also practice using the correct verb tenses and sentence structures to share feedback, explain situations, and talk about past events in professional conversations."
]
},
"learn-how-to-use-prepositions-according-to-context": {
"title": "Learn How to Use Prepositions According to Context",
"intro": [
"In this course, you will learn how to use prepositions to describe time, place, and direction clearly in everyday work situations. You will also practice talking about schedules, giving directions, and explaining where people or things are located using natural and accurate language."
]
},
"learn-how-to-talk-about-numbers-with-a-coworker": {
"title": "Learn How to Talk About Numbers with a Coworker",
"intro": [
"In this course, you will learn how to use numbers to talk about tasks, schedules, budgets, and resources in the workplace. You will practice using cardinal and ordinal numbers, percentages, and fractions to organize work, explain progress, and share inventory or financial updates clearly with your team."
]
},
"learn-common-phrasal-verbs-and-idioms": {
"title": "Learn Common Phrasal Verbs and Idioms",
"intro": [
"In this course, you will learn how to use common phrasal verbs and idioms to sound more natural and confident at work. You will practice using expressions to give opinions, make suggestions, organize meetings, and talk about tasks in everyday professional conversations."
]
}
}
},
"rosetta-code": {
"title": "Rosetta Code",
"intro": [
"Level up your creative problem solving skills with these free programming tasks from the classic Rosetta Code library.",
"These challenges can prove to be difficult, but they will push your algorithm logic to new heights.",
"<a href='https://rosettacode.org/wiki/Rosetta_Code' target='_blank' rel='noopener noreferrer nofollow'>Attribute: Rosetta Code</a>"
],
"blocks": {
"rosetta-code-challenges": {
"title": "Rosetta Code Challenges",
"intro": [
"These are the challenges for Rosetta Code.",
"NOTE: These challenges support JavaScript only solutions."
]
}
}
},
"full-stack-developer": {
"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": {
"html": "HTML",
"css": "CSS",
"javascript": "JavaScript",
"frontend-libraries": "Front End Libraries",
"relational-databases": "Relational Databases",
"backend-javascript": "Backend JavaScript",
"python": "Python",
"career": "Career"
},
"modules": {
"basic-html": "Basic HTML",
"semantic-html": "Semantic HTML",
"html-forms-and-tables": "Forms and Tables",
"html-and-accessibility": "Accessibility",
"review-html": "HTML Review",
"exam-html": "HTML Exam",
"computer-basics": "Computer Basics",
"basic-css": "Basic CSS",
"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",
"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-grid": "Grid",
"css-animations": "Animations",
"review-css": "CSS Review",
"exam-css": "CSS Exam",
"code-editors": "Code Editors",
"javascript-variables-and-strings": "Variables and Strings",
"javascript-booleans-and-numbers": "Booleans and Numbers",
"javascript-functions": "Functions",
"javascript-arrays": "Arrays",
"javascript-objects": "Objects",
"javascript-loops": "Loops",
"review-javascript-fundamentals": "JavaScript Fundamentals Review",
"higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
"dom-manipulation-and-events": "DOM Manipulation and Events",
"js-a11y": "JavaScript and Accessibility",
"debugging-javascript": "Debugging",
"basic-regex": "Basic Regex",
"form-validation": "Form Validation",
"javascript-dates": "Dates",
"audio-and-video-events": "Audio and Video Events",
"maps-and-sets": "Maps and Sets",
"localstorage-and-crud-operations": "localStorage and CRUD Operations",
"classes-and-the-this-keyword": "Classes",
"recursion": "Recursion",
"functional-programming": "Functional Programming",
"asynchronous-javascript": "Asynchronous JavaScript",
"review-javascript": "JavaScript Review",
"exam-javascript": "JavaScript Exam",
"react-fundamentals": "React Fundamentals",
"react-state-hooks-and-routing": "React State, Hooks, and Routing",
"performance": "Performance",
"testing": "Testing",
"css-libraries-and-frameworks": "CSS Libraries and Frameworks",
"data-visualization": "Data Visualization and D3",
"typescript-fundamentals": "TypeScript Fundamentals",
"review-front-end-libraries": "Front End Libraries Review",
"exam-front-end-libraries": "Front End Libraries Exam",
"python-basics": "Python Basics",
"python-loops-and-sequences": "Loops and Sequences",
"python-dictionaries-and-sets": "Dictionaries and Sets",
"python-error-handling": "Error Handling",
"python-classes-and-objects": "Classes and Objects",
"python-object-oriented-programming": "Object-Oriented Programming (OOP)",
"python-linear-data-structures": "Linear Data Structures",
"python-algorithms": "Algorithms",
"python-graphs-and-trees": "Graphs and Trees",
"python-dynamic-programming": "Dynamic Programming",
"review-python": "Python Review",
"exam-python": "Python Exam",
"bash-fundamentals": "Bash Fundamentals",
"relational-databases": "Relational Databases",
"bash-scripting": "Bash Scripting",
"sql-and-bash": "SQL and Bash",
"git": "Git",
"introduction-to-nodejs": "Introduction to Node.js",
"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",
"how-to-get-a-developer-job": "How to Get a Developer Job",
"capstone-project": "Capstone Project",
"certified-full-stack-developer-exam": "Certified Full Stack Developer Exam"
},
"module-intros": {
"js-a11y": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will learn how to work with the aria-expanded, aria-live and aria-controls attributes inside of your HTML, CSS and JavaScript applications."
]
},
"css-libraries-and-frameworks": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will be introduced to CSS libraries, frameworks, and preprocessors, including Tailwind CSS, Bootstrap, and Sass. You will build out various components using Tailwind CSS and test your knowledge of these tools with a short quiz."
]
},
"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."
]
},
"python-basics": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will be introduced to Python, which is used in many fields like data science, machine learning, web development, scripting and automation, embedded systems, IoT, and more. You will build out a workshop and lab to practice Python basics and take a short quiz to test your knowledge."
]
},
"python-loops-and-sequences": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will learn how to work with lists, tuples, lambda functions, loops, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
]
},
"python-dictionaries-and-sets": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will be introduced to dictionaries, sets, and the Python standard library. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge."
]
},
"python-error-handling": {
"note": "Coming Fall 2025",
"intro": [
"In this module, you will talk about common error messages, good debugging techniques, and exception handling. You will build a lab to practice these concepts and take a short quiz to test your knowledge."
]
},
"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."
]
},
"bash-fundamentals": {
"note": "Coming Winter 2025",
"intro": [
"In this module, you will learn about the command line and common Bash commands. Then you will practice your skills with a workshop and take a short quiz to test your knowledge."
]
},
"relational-databases": {
"note": "Coming Winter 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."
]
},
"bash-scripting": {
"note": "Coming Winter 2025",
"intro": [
"In this module, you will learn about bash scripting and practice those skills by building five programs. Then you will be able to test your knowledge of these concepts by taking a short quiz."
]
},
"sql-and-bash": {
"note": "Coming Winter 2025",
"intro": [
"In this module, you will learn about normalization, SQL injection, and the N+1 problem. Then you will get to practice working with SQL and Bash by building several workshops and labs. Then you will be able to test your knowledge of these concepts by taking a short quiz."
]
},
"git": {
"note": "Coming Winter 2025",
"intro": [
"In this module, you will learn how to use Git, Nano, and GitHub. Then you will get to practice working with Git by building several workshops and labs. You will be able to test your knowledge of these concepts by taking a short quiz."
]
},
"introduction-to-nodejs": {
"note": "Coming Late 2026",
"intro": [
"In this module, you will be introduced to Node.js, which is a JavaScript runtime environment that allows you to build backend applications using JavaScript. You will get to practice fundamental concepts by building a small workshop and test your knowledge with a short quiz."
]
},
"nodejs-core-libraries": {
"note": "Coming Late 2026",
"intro": [
"In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz."
]
},
"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 Fall 2025",
"intro": [
"In this module, you will learn about the differences between security and privacy as well as other concepts including CSPs, Permissions-Policies, PII, working with CORS, and more. Then you will take a short quiz to test your knowledge."
]
},
"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."
]
},
"how-to-get-a-developer-job": {
"note": "Coming Late 2026",
"intro": [
"In this module, Quincy Larson (Founder and teacher of freeCodeCamp) will talk about strategies you can use to prepare for getting a developer job. Quincy will cover key subjects including résumés, portfolios, researching the market, preparing for technical interviews, and more."
]
},
"capstone-project": {
"note": "Coming Late 2026",
"intro": [
"This will be your opportunity to build out a full stack application encompassing what you have learned throughout this certification."
]
},
"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": {
"workshop-curriculum-outline": {
"title": "Build a Curriculum Outline",
"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."
]
},
"lab-debug-camperbots-profile-page": {
"title": "Debug Camperbot's Profile Page",
"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."
]
},
"lecture-understanding-html-attributes": {
"title": "Understanding HTML Attributes",
"intro": [
"In these lessons, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.",
"You will learn about HTML's role on the web, and what HTML attributes are."
]
},
"lab-debug-pet-adoption-page": {
"title": "Debug a Pet Adoption Page",
"intro": [
"In this lab, you will need to find and fix the errors in this pet adoption page."
]
},
"lecture-understanding-the-html-boilerplate": {
"title": "Understanding the HTML Boilerplate",
"intro": [
"In these lessons, you will learn about the HTML boilerplate which is a ready-made template for your webpages.",
"You will learn how to work with the <code>link</code> element, <code>meta</code> element and more."
]
},
"workshop-cat-photo-app": {
"title": "Build a Cat Photo App",
"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."
]
},
"lab-recipe-page": {
"title": "Build a Recipe Page",
"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."
]
},
"lecture-html-fundamentals": {
"title": "HTML Fundamentals",
"intro": [
"In these lessons, you will learn about HTML fundamentals like the <code>div</code> element, the <code>id</code> and <code>class</code> attributes, the HTML boilerplate, HTML entities, and more."
]
},
"lecture-understanding-how-html-affects-seo": {
"title": "Understanding How HTML Affects SEO",
"intro": [
"In these lessons, you will learn how your HTML code impacts search engine optimization."
]
},
"lab-travel-agency-page": {
"title": "Build a Travel Agency Page",
"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 <code>figure</code> element, the <code>figcaption</code> element, the <code>anchor</code> element, and more."
]
},
"lecture-working-with-audio-and-video-elements": {
"title": "Working with Audio and Video Elements",
"intro": [
"In these lessons, you will learn how to work with the <code>audio</code> and <code>video</code> 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 <code>video</code> and <code>audio</code> elements with controls and source attributes."
]
},
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
"In these lessons, you will learn how to work with SVGs and learn about techniques for optimizing your images."
]
},
"workshop-build-a-heart-icon": {
"title": "Build a Heart Icon",
"intro": [
"In this workshop, you will practice working with SVGs by building a heart icon"
]
},
"lecture-working-with-media": {
"title": "Working with the iframe Element",
"intro": [
"In these lessons, you will learn how to work with the <code>iframe</code> 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 <code>iframe</code> element by building a video display."
]
},
"lab-video-compilation-page": {
"title": "Build a Video Compilation Page",
"intro": [
"In this lab, you'll create a video compilation web page. You'll practice working with the <code>iframe</code> element."
]
},
"lecture-working-with-links": {
"title": "Working with Links",
"intro": [
"In these lessons, you will learn about links, the <code>target</code> attribute, different link states, absolute, and relative paths, and more."
]
},
"review-basic-html": {
"title": "Basic HTML Review",
"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, <code>audio</code> and <code>video</code> elements, the different <code>target</code> attribute values and more."
]
},
"quiz-basic-html": {
"title": "Basic HTML Quiz",
"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."
]
},
"lecture-importance-of-semantic-html": {
"title": "Importance of Semantic HTML",
"intro": [
"In these lessons, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more."
]
},
"lecture-understanding-nuanced-semantic-elements": {
"title": "Understanding Nuanced Semantic Elements",
"intro": [
"In these lessons, you will learn when you should use certain semantic elements like the <code>em</code> element over the <code>i</code> element, description lists, and more."
]
},
"lecture-working-with-text-and-time-semantic-elements": {
"title": "Working with Text and Time Semantic Elements ",
"intro": [
"In this lesson, you will learn about the importance of semantics in conveying meaning for text and time-related content including the <code>time</code>, <code>blockquote</code> elements and more."
]
},
"lecture-working-with-specialized-semantic-elements": {
"title": "Working with Specialized Semantic Elements",
"intro": [
"In this lesson, you will learn about specialized semantic elements like <code>u</code>, <code>s</code>, <code>code</code> elements and more."
]
},
"workshop-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the <code>main</code>, <code>nav</code>, <code>article</code> and <code>footer</code> elements."
]
},
"lab-event-hub": {
"title": "Build an Event Hub",
"intro": [
"In this lab, you'll build an event hub and review semantic elements like <code>header</code>, <code>nav</code>, <code>article</code>, and more."
]
},
"review-semantic-html": {
"title": "Semantic HTML Review",
"intro": [
"Before you are quizzed on semantic HTML, you first need to review the concepts.",
"Open up this page to review the <code>em</code>, <code>strong</code>, <code>blockquote</code>, <code>address</code> and more semantic HTML elements."
]
},
"quiz-semantic-html": {
"title": "Semantic HTML Quiz",
"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."
]
},
"lecture-working-with-forms": {
"title": "Working with Forms",
"intro": [
"In these lessons, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states."
]
},
"workshop-hotel-feedback-form": {
"title": "Build a Hotel Feedback Form",
"intro": [
"In this workshop, you will build a Hotel Feedback Form.",
"You will practice working with labels, inputs, fieldsets, legends, textareas and buttons."
]
},
"lab-survey-form": {
"title": "Build a Survey Form",
"intro": [
"In this lab, you'll review HTML forms by creating a survey form.",
"You'll practice working with the <code>label</code> element, the different <code>input</code> elements, the <code>required</code> attribute, and more. "
]
},
"lecture-working-with-tables": {
"title": "Working with Tables",
"intro": [
"In these lessons, you will learn about HTML tables, how to create them, and when to use them."
]
},
"workshop-final-exams-table": {
"title": "Build a Final Exams Table",
"intro": [
"In this workshop, you will practice working with HTML tables by building a table of final exams."
]
},
"lab-book-catalog-table": {
"title": "Build a Book Catalog Table",
"intro": [
"In this lab, you'll review HTML tables by building a book information table.",
"You'll practice the different table components like the <code>thead</code>, <code>tbody</code>, <code>th</code>, <code>tr</code>, and <code>td</code> elements."
]
},
"lecture-working-with-html-tools": {
"title": "Working with HTML Tools",
"intro": [
"In these lessons, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools."
]
},
"review-html-tables-and-forms": {
"title": "HTML Tables and Forms Review",
"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 <code>table</code>, <code>input</code>, and <code>button</code> elements as well as commonly used tools like the HTML validator and more."
]
},
"quiz-html-tables-and-forms": {
"title": "HTML Tables and Forms Quiz",
"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."
]
},
"lecture-importance-of-accessibility-and-good-html-structure": {
"title": "Importance of Accessibility and Good HTML Structure",
"intro": [
"In these lessons, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more."
]
},
"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 lessons, you will learn about how to create accessible tables and forms."
]
},
"lecture-introduction-to-aria": {
"title": "Introduction to ARIA",
"intro": [
"In these lessons, you will learn about working with ARIA roles."
]
},
"lecture-accessible-media-elements": {
"title": "Working with Accessible Media Elements",
"intro": [
"In these lessons, you will learn about how to create accessible links, audio and video content."
]
},
"lab-checkout-page": {
"title": "Build a Checkout Page",
"intro": [
"In this lab, you'll create an accessible checkout page.",
"You'll practice concepts like <code>alt</code> attributes and ARIA roles."
]
},
"lab-movie-review-page": {
"title": "Design a Movie Review Page",
"intro": [
"In this lab, you'll create a movie review page.",
"You'll practice concepts like semantic HTML, <code>alt</code> attributes, accessible lists, and hiding decorative content from screen readers using <code>aria-hidden</code>."
]
},
"lab-multimedia-player": {
"title": "Build a Multimedia Player",
"intro": [
"In this lab, you'll build a multimedia player.",
"You will practice working with the <code>audio</code> and <code>video</code> elements, the <code>controls</code> attribute, and the <code>aria-label</code> attribute."
]
},
"review-html-accessibility": {
"title": "HTML Accessibility Review",
"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 <code>aria-hidden</code>, <code>aria-describedby</code>, <code>tabindex</code> attributes and more."
]
},
"quiz-html-accessibility": {
"title": "HTML Accessibility Quiz",
"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."
]
},
"review-html": {
"title": "HTML Review",
"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."
]
},
"qpra": {
"title": "30",
"intro": []
},
"lecture-understanding-computer-internet-and-tooling-basics": {
"title": "Understanding Computer, Internet, and Tooling Basics",
"intro": [
"In these lessons, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use."
]
},
"lecture-working-with-file-systems": {
"title": "Working with File Systems",
"intro": [
"In these lessons, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more."
]
},
"lecture-browsing-the-web-effectively": {
"title": "Browsing the Web Effectively",
"intro": [
"In these lessons, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine."
]
},
"review-computer-basics": {
"title": "Computer Basics Review",
"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."
]
},
"quiz-computer-basics": {
"title": "Computer Basics Quiz",
"intro": [
"Test what you've learned in this quiz of basic computer knowledge."
]
},
"lecture-what-is-css": {
"title": "What Is CSS?",
"intro": [
"The following lessons are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more."
]
},
"workshop-cafe-menu": {
"title": "Design a Cafe Menu",
"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."
]
},
"lab-business-card": {
"title": "Design a Business Card",
"intro": [
"In this lab, you'll create a business card and style it using CSS.",
"You'll practice style properties like <code>color</code>, <code>font-size</code>, <code>text-align</code>, and more."
]
},
"lecture-css-specificity-the-cascade-algorithm-and-inheritance": {
"title": "CSS Specificity, the Cascade Algorithm, and Inheritance",
"intro": [
"In these lessons, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more."
]
},
"review-basic-css": {
"title": "Basic CSS Review",
"intro": [
"Before you are quizzed on basic CSS concepts, you first need to review.",
"Open up this page to review concepts including <code>margin</code>, <code>padding</code>, CSS combinators, CSS specificity and more."
]
},
"quiz-basic-css": {
"title": "Basic CSS Quiz",
"intro": [
"Test what you've learned in this quiz of basic CSS knowledge."
]
},
"lecture-styling-lists-and-links": {
"title": "Styling Lists and Links",
"intro": [
"In these lessons, you will learn the properties you need to know to effectively style lists and links, including link states like <code>link</code>, <code>visited</code>, <code>hover</code>, and <code>active</code>."
]
},
"lab-stylized-to-do-list": {
"title": "Build a Stylized To-Do List",
"intro": [
"In this lab, you'll build a To-Do list and apply different styles to the links",
"You'll practice style properties like <code>text-decoration</code>, <code>list-style-type</code> and how to change styles on hover or click."
]
},
"lecture-working-with-backgrounds-and-borders": {
"title": "Working with Backgrounds and Borders",
"intro": [
"In these lessons, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds."
]
},
"lab-blog-post-card": {
"title": "Design a Blog Post Card",
"intro": [
"In this lab, you'll design a blog post card using HTML and CSS",
"You'll practice concepts like <code>background-color</code>, <code>border-radius</code>, margins, paddings, and more."
]
},
"review-css-backgrounds-and-borders": {
"title": "Lists, Links, CSS Background and Borders Review",
"intro": [
"Before you are quizzed on CSS backgrounds and borders, you first need to review.",
"Open up this page to review concepts including the <code>background-image</code> property, <code>border</code> property and more."
]
},
"quiz-css-backgrounds-and-borders": {
"title": "CSS Backgrounds and Borders Quiz",
"intro": [
"Test what you've learned in this quiz of backgrounds and borders in CSS."
]
},
"lecture-user-interface-design-fundamentals": {
"title": "User Interface Design Fundamentals",
"intro": [
"In these lessons, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more."
]
},
"lecture-user-centered-design": {
"title": "User-Centered Design",
"intro": [
"In these lessons, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing."
]
},
"lecture-common-design-tools": {
"title": "Common Design Tools",
"intro": [
"In these lessons, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them."
]
},
"review-design-fundamentals": {
"title": "Design Fundamentals Review",
"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."
]
},
"quiz-design-fundamentals": {
"title": "Design Fundamentals Quiz",
"intro": [
"Test what you've learned in this quiz of UI design fundamentals."
]
},
"lecture-working-with-relative-and-absolute-units": {
"title": "Working with Relative and Absolute Units",
"intro": [
"In these lessons, you will learn about relative and absolute units, and how they both impact what you see in the browser."
]
},
"lab-event-flyer-page": {
"title": "Build an Event Flyer Page",
"intro": [
"In this lab, you'll create an event flyer page.",
"You will practice aligning elements using absolute and relative CSS."
]
},
"review-css-relative-and-absolute-units": {
"title": "CSS Relative and Absolute Units Review",
"intro": [
"Before you are quizzed on relative and absolute units, you first need to review.",
"Open up this page to review concepts like percentages, <code>px</code>, <code>rem</code>, <code>em</code>, and more."
]
},
"quiz-css-relative-and-absolute-units": {
"title": "CSS Relative and Absolute Units Quiz",
"intro": [
"Test what you've learned in this quiz of relative and absolute units in CSS."
]
},
"lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": {
"title": "Working with Pseudo-Classes and Pseudo-Elements in CSS",
"intro": [
"In these lessons, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work."
]
},
"workshop-greeting-card": {
"title": "Design a Greeting Card",
"intro": [
"In the previous lessons, you learned how to work with the different types of pseudo-classes.",
"In this workshop, you will have a chance to practice what you have learned by designing a greeting card."
]
},
"lab-job-application-form": {
"title": "Build a Job Application Form",
"intro": [
"In this lab you'll build a job application form and style it using pseudo-classes.",
"You'll practice concepts like <code>:hover</code>, <code>:active</code>, <code>:focus</code>, and more."
]
},
"review-css-pseudo-classes": {
"title": "CSS Pseudo-classes Review",
"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 <code>::before</code> and <code>::after</code> pseudo-elements as well as the <code>:hover</code>, <code>:active</code> pseudo-classes and more."
]
},
"quiz-css-pseudo-classes": {
"title": "CSS Pseudo-classes Quiz",
"intro": ["Test your knowledge of CSS pseudo-classes with this quiz."]
},
"lecture-working-with-colors-in-css": {
"title": "Working with Colors in CSS",
"intro": [
"In these lessons, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases."
]
},
"workshop-colored-markers": {
"title": "Build a Set of Colored Markers",
"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."
]
},
"lab-colored-boxes": {
"title": "Design a Set of Colored Boxes",
"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."
]
},
"review-css-colors": {
"title": "CSS Colors Review",
"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 <code>rgb()</code> function, <code>hsl()</code> function, <code>hex codes</code>, and more."
]
},
"quiz-css-colors": {
"title": "CSS Colors Quiz",
"intro": ["Test your knowledge of CSS colors with this quiz."]
},
"lecture-best-practices-for-styling-forms": {
"title": "Best Practices for Styling Forms",
"intro": [
"In these lessons, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like <code>color</code> and <code>datetime-local</code>."
]
},
"workshop-registration-form": {
"title": "Design a Registration Form",
"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."
]
},
"lab-contact-form": {
"title": "Design a Contact Form",
"intro": [
"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": [
"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 <code>appearance: none</code> and more."
]
},
"quiz-styling-forms": {
"title": "Styling Forms Quiz",
"intro": [
"In this quiz, you will test your knowledge of how to style forms."
]
},
"lecture-working-with-css-transforms-overflow-and-filters": {
"title": "Working with CSS Transforms, Overflow, and Filters",
"intro": [
"In these lessons, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works."
]
},
"workshop-rothko-painting": {
"title": "Design a Rothko Painting",
"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."
]
},
"lab-confidential-email-page": {
"title": "Build a Confidential Email Page",
"intro": [
"In this lab, you'll create a web page using HTML and mask the content using CSS properties."
]
},
"review-css-layout-and-effects": {
"title": "CSS Layouts and Effects Review",
"intro": [
"Before you are quizzed on CSS Layouts and Effects, you first need to review.",
"Open up this page to review concepts like the <code>transform</code> property, the box model, the <code>overflow</code> property and more."
]
},
"quiz-css-layout-and-effects": {
"title": "CSS Layout and Effects Quiz",
"intro": [
"In this quiz, you will test your knowledge of the box model, transforms, filters, and overflow in CSS."
]
},
"lecture-working-with-css-flexbox": {
"title": "Working with CSS Flexbox",
"intro": [
"In these lessons, you will learn how CSS flexbox works, its properties, and when you should use it."
]
},
"workshop-flexbox-photo-gallery": {
"title": "Build a Flexbox Photo Gallery",
"intro": [
"In this workshop, you'll use Flexbox to build a responsive photo gallery webpage."
]
},
"lab-page-of-playing-cards": {
"title": "Build a Page of Playing Cards",
"intro": [
"In this lab, you'll use flexbox to create a webpage of playing cards.",
"You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
]
},
"review-css-flexbox": {
"title": "CSS Flexbox Review",
"intro": [
"Before you're quizzed on CSS flexbox, you should review what you've learned.",
"Open up this page to review concepts like the <code>flex-direction</code>, <code>justify-content</code>, <code>align-items</code>, <code>flex-wrap</code> properties, and more."
]
},
"quiz-css-flexbox": {
"title": "CSS Flexbox Quiz",
"intro": ["Test what you've learned on CSS flexbox with this quiz."]
},
"lecture-working-with-css-fonts": {
"title": "Working with CSS Fonts",
"intro": [
"In these lessons, you will learn about typography and its best practices, fonts, and the <code>text-shadow</code> property."
]
},
"workshop-nutritional-label": {
"title": "Build a Nutritional Label",
"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."
]
},
"lab-newspaper-article": {
"title": "Build a Newspaper Article",
"intro": [
"In this lab, you'll build a newspaper article page using HTML and CSS.",
"You'll style the fonts using properties like <code>font-family</code>, <code>font-size</code>, <code>font-weight</code>, and more."
]
},
"review-css-typography": {
"title": "CSS Typography Review",
"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 <code>font-family</code> property and more."
]
},
"quiz-css-typography": {
"title": "CSS Typography Quiz",
"intro": ["Test your knowledge of typography with this quiz."]
},
"lecture-best-practices-for-accessibility-and-css": {
"title": "Best Practices for Accessibility and CSS",
"intro": [
"In these lessons, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites."
]
},
"workshop-accessibility-quiz": {
"title": "Build a Quiz Webpage",
"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."
]
},
"lab-tribute-page": {
"title": "Build a Tribute Page",
"intro": [
"In this lab, you'll build a tribute page for a subject of your choosing, fictional or real."
]
},
"review-css-accessibility": {
"title": "CSS Accessibility Review",
"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."
]
},
"quiz-css-accessibility": {
"title": "CSS Accessibility Quiz",
"intro": [
"In this quiz, you'll test what you've learned about making your webpages accessible with CSS."
]
},
"lecture-understanding-how-to-work-with-floats-and-positioning-in-css": {
"title": "Understanding How to Work with Floats and Positioning in CSS",
"intro": [
"In these lessons, you will learn how to use CSS positioning and floats. You will learn about <code>absolute</code>, <code>relative</code>, <code>fixed</code>, and <code>sticky</code> positioning. You will also use the <code>z-index</code> property."
]
},
"workshop-cat-painting": {
"title": "Build a Cat Painting",
"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 <code>z-index</code> property, and the <code>transform</code> property."
]
},
"lab-house-painting": {
"title": "Build a House Painting",
"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 <code>position</code>, <code>top</code>, <code>left</code>, and more."
]
},
"review-css-positioning": {
"title": "CSS Positioning Review",
"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."
]
},
"quiz-css-positioning": {
"title": "CSS Positioning Quiz",
"intro": ["Test your knowledge of CSS positioning with this quiz."]
},
"lecture-working-with-attribute-selectors": {
"title": "Working with Attribute Selectors",
"intro": [
"In these lessons, you will learn about attribute selectors and how to use them to target elements like links and lists."
]
},
"workshop-balance-sheet": {
"title": "Build a Balance Sheet",
"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."
]
},
"lab-book-inventory-app": {
"title": "Build a Book Inventory App",
"intro": [
"In this lab, you'll create a book inventory app.",
"You'll practice CSS attribute selectors like <code>[attribute]</code>, <code>[attribute=value]</code>, <code>[attribute~=value]</code>, and more."
]
},
"review-css-attribute-selectors": {
"title": "CSS Attribute Selectors Review",
"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 <code>href</code> and <code>title</code> attributes."
]
},
"quiz-css-attribute-selectors": {
"title": "CSS Attribute Selectors Quiz",
"intro": [
"Test your knowledge of CSS attribute selectors with this quiz."
]
},
"lecture-best-practices-for-responsive-web-design": {
"title": "Best Practices for Responsive Web Design",
"intro": [
"In these lessons, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more."
]
},
"workshop-piano": {
"title": "Design a 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."
]
},
"lab-technical-documentation-page": {
"title": "Build a Technical Documentation Page",
"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."
]
},
"review-responsive-web-design": {
"title": "Responsive Web Design Review",
"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."
]
},
"quiz-responsive-web-design": {
"title": "Responsive Web Design Quiz",
"intro": [
"Test what you've learned about making your webpages responsive with this quiz."
]
},
"lecture-working-with-css-variables": {
"title": "Working with CSS Variables",
"intro": [
"In these lessons, you will learn how to define and use custom properties (also known as CSS variables). You will also learn about the <code>@property</code> rule and how it works."
]
},
"workshop-city-skyline": {
"title": "Build a City Skyline",
"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."
]
},
"lab-availability-table": {
"title": "Build an Availability Table",
"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."
]
},
"review-css-variables": {
"title": "CSS Variables Review",
"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 <code>@property</code> rule."
]
},
"quiz-css-variables": {
"title": "CSS Variables Quiz",
"intro": ["Test your knowledge of CSS variables with this quiz."]
},
"lecture-working-with-css-grid": {
"title": "Working with CSS Grid",
"intro": [
"In these lessons, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox."
]
},
"workshop-magazine": {
"title": "Build a Magazine",
"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."
]
},
"lab-newspaper-layout": {
"title": "Design a Newspaper Layout",
"intro": [
"In this lab, you will design a newspaper layout using CSS Grid, including concepts like grid rows and grid columns."
]
},
"lecture-debugging-css": {
"title": "Debugging CSS",
"intro": [
"In this lesson, you'll learn how to debug CSS using your browser's developer tools and CSS validators."
]
},
"lab-product-landing-page": {
"title": "Build a Product Landing Page",
"intro": [
"In this project, you'll build a product landing page to market a product of your choice."
]
},
"review-css-grid": {
"title": "CSS Grid Review",
"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 <code>grid-template-columns</code>, <code>grid-gap</code> and more."
]
},
"quiz-css-grid": {
"title": "CSS Grid Quiz",
"intro": ["Test your knowledge of CSS Grid with this quiz."]
},
"lecture-animations-and-accessibility": {
"title": "Animations and Accessibility",
"intro": [
"In these lessons, you will learn about CSS animations and their accessibility concerns. You will also learn how <code>prefers-reduced-motion</code> can help address those accessibility concerns."
]
},
"workshop-ferris-wheel": {
"title": "Build an Animated Ferris Wheel",
"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."
]
},
"lab-moon-orbit": {
"title": "Build a Moon Orbit",
"intro": [
"In this lab, you'll create an animation of the moon orbiting the earth.",
"You'll practice animation properties like <code>animation-name</code>, <code>animation-duration</code>, <code>animation-timing-function</code>, and more."
]
},
"workshop-flappy-penguin": {
"title": "Build a Flappy Penguin",
"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."
]
},
"lab-personal-portfolio": {
"title": "Build a Personal Portfolio",
"intro": [
"In this project, you'll build your own personal portfolio page."
]
},
"review-css-animations": {
"title": "CSS Animations Review",
"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 <code>prefers-reduced-motion</code>, the <code>@keyframes</code> rule and more."
]
},
"quiz-css-animations": {
"title": "CSS Animations Quiz",
"intro": ["Test your knowledge of CSS animations with this quiz."]
},
"review-css": {
"title": "CSS Review",
"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."
]
},
"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-introduction-to-javascript": {
"title": "Introduction to JavaScript",
"intro": [
"In these lessons, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, and much more."
]
},
"lecture-introduction-to-strings": {
"title": "Introduction to Strings",
"intro": [
"In these lessons, you will learn how to work with strings and string concatenation."
]
},
"lecture-understanding-code-clarity": {
"title": "Understanding Code Clarity",
"intro": [
"In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming."
]
},
"workshop-greeting-bot": {
"title": "Build a Greeting Bot",
"intro": [
"In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
"You will learn about variables, <code>let</code>, <code>const</code>, <code>console.log</code> and basic string usage."
]
},
"lab-javascript-trivia-bot": {
"title": "Build a JavaScript Trivia Bot",
"intro": [
"In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
]
},
"lab-sentence-maker": {
"title": "Build a Sentence Maker",
"intro": [
"In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
]
},
"lecture-working-with-data-types": {
"title": "Working with Data Types",
"intro": [
"In the following lessons, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the <code>typeof</code> operator, and the <code>typeof null</code> bug."
]
},
"review-javascript-variables-and-data-types": {
"title": "JavaScript Variables and Data Types Review",
"intro": [
"Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
"Open up this page to review variables, data types, logging and commenting."
]
},
"quiz-javascript-variables-and-data-types": {
"title": "JavaScript Variables and Data Types Quiz",
"intro": [
"Test your knowledge of JavaScript variables and data types with this quiz."
]
},
"lecture-working-with-strings-in-javascript": {
"title": "Working with Strings in JavaScript",
"intro": [
"In these lessons, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
]
},
"workshop-teacher-chatbot": {
"title": "Build a Teacher Chatbot",
"intro": [
"In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
"You will learn how to work with template literals, and the <code>indexOf</code> method."
]
},
"lecture-working-with-string-character-methods": {
"title": "Working with String Character Methods",
"intro": [
"In this lesson you will learn about ASCII character encoding and how to use JavaScript's <code>charCodeAt()</code> and <code>fromCharCode()</code> methods to convert between characters and their numerical ASCII values."
]
},
"lecture-working-with-string-search-and-slice-methods": {
"title": "Working with String Search and Slice Methods",
"intro": [
"In this lesson you will learn how to search for substrings using the <code>includes()</code> method and how to extract portions of strings using the <code>slice()</code> method."
]
},
"lecture-working-with-string-formatting-methods": {
"title": "Working with String Formatting Methods",
"intro": [
"In this lesson you will learn how to format strings by changing their case using <code>toUpperCase()</code> and <code>toLowerCase()</code> methods, and how to remove whitespace using <code>trim()</code>, <code>trimStart()</code>, and <code>trimEnd()</code> methods."
]
},
"lecture-working-with-string-modification-methods": {
"title": "Working with String Modification Methods",
"intro": [
"In this lesson you will learn how to modify strings by replacing parts of them using the <code>replace()</code> method and how to repeat strings multiple times using the <code>repeat()</code> method."
]
},
"review-javascript-strings": {
"title": "JavaScript Strings Review",
"intro": [
"Before you are quizzed on working with JavaScript strings, you first need to review.",
"Open up this page to review how to work with template literals, the <code>slice</code> method, the <code>includes</code> method, the <code>trim</code> method and more."
]
},
"quiz-javascript-strings": {
"title": "JavaScript Strings Quiz",
"intro": ["Test your knowledge of JavaScript strings with this quiz."]
},
"lecture-working-with-numbers-and-arithmetic-operators": {
"title": "Working with Numbers and Arithmetic Operators",
"intro": [
"In these lessons you will learn about the number type, arithmetic operators, and using them with numbers and strings."
]
},
"lecture-working-with-operator-behavior": {
"title": "Working with Operator Behavior",
"intro": [
"In these lessons you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
]
},
"lecture-working-with-comparison-and-boolean-operators": {
"title": "Working with Comparison and Boolean Operators",
"intro": [
"In these lessons you will learn about booleans, and equality and inequality operators, and other comparison operators."
]
},
"lecture-working-with-unary-and-bitwise-operators": {
"title": "Working with Unary and Bitwise Operators",
"intro": [
"In these lessons you will learn about unary and bitwise operators."
]
},
"lecture-working-with-conditional-logic-and-math-methods": {
"title": "Working with Conditional Logic and Math Methods",
"intro": [
"In these lessons you will learn about conditional statements, binary logical operators, and the <code>Math</code> object."
]
},
"workshop-mathbot": {
"title": "Build a Mathbot",
"intro": [
"In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
]
},
"lab-fortune-teller": {
"title": "Build a Fortune Teller",
"intro": [
"In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
"You'll practice how to work with the <code>Math.random()</code> method and the <code>Math.floor()</code> method to generate random numbers."
]
},
"lecture-working-with-numbers-and-common-number-methods": {
"title": "Working with Numbers and Common Number Methods",
"intro": [
"In these lessons, you will learn about numbers and common number methods. These include <code>isNaN()</code>, <code>parseInt()</code>, <code>parseFloat()</code>, and <code>toFixed()</code>."
]
},
"review-javascript-math": {
"title": "JavaScript Math Review",
"intro": [
"Before you're quizzed on working with the <code>Math</code> object, you should review what you've learned.",
"Open up this page to review how to work with the <code>Math.random()</code> method, the <code>Math.floor()</code> method and more."
]
},
"quiz-javascript-math": {
"title": "JavaScript Math Quiz",
"intro": [
"Test your knowledge of the JavaScript <code>Math</code> object with this quiz."
]
},
"lecture-understanding-comparisons-and-conditionals": {
"title": "Understanding Comparisons and Conditionals",
"intro": [
"In these lessons, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with <code>null</code> and <code>undefined</code>."
]
},
"review-javascript-comparisons-and-conditionals": {
"title": "JavaScript Comparisons and Conditionals Review",
"intro": [
"Before you're quizzed on working with conditionals, you should review what you've learned about them.",
"Open up this page to review how to work with <code>switch</code> statements, other types of conditionals and more."
]
},
"quiz-javascript-comparisons-and-conditionals": {
"title": "JavaScript Comparisons and Conditionals Quiz",
"intro": [
"Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
]
},
"lecture-working-with-functions": {
"title": "Working with Functions",
"intro": [
"In these lessons, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
]
},
"workshop-calculator": {
"title": "Build a Calculator",
"intro": [
"In this workshop, you will review your knowledge of functions by building a calculator."
]
},
"lab-boolean-check": {
"title": "Build a Boolean Check Function",
"intro": [
"In this lab, you'll implement a function that checks if a value is a boolean."
]
},
"lab-email-masker": {
"title": "Build an Email Masker",
"intro": [
"In this lab, you'll build an email masker that will take an email address and obscure it.",
"You'll practice string slicing, concatenation, and using functions."
]
},
"workshop-loan-qualification-checker": {
"title": "Build a Loan Qualification Checker",
"intro": [
"In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
"You will learn more about <code>if</code> statements, and how to use comparison operators and multiple conditions in an <code>if</code> statement."
]
},
"lab-celsius-to-fahrenheit-converter": {
"title": "Build a Celsius to Fahrenheit Converter",
"intro": [
"In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
]
},
"lab-counting-cards": {
"title": "Build a Card Counting Assistant",
"intro": ["In this lab you will use JavaScript to count dealt cards."]
},
"lab-leap-year-calculator": {
"title": "Build a Leap Year Calculator ",
"intro": [
"In this lab you'll use conditional statements and loops to determine if a year is a leap year."
]
},
"lab-truncate-string": {
"title": "Implement the Truncate String Algorithm",
"intro": [
"In this lab, you will practice truncating a string at a certain length."
]
},
"lab-string-ending-checker": {
"title": "Build a Confirm the Ending Tool",
"intro": [
"In this lab, you will implement a function that checks if a given string ends with a specified target string."
]
},
"review-javascript-functions": {
"title": "JavaScript Functions Review",
"intro": [
"Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
"Open up this page to review functions, arrow functions and scope."
]
},
"quiz-javascript-functions": {
"title": "JavaScript Functions Quiz",
"intro": ["Test your knowledge of JavaScript functions with this quiz."]
},
"lecture-working-with-arrays": {
"title": "Working with Arrays",
"intro": [
"In these lessons, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
]
},
"workshop-shopping-list": {
"title": "Build a Shopping List",
"intro": [
"In this workshop, you will practice how to work with arrays by building a shopping list.",
"You will review how to add and remove elements from an array using methods like <code>push</code>, <code>pop</code>, <code>shift</code>, and <code>unshift</code>."
]
},
"lab-lunch-picker-program": {
"title": "Build a Lunch Picker Program",
"intro": [
"In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
]
},
"lab-golf-score-translator": {
"title": "Build a Golf Score Translator",
"intro": [
"For this lab, you will use array methods to translate golf scores into their nickname."
]
},
"lab-reverse-a-string": {
"title": "Build a String Inverter",
"intro": [
"In this lab, you create a function that reverses a given string."
]
},
"lecture-working-with-common-array-methods": {
"title": "Working with Common Array Methods",
"intro": [
"In these lessons, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
]
},
"review-javascript-arrays": {
"title": "JavaScript Arrays Review",
"intro": [
"Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
"Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
]
},
"quiz-javascript-arrays": {
"title": "JavaScript Arrays Quiz",
"intro": ["Test your knowledge of JavaScript arrays with this quiz."]
},
"lecture-introduction-to-javascript-objects-and-their-properties": {
"title": "Introduction to JavaScript Objects and Their Properties",
"intro": [
"In these lessons, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
]
},
"lecture-working-with-optional-chaining-and-object-destructuring": {
"title": "Working with Optional Chaining and Object Destructuring",
"intro": [
"In these lessons, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
]
},
"lecture-working-with-json": {
"title": "Working with JSON",
"intro": [
"In these lessons, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the <code>JSON.parse()</code> and <code>JSON.stringify()</code> methods."
]
},
"workshop-recipe-tracker": {
"title": "Build a Recipe Tracker",
"intro": [
"In this workshop, you will review working with JavaScript objects by building a recipe tracker."
]
},
"lab-quiz-game": {
"title": "Build a Quiz Game",
"intro": [
"In this lab, you'll build a quiz game using JavaScript arrays and objects.",
"You'll also practice using functions to randomly select a question and an answer from an array and compare them."
]
},
"lab-record-collection": {
"title": "Build a Record Collection",
"intro": [
"In this lab you will build a function to manage a record collection."
]
},
"review-javascript-objects": {
"title": "JavaScript Objects Review",
"intro": [
"Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
"Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
]
},
"quiz-javascript-objects": {
"title": "JavaScript Objects Quiz",
"intro": ["Test your knowledge of JavaScript objects with this quiz."]
},
"lecture-working-with-loops": {
"title": "Working with Loops",
"intro": [
"Loops are an essential part of JavaScript. That's why the following lessons have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
]
},
"workshop-sentence-analyzer": {
"title": "Build a Sentence Analyzer",
"intro": [
"In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
]
},
"lab-longest-word-in-a-string": {
"title": "Build a Longest Word Finder App",
"intro": [
"In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
]
},
"lab-factorial-calculator": {
"title": "Build a Factorial Calculator ",
"intro": [
"In this lab, you'll build a factorial calculator.",
"You'll practice using loops and conditionals to calculate the factorial of a number."
]
},
"lab-mutations": {
"title": "Implement the Mutations Algorithm",
"intro": [
"In this lab, you will practice iterating over two different strings to compare their characters."
]
},
"lab-chunky-monkey": {
"title": "Implement the Chunky Monkey Algorithm",
"intro": [
"In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
]
},
"lab-profile-lookup": {
"title": "Build a Profile Lookup",
"intro": [
"In this lab, you'll create a function that looks up profile information."
]
},
"lab-repeat-a-string": {
"title": "Build a String Repeating Function",
"intro": [
"In this lab, you will implement loops to repeat a string a specified number of times."
]
},
"lab-missing-letter-detector": {
"title": "Build a Missing Letter Detector",
"intro": [
"In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it."
]
},
"review-javascript-loops": {
"title": "JavaScript Loops Review",
"intro": [
"Before you're quizzed on the different JavaScript loops, you should review them.",
"Open up this page to review the <code>for...of</code> loop, <code>while</code> loop, <code>break and continue</code> statements and more."
]
},
"quiz-javascript-loops": {
"title": "JavaScript Loops Quiz",
"intro": ["Test your knowledge of JavaScript loops with this quiz."]
},
"lecture-working-with-types-and-objects": {
"title": "Working with Types and Objects",
"intro": [
"In these lessons you will learn about string objects, the <code>toString()</code> method, the <code>Number</code> constructor and more."
]
},
"lecture-working-with-arrays-variables-and-naming-practices": {
"title": "Working with Arrays, Variables, and Naming Practices",
"intro": [
"In these lessons you will learn about common practices for naming variables and functions, and how to work with arrays."
]
},
"lecture-working-with-code-quality-and-execution-concepts": {
"title": "Working with Code Quality and Execution Concepts",
"intro": [
"In these lessons you will learn what are linters and formatters, what is memory management, and closures."
]
},
"lab-largest-number-finder": {
"title": "Build the Largest Number Finder",
"intro": [
"In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
]
},
"lab-first-element-finder": {
"title": "Build a First Element Finder",
"intro": [
"In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
]
},
"lab-slice-and-splice": {
"title": "Implement the Slice and Splice Algorithm",
"intro": [
"In this lab, you will practice merging an array with another."
]
},
"lab-pyramid-generator": {
"title": "Build a Pyramid Generator",
"intro": [
"In this lab you'll build a pyramid generator.",
"You'll take a number as input and generate a pyramid with that many levels using a loop."
]
},
"lab-gradebook-app": {
"title": "Build a Gradebook App",
"intro": [
"For this lab, you'll create a gradebook app.",
"You'll practice conditionals to determine the student's grade based on their score."
]
},
"lecture-the-var-keyword-and-hoisting": {
"title": "The var Keyword and Hoisting",
"intro": [
"In these lessons, you will learn about the <code>var</code> keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
]
},
"lab-title-case-converter": {
"title": "Build a Title Case Converter",
"intro": [
"In this lab, you will build a function that converts a string to title case."
]
},
"lab-falsy-remover": {
"title": "Implement a Falsy Remover",
"intro": [
"In this lab, you will create a function that removes all falsy values from an array."
]
},
"lab-inventory-management-program": {
"title": "Build an Inventory Management Program",
"intro": [
"For this lab, you'll build an inventory management program using JavaScript.",
"You'll use JavaScript array of objects to manage the inventory."
]
},
"lecture-understanding-modules-imports-and-exports": {
"title": "Understanding Modules, Imports, and Exports",
"intro": [
"In this lesson, you will learn about modules, imports, and exports in JavaScript."
]
},
"lecture-working-with-the-arguments-object-and-rest-parameters": {
"title": "Working with the arguments Object and Rest Parameters",
"intro": [
"In these lessons, you will learn how to work with the <code>arguments</code> object and rest parameter syntax."
]
},
"lab-unique-sorted-union": {
"title": "Implement a Unique Sorted Union",
"intro": [
"In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays."
]
},
"lab-password-generator": {
"title": "Build a Password Generator App",
"intro": [
"In this lab, you'll build a password generator app based on the user's input."
]
},
"lab-sum-all-numbers-algorithm": {
"title": "Design a Sum All Numbers Algorithm",
"intro": [
"In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
]
},
"lab-dna-pair-generator": {
"title": "Implement a DNA Pair Generator",
"intro": [
"In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs."
]
},
"lab-html-entitiy-converter": {
"title": "Implement an HTML Entity Converter",
"intro": [
"In this lab, you will convert special characters in a string to their corresponding HTML entities."
]
},
"lab-odd-fibonacci-sum-calculator": {
"title": "Build an Odd Fibonacci Sum Calculator",
"intro": [
"In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number."
]
},
"lab-optional-arguments-sum-function": {
"title": "Build an Optional Arguments Sum Function",
"intro": [
"In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
]
},
"review-javascript-fundamentals": {
"title": "JavaScript Fundamentals Review",
"intro": [
"Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
"Open up this page to review concepts like closures, memory management, and more."
]
},
"quiz-javascript-fundamentals": {
"title": "JavaScript Fundamentals Quiz",
"intro": [
"Test your knowledge of JavaScript fundamentals with this quiz."
]
},
"lecture-working-with-higher-order-functions-and-callbacks": {
"title": "Working with Higher Order Functions and Callbacks",
"intro": [
"In these lessons, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include <code>map()</code>, <code>filter()</code>, <code>reduce()</code>, <code>sort()</code>, <code>every()</code>, and <code>some()</code>. You will also learn how to chain these methods together to achieve your desired results."
]
},
"workshop-library-manager": {
"title": "Build a Library Manager",
"intro": [
"In this workshop, you will learn higher order array methods by building a library manager."
]
},
"lab-book-organizer": {
"title": "Build a Book Organizer",
"intro": [
"In this lab, you'll build a book organizer using higher order functions in JavaScript."
]
},
"lab-sorted-index-finder": {
"title": "Implement a Sorted Index Finder",
"intro": [
"In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
]
},
"lab-symmetric-difference": {
"title": "Build a Symmetric Difference Function",
"intro": [
"In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
]
},
"lab-value-remover-function": {
"title": "Implement a Value Remover Function",
"intro": [
"In this lab, you will create a function that removes all instances of a specified value from an array."
]
},
"lab-matching-object-filter": {
"title": "Implement a Matching Object Filter",
"intro": [
"In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs."
]
},
"lab-sum-all-primes-calculator": {
"title": "Build a Prime Number Sum Calculator",
"intro": [
"In this lab you will build a sum all primes calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
]
},
"lab-range-based-lcm-calculator": {
"title": "Implement a Range-Based LCM Calculator",
"intro": [
"In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
]
},
"lab-deep-flattening-tool": {
"title": "Create a Deep Flattening Tool",
"intro": [
"In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
]
},
"lab-all-true-property-validator": {
"title": "Build an All-True Property Validator",
"intro": [
"In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
]
},
"review-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Review",
"intro": [
"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 <code>map()</code>, <code>filter()</code>, and <code>reduce()</code> methods."
]
},
"quiz-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Quiz",
"intro": [
"Test your knowledge of JavaScript higher order functions with this quiz."
]
},
"lecture-working-with-the-dom-click-events-and-web-apis": {
"title": "Working with the DOM, Click Events, and Web APIs",
"intro": [
"In these lessons, you will learn how to work with the Document Object Model (DOM), the <code>addEventListener()</code> method and events, and web APIs."
]
},
"workshop-storytelling-app": {
"title": "Build a Storytelling App",
"intro": [
"In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
]
},
"workshop-emoji-reactor": {
"title": "Build an Emoji Reactor",
"intro": [
"In this workshop, you will build an emoji reactor to practice <code>querySelector</code> and <code>querySelectorAll</code>."
]
},
"lab-favorite-icon-toggler": {
"title": "Build a Favorite Icon Toggler",
"intro": [
"In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
]
},
"lecture-understanding-the-event-object-and-event-delegation": {
"title": "Understanding the Event Object and Event Delegation",
"intro": [
"In these lessons, you will learn about the event object, the change event, event bubbling, and event delegation."
]
},
"workshop-music-instrument-filter": {
"title": "Build a Music Instrument Filter",
"intro": [
"In this workshop, you will build a music instrument filter with JavaScript."
]
},
"lab-real-time-counter": {
"title": "Build a Real Time Counter",
"intro": [
"In this lab, you'll build a real-time character counter",
"You'll practice how to work with the <code>input</code> event when the user types in the input field."
]
},
"lab-lightbox-viewer": {
"title": "Build a Lightbox Viewer",
"intro": [
"In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
"You'll practice click events and toggling classes."
]
},
"workshop-rps-game": {
"title": "Build a Rock, Paper, Scissors Game",
"intro": [
"In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
]
},
"lab-football-team-cards": {
"title": "Build a Set of Football Team Cards",
"intro": [
"In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
]
},
"review-dom-manipulation-and-click-events-with-javascript": {
"title": "DOM Manipulation and Click Events with JavaScript Review",
"intro": [
"Before you're quizzed on the DOM, you should review what you've learned about it.",
"Open up this page to review concepts including how to work with the <code>DOM</code>, <code>Web APIs</code>, the <code>addEventListener()</code> method, change events, event bubbling and more."
]
},
"quiz-dom-manipulation-and-click-event-with-javascript": {
"title": "DOM Manipulation and Click Events with JavaScript Quiz",
"intro": [
"Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
]
},
"lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
"title": "Understanding aria-expanded, aria-live, and Common ARIA States",
"intro": [
"In these lessons you will learn more about ARIA attributes like <code>aria-expanded</code>, <code>aria-live</code>, and common ARIA states."
]
},
"workshop-planets-tablist": {
"title": "Build a Planets Tablist",
"intro": [
"In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
]
},
"workshop-note-taking-app": {
"title": "Build a Note Taking App",
"intro": [
"In this workshop, you are going to build an accessible note taking app.",
"This will provide you with the opportunity to practice working with <code>aria-live</code> attribute."
]
},
"lab-theme-switcher": {
"title": "Build a Theme Switcher",
"intro": [
"In this lab, you will build a theme switcher and practice working with the <code>aria-haspopup</code>, <code>aria-expanded</code>, and <code>aria-controls</code> attributes."
]
},
"review-js-a11y": {
"title": "JavaScript and Accessibility Review",
"intro": [
"Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
"Open up this page to review concepts including how to work with the <code>aria-expanded</code>, <code>aria-live</code>, and <code>aria-controls</code> attributes."
]
},
"quiz-js-a11y": {
"title": "JavaScript and Accessibility Quiz",
"intro": [
"Test your knowledge of JavaScript and accessibility best practices with this quiz."
]
},
"lecture-debugging-techniques": {
"title": "Debugging Techniques",
"intro": [
"In these lessons, you will learn about the common errors in JavaScript and the techniques you can use to fix them a process called debugging."
]
},
"lab-random-background-color-changer": {
"title": "Debug a Random Background Color Changer",
"intro": [
"In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
]
},
"review-debugging-javascript": {
"title": "Debugging JavaScript Review",
"intro": [
"Before you're quizzed on common debugging techniques, you should review what you've learned.",
"Open up this page to review concepts including how to work with the <code>throw statement</code>, <code>try...catch...finally</code> and more."
]
},
"quiz-debugging-javascript": {
"title": "Debugging JavaScript Quiz",
"intro": ["Test your knowledge of JavaScript debugging with this quiz."]
},
"lecture-working-with-regular-expressions": {
"title": "Working with Regular Expressions",
"intro": [
"In these lessons, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
]
},
"workshop-spam-filter": {
"title": "Build a Spam Filter",
"intro": [
"Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
"In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
]
},
"lab-palindrome-checker": {
"title": "Build a Palindrome Checker",
"intro": [
"For this lab, you'll build an application that checks whether a given word is a palindrome."
]
},
"lab-markdown-to-html-converter": {
"title": "Build a Markdown to HTML Converter",
"intro": [
"For this lab, you'll build a Markdown to HTML converter using JavaScript.",
"You'll practice regular expressions, string manipulation, and more."
]
},
"lab-regex-sandbox": {
"title": "Build a RegEx Sandbox",
"intro": ["In this lab you'll build a regex sandbox."]
},
"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": [
"Before you're quizzed on Regular Expressions, you should review what you've learned.",
"Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
]
},
"quiz-javascript-regular-expressions": {
"title": "JavaScript Regular Expressions Quiz",
"intro": [
"Test your knowledge of JavaScript Regular Expressions with this quiz."
]
},
"lecture-understanding-form-validation": {
"title": "Understanding Form Validation",
"intro": [
"In these lessons, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the <code>preventDefault()</code> method works, and how the submit event works."
]
},
"workshop-calorie-counter": {
"title": "Build a Calorie Counter",
"intro": [
"Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
"You'll also practice basic regular expressions, template literals, the <code>addEventListener()</code> method, and more."
]
},
"lab-customer-complaint-form": {
"title": "Build a Customer Complaint Form",
"intro": [
"For this lab, you'll use JavaScript to validate a customer complaint form.",
"You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
]
},
"review-form-validation-with-javascript": {
"title": "Form Validation with JavaScript Review",
"intro": [
"Before you're quizzed on form validation, you should review what you've learned.",
"Open up this page to review concepts including the <code>preventDefault()</code> method, the submit event and more."
]
},
"quiz-form-validation-with-javascript": {
"title": "Form Validation with JavaScript Quiz",
"intro": [
"Test what you've learned about JavaScript form validation with this quiz."
]
},
"lecture-working-with-dates": {
"title": "Working with Dates",
"intro": [
"In these lessons, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
]
},
"lab-date-conversion": {
"title": "Build a Date Conversion Program",
"intro": [
"In this lab, you'll build a program to convert a date from one format to another."
]
},
"review-javascript-dates": {
"title": "JavaScript Dates Review",
"intro": [
"Before you're quizzed on working with dates, you should review what you've learned.",
"Open up this page to review the <code>Date()</code> object and common methods."
]
},
"quiz-javascript-dates": {
"title": "JavaScript Dates Quiz",
"intro": [
"Test what you've learned about JavaScript Dates with this quiz."
]
},
"lecture-working-with-audio-and-video": {
"title": "Working with Audio and Video",
"intro": [
"In these lessons, you will learn how to work with audio and video files using JavaScript. You will learn about the <code>Audio</code> and <code>Video</code> constructors, their methods and properties, audio and video formats, codecs, the <code>HTMLMediaElement</code> API, and much more."
]
},
"workshop-music-player": {
"title": "Build a Music Player",
"intro": [
"In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
"The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
]
},
"lab-drum-machine": {
"title": "Build a Drum Machine",
"intro": [
"For this lab you will use the <code>audio</code> element to build a drum machine."
]
},
"review-javascript-audio-and-video": {
"title": "JavaScript Audio and Video Review",
"intro": [
"Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
"Open up this page to review concepts including the <code>Audio</code> constructor, the <code>HTMLMediaElement</code> API and more."
]
},
"quiz-javascript-audio-and-video": {
"title": "JavaScript Audio and Video Quiz",
"intro": [
"Test what you've learned about JavaScript audio and video with this quiz."
]
},
"lecture-working-with-maps-and-sets": {
"title": "Working with Maps and Sets",
"intro": [
"In these lessons, you will learn about JavaScript <code>Map</code> and <code>Set</code>. You will also learn how they both differ from <code>WeakSets</code> and <code>WeakMaps</code>."
]
},
"workshop-plant-nursery-catalog": {
"title": "Build a Plant Nursery Catalog",
"intro": [
"In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
]
},
"lab-voting-system": {
"title": "Build a Voting System",
"intro": [
"In this lab, you'll build a voting system using Maps and Sets.",
"You'll practice how to use the <code>Map</code> object to store key-value pairs and the <code>Set</code> object to store unique values."
]
},
"review-javascript-maps-and-sets": {
"title": "JavaScript Maps and Sets Review",
"intro": [
"Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
"Open up this page to review concepts such as the <code>Map</code> and <code>Set</code> objects, as well as WeakSet and WeakMap."
]
},
"quiz-javascript-maps-and-sets": {
"title": "JavaScript Maps and Sets Quiz",
"intro": [
"Test what you've learned about JavaScript Maps and Sets with this quiz."
]
},
"lecture-working-with-client-side-storage-and-crud-operations": {
"title": "Working with Client-Side Storage and CRUD Operations",
"intro": [
"In these lessons, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about <code>localStorage</code> and <code>sessionStorage</code> alongside their methods and properties, cookies, the Cache API, IndexDB, and much more."
]
},
"workshop-todo-app": {
"title": "Build a Todo App using Local Storage",
"intro": [
"Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
"In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
]
},
"lab-bookmark-manager-app": {
"title": "Build a Bookmark Manager App",
"intro": [
"For this lab, you'll build a bookmark manager app.",
"You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
]
},
"review-local-storage-and-crud": {
"title": "Local Storage and CRUD Review",
"intro": [
"Before you are quizzed on working with <code>localStorage</code>, you first need to review the concepts.",
"Open up this page to review the <code>localStorage</code> property, <code>sessionStorage</code> property and more."
]
},
"quiz-local-storage-and-crud": {
"title": "Local Storage and CRUD Quiz",
"intro": [
"Test what you've learned about local storage and CRUD with this quiz."
]
},
"lecture-understanding-how-to-work-with-classes-in-javascript": {
"title": "Understanding How to Work with Classes in JavaScript",
"intro": [
"In these lessons, you will learn about classes in JavaScript. You will learn about inheritance, the <code>this</code> keyword, static properties and methods, and more."
]
},
"workshop-shopping-cart": {
"title": "Build a Shopping Cart",
"intro": [
"In this workshop you'll create a shopping cart using JavaScript classes.",
"You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
]
},
"lab-project-idea-board": {
"title": "Build a Project Idea Board",
"intro": [
"In this lab, you'll build a project idea board using OOP in JavaScript.",
"You'll practice how to create classes, add methods to classes, and create instances of classes."
]
},
"lab-bank-account-manager": {
"title": "Build a Bank Account Management Program",
"intro": [
"In this lab, you'll build a simple transaction management system for a bank account."
]
},
"review-javascript-classes": {
"title": "JavaScript Classes Review",
"intro": [
"Before you're quizzed on how to work with classes, you should review what you've learned about them.",
"Open up this page to review concepts including the <code>this</code> keyword, class inheritance and more."
]
},
"quiz-javascript-classes": {
"title": "JavaScript Classes Quiz",
"intro": [
"Test what you've learned about JavaScript classes with this quiz."
]
},
"lecture-understanding-recursion-and-the-call-stack": {
"title": "Understanding Recursion and the Call Stack",
"intro": [
"In this lesson, you will learn about recursion and the call stack."
]
},
"workshop-decimal-to-binary-converter": {
"title": "Build a Decimal to Binary Converter",
"intro": [
"Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
"In this workshop, youll build a decimal-to-binary converter using JavaScript. Youll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
]
},
"lab-permutation-generator": {
"title": "Build a Permutation Generator",
"intro": [
"For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
]
},
"review-recursion": {
"title": "Recursion Review",
"intro": [
"Before you're quizzed on recursion, you should review what you've learned.",
"Open up this page to review what is recursion and what is it used for."
]
},
"quiz-recursion": {
"title": "Recursion Quiz",
"intro": ["Test your knowledge of Recursion with this quiz."]
},
"lecture-understanding-functional-programming": {
"title": "Understanding Functional Programming",
"intro": [
"In these lessons, you will learn about functional programming and how to nest functions using a technique called currying."
]
},
"workshop-recipe-ingredient-converter": {
"title": "Build a Recipe Ingredient Converter",
"intro": [
"In the previous lessons, you learned the core concepts behind functional programming and currying.",
"Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
]
},
"lab-sorting-visualizer": {
"title": "Build a Sorting Visualizer",
"intro": [
"For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
]
},
"review-javascript-functional-programming": {
"title": "JavaScript Functional Programming Review",
"intro": [
"Before you're quizzed on functional programming, you should review what you've learned.",
"Open up this page to review concepts on functional programming, currying and more."
]
},
"quiz-javascript-functional-programming": {
"title": "JavaScript Functional Programming Quiz",
"intro": [
"Test what you've learned about JavaScript functional programming with this quiz."
]
},
"lecture-understanding-asynchronous-programming": {
"title": "Understanding Asynchronous Programming",
"intro": [
"In these lessons, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the <code>async</code> keyword works, the <code>Fetch</code> API, promises, <code>async/await</code>, the <code>Geolocation</code> API, and much more."
]
},
"workshop-fcc-authors-page": {
"title": "Build an fCC Authors Page",
"intro": [
"One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
"In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
]
},
"lab-fcc-forum-leaderboard": {
"title": "Build an fCC Forum Leaderboard",
"intro": [
"For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
]
},
"lab-weather-app": {
"title": "Build a Weather App",
"intro": [
"In this lab you'll build a Weather App using an API",
"You'll practice how to fetch data from the API, store and display it on your app."
]
},
"review-asynchronous-javascript": {
"title": "Asynchronous JavaScript Review",
"intro": [
"Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
]
},
"quiz-asynchronous-javascript": {
"title": "Asynchronous JavaScript Quiz",
"intro": [
"Test what you've learned about asynchronous JavaScript with this quiz."
]
},
"review-javascript": {
"title": "JavaScript Review",
"intro": [
"Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
"Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
]
},
"kagw": {
"title": "258",
"intro": []
},
"lecture-introduction-to-javascript-libraries-and-frameworks": {
"title": "Introduction to JavaScript Libraries and Frameworks",
"intro": [
"In these lessons, you will get an introduction to JavaScript libraries and frameworks. You will learn about the roles of JavaScript libraries and frameworks, single page applications (SPAs) and the issue surrounding them, and React, the most popular frontend JavaScript library."
]
},
"workshop-reusable-mega-navbar": {
"title": "Build a Reusable Mega Navbar",
"intro": [
"In the previous lessons, you learned how to work with components in React.",
"In this workshop, you will build a reusable Navbar component using React."
]
},
"lab-reusable-footer": {
"title": "Build a Reusable Footer",
"intro": ["In this lab, you'll use React to build a reusable footer."]
},
"lecture-working-with-data-in-react": {
"title": "Working with Data in React",
"intro": [
"In these lessons, you will learn how to work with data in React. You will learn about <code>props</code> 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 <code>useState()</code> 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 <code>useEffect()</code> 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 <code>useState</code> and <code>useEffect</code> 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 <code>useMemo()</code> and <code>useCallback()</code> hooks in React to build a simple shopping list app. You'll learn more about state and the lifecycle of React components, and how to use memoization to reduce re-renders and make your apps more efficient."
]
},
"lab-currency-converter": {
"title": "Build a Currency Converter",
"intro": [
"For this lab, you'll build a currency converter app.",
"You'll use React state, memoization, and controlled components to convert between currencies."
]
},
"lecture-routing-react-frameworks-and-dependency-management-tools": {
"title": "Routing, React Frameworks, and Dependency Management Tools",
"intro": [
"In these lessons, you will learn about routing in React, React frameworks, and dependency management tools."
]
},
"lab-tic-tac-toe": {
"title": "Build a Tic-Tac-Toe Game",
"intro": [
"In this lab, you'll build a Tic-Tac-Toe game using React.",
"You'll practice managing state, handling user interactions, and updating the UI dynamically."
]
},
"lecture-react-strategies-and-debugging": {
"title": "React Strategies and Debugging",
"intro": [
"In these lessons, you will learn about different strategies and debugging in React."
]
},
"review-react-forms-data-fetching-and-routing": {
"title": "React Forms, Data Fetching and Routing Review",
"intro": [
"Before you take the React forms, data fetching and routing quiz, you should review everything you've learned so far.",
"Open up this page, to review all of the concepts taught including routing, forms, state management, prop drilling, data fetching and more."
]
},
"quiz-react-forms-data-fetching-and-routing": {
"title": "React Forms, Data Fetching and Routing Quiz",
"intro": [
"Test what you've learned about routing, forms, and data fetching with this quiz."
]
},
"lecture-understanding-performance-in-web-applications": {
"title": "Understanding Performance in Web Applications",
"intro": [
"In these lessons, you will learn performance in web applications."
]
},
"review-web-performance": {
"title": "Web Performance Review",
"intro": [
"Before you take the web performance quiz, you should review everything you've learned so far.",
"Open up this page to review all of the concepts taught including INP, key metrics for measuring performance, Performance Web APIs and more."
]
},
"quiz-web-performance": {
"title": "Web Performance Quiz",
"intro": [
"Test what you've learned about Web Performance with this quiz."
]
},
"lecture-understanding-the-different-types-of-testing": {
"title": "Understanding the Different Types of Testing",
"intro": [
"In these lessons, you will learn about the different types of testing."
]
},
"review-testing": {
"title": "Testing Review",
"intro": [
"Before you take the testing quiz, you should review everything you've learned so far.",
"Open up this page to review all of the concepts taught including unit testing, end-to-end testing, functional testing and more."
]
},
"quiz-testing": {
"title": "Testing Quiz",
"intro": ["Test what you've learned on testing with this quiz."]
},
"lecture-working-with-css-libraries-and-frameworks": {
"title": "Working with CSS Libraries and Frameworks",
"intro": [
"In these lessons, you will learn how to work with CSS libraries and frameworks."
]
},
"workshop-error-message-component": {
"title": "Build an Error Message Component",
"intro": [
"In this workshop, you will learn the basics of Tailwind CSS by building out an error message component."
]
},
"workshop-tailwind-cta-component": {
"title": "Build a CTA Component",
"intro": [
"In this workshop, you will build a call to action (CTA) component using Tailwind CSS."
]
},
"workshop-tailwind-pricing-component": {
"title": "Build a Pricing Component",
"intro": [
"In this workshop, you will build a pricing component using Tailwind CSS.",
"You will practice working with Tailwind CSS grid utility classes."
]
},
"lab-music-shopping-cart-page": {
"title": "Build a Music Shopping Cart Page",
"intro": [
"In this lab, you will build a music shopping cart page with Tailwind CSS.",
"You will practice working with Tailwind CSS utility classes for flexbox layouts, colors, breakpoints and more."
]
},
"lab-photography-exhibit": {
"title": "Design a Photography Exhibit",
"intro": [
"In this lab, you will practice working with Tailwind CSS by designing a photography exhibit webpage."
]
},
"review-css-libraries-and-frameworks": {
"title": "CSS Libraries and Frameworks Review",
"intro": [
"Before you take the CSS libraries and frameworks quiz, you should review everything you've learned so far.",
"Open up this page to review all of the concepts taught including CSS frameworks, CSS preprocessors, Sass and more."
]
},
"quiz-css-libraries-and-frameworks": {
"title": "CSS Libraries and Frameworks Quiz",
"intro": [
"Test what you've learned about CSS Libraries and Frameworks with this quiz."
]
},
"lecture-introduction-to-typescript": {
"title": "Introduction to TypeScript",
"intro": [
"In these lessons, you will learn what TypeScript is and how to use it."
]
},
"lecture-working-with-generics-and-type-narrowing": {
"title": "Working with Generics and Type Narrowing",
"intro": [
"In these lessons, you will learn about generics and type narrowing in TypeScript."
]
},
"lecture-working-with-typescript-configuration-files": {
"title": "Working with TypeScript Configuration Files",
"intro": [
"In this lesson, you will learn about TypeScript configuration files and how to use them."
]
},
"trvf": {
"title": "293",
"intro": []
},
"kwmg": {
"title": "294",
"intro": []
},
"nodx": {
"title": "295",
"intro": []
},
"erfj": {
"title": "296",
"intro": []
},
"muyw": {
"title": "297",
"intro": []
},
"review-typescript": {
"title": "Typescript Review",
"intro": [
"Before you take the TypeScript quiz, you should review everything you've learned so far.",
"Open up this page to review all of the concepts taught including data types in TypeScript, generics, type narrowing and more."
]
},
"quiz-typescript": {
"title": "TypeScript Quiz",
"intro": ["Test what you've learned on Typescript with this quiz."]
},
"review-front-end-libraries": {
"title": "Front End Libraries Review",
"intro": [
"Review the Front End Libraries concepts to prepare for the upcoming quiz."
]
},
"rdzk": {
"title": "301",
"intro": []
},
"vtpz": {
"title": "302",
"intro": []
},
"lecture-introduction-to-python": {
"title": "Introduction to Python",
"intro": [
"In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more."
]
},
"workshop-caesar-cipher": {
"title": "Build a Caesar Cipher",
"intro": [
"In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more."
]
},
"lab-rpg-character": {
"title": "Build an RPG character",
"intro": [
"In this lab you will practice basic python by building an RPG character."
]
},
"review-python-basics": {
"title": "Python Basics Review",
"intro": [
"Before you're quizzed on Python basics, you should review what you've learned about it.",
"In this review page, you will review working with strings, functions, comparison operators and more."
]
},
"quiz-python-basics": {
"title": "Python Basics Quiz",
"intro": [
"Test what you've learned about Python basics with this quiz."
]
},
"lecture-working-with-loops-and-sequences": {
"title": "Working with Loops and Sequences",
"intro": [
"Learn about Working with Loops and Sequences in these lessons."
]
},
"workshop-pin-extractor": {
"title": "Build a Pin Extractor",
"intro": [
"In this workshop you will build a function to extract secret pins hidden in poems."
]
},
"lab-number-pattern-generator": {
"title": "Build a Number Pattern Generator",
"intro": ["In this lab you will build a number pattern generator."]
},
"review-loops-and-sequences": {
"title": "Loops and Sequences Review",
"intro": [
"Before you're quizzed on loops and sequences, you should review what you've learned about them.",
"Open up this page to review concepts around loops, lists, tuples and some of their common methods."
]
},
"quiz-loops-and-sequences": {
"title": "Loops and Sequences Quiz",
"intro": [
"Test what you've learned about loops and sequences in Python with this quiz."
]
},
"lecture-working-with-dictionaries-and-sets": {
"title": "Working with Dictionaries and Sets",
"intro": [
"Learn about working with dictionaries and sets in these lessons."
]
},
"lecture-working-with-modules": {
"title": "Working with Modules",
"intro": ["Learn about working with modules in these lessons."]
},
"workshop-medical-data-validator": {
"title": "Build a Medical Data Validator",
"intro": [
"In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data."
]
},
"lab-user-configuration-manager": {
"title": "Build a User Configuration Manager",
"intro": [
"In this lab, you will practice working with dictionaries in Python."
]
},
"review-dictionaries-and-sets": {
"title": "Dictionaries and Sets review",
"intro": [
"Before you're quizzed on dictionaries and sets, you should review what you've learned about them.",
"Open up this page to review concepts around dictionaries, sets, and how to import modules."
]
},
"quiz-dictionaries-and-sets": {
"title": "Dictionaries and Sets Quiz",
"intro": [
"Test what you've learned about dictionaries and sets in Python with this quiz."
]
},
"lecture-understanding-error-handling": {
"title": "Understanding Error Handling",
"intro": [
"In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them."
]
},
"lab-isbn-validator": {
"title": "Debug an ISBN Validator",
"intro": [
"In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly."
]
},
"review-error-handling": {
"title": "Error Handling Review",
"intro": [
"Before you're quizzed on error handling, you should review what you've learned about it."
]
},
"quiz-error-handling": {
"title": "Error Handling Quiz",
"intro": [
"Test what you've learned about Error Handling in Python with this quiz."
]
},
"lecture-classes-and-objects": {
"title": "Classes and Objects",
"intro": ["Learn about Classes and Objects in these lessons."]
},
"workshop-musical-instrument-inventory": {
"title": "Build a Musical Instrument Inventory",
"intro": [
"In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory."
]
},
"lab-budget-app": {
"title": "Build a Budget App",
"intro": [
"In this lab you will build a budget app and practice creating a class and methods for that class."
]
},
"review-classes-and-objects": {
"title": "Classes and Objects Review",
"intro": [
"Before you're quizzed on classes and objects, you should review what you've learned about them.",
"Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
]
},
"quiz-classes-and-objects": {
"title": "Classes and Objects Quiz",
"intro": [
"Test what you've learned about classes and objects in Python with this quiz."
]
},
"lecture-understanding-object-oriented-programming-and-encapsulation": {
"title": "Understanding Object Oriented Programming and Encapsulation",
"intro": [
"Learn about Understanding Object Oriented Programming and Encapsulation in these lessons."
]
},
"workshop-salary-tracker": {
"title": "Build a Salary Tracker",
"intro": [
"In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees."
]
},
"lab-placeholder-oop-1": {
"title": "Placeholder - Waiting for title",
"intro": [""]
},
"lecture-understanding-inheritance-and-polymorphism": {
"title": "Understanding Inheritance and Polymorphism",
"intro": [
"Learn about Understanding Inheritance and Polymorphism in these lessons."
]
},
"workshop-media-catalogue": {
"title": "Build a Media Catalogue",
"intro": [
"In this workshop, you will create a media catalogue application using object-oriented programming principles."
]
},
"lab-polygon-area-calculator": {
"title": "Build a Polygon Area Calculator",
"intro": [
"In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles."
]
},
"lecture-understanding-abstraction": {
"title": "Understanding Abstraction",
"intro": ["Learn about Understanding Abstraction in these lessons."]
},
"workshop-placeholder-oop-3": {
"title": "Placeholder - Waiting for title",
"intro": [""]
},
"lab-placeholder-oop-3": {
"title": "",
"intro": [""]
},
"review-object-oriented-programming": {
"title": "Object Oriented Programming Review",
"intro": [
"Before you're quizzed on object oriented programming, you should review what you've learned about it."
]
},
"quiz-object-oriented-programming": {
"title": "Object Oriented Programming Quiz",
"intro": [
"Test what you've learned about object oriented programming in python with this quiz."
]
},
"lecture-working-with-common-data-structures": {
"title": "Working with Common Data Structures",
"intro": [
"Learn about Working with Common Data Structures in these lessons."
]
},
"workshop-linked-list-class": {
"title": "Build a Linked List",
"intro": [
"In this workshop, you'll practice working with data structures by building a linked list."
]
},
"lab-hash-table": {
"title": "Build a Hash Table",
"intro": [
"A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.",
"In this lab, you will use your knowledge about data structures to build a hash table."
]
},
"review-data-structures": {
"title": "Data Structures Review",
"intro": [
"Before you're quizzed on data structures, you should review what you've learned about them.",
"Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation."
]
},
"quiz-data-structures": {
"title": "Data Structures Quiz",
"intro": [
"Test what you've learned about data structures in Python with this quiz."
]
},
"lecture-searching-and-sorting-algorithms": {
"title": "Searching and Sorting Algorithms",
"intro": [
"Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.",
"These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm."
]
},
"workshop-binary-search": {
"title": "Implement the Binary Search Algorithm",
"intro": [
"The binary search algorithm is a searching algorithm used to find a target item in a sorted list.",
"In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'."
]
},
"lab-bisection-method": {
"title": "Implement the Bisection Method",
"intro": [
"In this lab, you will implement the bisection method to find the square root of a number."
]
},
"workshop-merge-sort": {
"title": "Implement the Merge Sort Algorithm",
"intro": [
"The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.",
"In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers."
]
},
"lab-quicksort": {
"title": "Implement the Quicksort Algorithm",
"intro": [
"In this lab you will implement the quicksort algorithm to sort a list of integers."
]
},
"lab-selection-sort": {
"title": "Implement the Selection Sort Algorithm",
"intro": [
"In this lab you will implement the selection sort algorithm."
]
},
"lab-luhn-algorithm": {
"title": "Implement the Luhn Algorithm",
"intro": [
"In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers."
]
},
"lab-tower-of-hanoi": {
"title": "Implement the Tower of Hanoi Algorithm",
"intro": [
"In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle."
]
},
"review-searching-and-sorting-algorithms": {
"title": "Searching and Sorting Algorithms Review",
"intro": [
"Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them."
]
},
"quiz-searching-and-sorting-algorithms": {
"title": "Searching and Sorting Algorithms Quiz",
"intro": [
"Test what you've learned about searching and sorting algorithms in Python with this quiz."
]
},
"lecture-understanding-graphs-and-trees": {
"title": "Understanding Graphs and Trees",
"intro": [
"In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science."
]
},
"workshop-shortest-path-algorithm": {
"title": "Build a Shortest Path Algorithm",
"intro": [""]
},
"lab-adjacency-list-to-matrix-converter": {
"title": "Build an Adjacency List to Matrix Converter",
"intro": [
"In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation."
]
},
"workshop-breadth-first-search": {
"title": "Build a Breadth First Search",
"intro": [""]
},
"lab-depth-first-search": {
"title": "Implement the Depth-First Search Algorithm",
"intro": [
"In this lab, you will implement the Depth-First Search Algorithm."
]
},
"lab-n-queens-problem": {
"title": "",
"intro": [""]
},
"review-graphs-and-trees": {
"title": "Graphs and Trees Review",
"intro": [
"Before you're quizzed on graphs and trees, you should review what you've learned about them."
]
},
"quiz-graphs-and-trees": {
"title": "Graphs and Trees Quiz",
"intro": [
"Test what you've learned about graphs and trees in Python with this quiz."
]
},
"lecture-understanding-dynamic-programming": {
"title": "Understanding Dynamic Programming",
"intro": [
"In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
]
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
"intro": [
"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."]
},
"lecture-understanding-the-command-line-and-working-with-bash": {
"title": "Understanding the Command Line and Working with Bash",
"intro": [
"Learn about the Command Line and Working with Bash in these lessons."
]
},
"workshop-bash-boilerplate": {
"title": "Build a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170-lesson workshop, you will learn terminal commands by creating a website boilerplate using only the command line."
]
},
"review-bash-commands": {
"title": "Bash Commands Review",
"intro": [
"Review the Bash Commands concepts to prepare for the upcoming quiz."
]
},
"quiz-bash-commands": {
"title": "Bash Commands Quiz",
"intro": ["Test what you've learned bash commands with this quiz."]
},
"lecture-working-with-relational-databases": {
"title": "Working with Relational Databases",
"intro": [
"Learn how to work with Relational Databases in these lessons."
]
},
"workshop-database-of-video-game-characters": {
"title": "Build a Database of Video Game Characters",
"intro": [
"A relational database organizes data into tables that are linked together through relationships.",
"In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
]
},
"lab-celestial-bodies-database": {
"title": "Build a Celestial Bodies Database",
"intro": [
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"review-relational-database": {
"title": "Relational Database Review",
"intro": [
"Review the Relational Database concepts to prepare for the upcoming quiz."
]
},
"quiz-relational-database": {
"title": "Relational Database Quiz",
"intro": [
"Test what you've learned on relational databases with this quiz."
]
},
"lecture-understanding-bash-scripting": {
"title": "Understanding Bash Scripting",
"intro": ["Learn about Bash Scripting in these lessons."]
},
"workshop-bash-five-programs": {
"title": "Build Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220-lesson workshop, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"review-bash-scripting": {
"title": "Bash Scripting Review",
"intro": [
"Review the bash scripting concepts you've learned to prepare for the upcoming quiz."
]
},
"quiz-bash-scripting": {
"title": "Bash Scripting Quiz",
"intro": ["Test what you've learned on bash scripting in this quiz."]
},
"lecture-working-with-sql": {
"title": "Working With SQL",
"intro": [
"In these lessons, you will learn about SQL injection, normalization, and the N+1 problem."
]
},
"workshop-sql-student-database-part-1": {
"title": "Build a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with a relational database.",
"In this 140-lesson workshop, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"workshop-sql-student-database-part-2": {
"title": "Build a Student Database: Part 2",
"intro": [
"SQL join commands are used to combine information from multiple tables in a relational database",
"In this 140-lesson workshop, you will complete your student database while diving deeper into SQL commands."
]
},
"lab-world-cup-database": {
"title": "Build a World Cup Database",
"intro": [
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"workshop-kitty-ipsum-translator": {
"title": "Build a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140-lesson workshop, you will learn some more complex commands, and the details of how commands work."
]
},
"workshop-bike-rental-shop": {
"title": "Build a Bike Rental Shop",
"intro": [
"In this 210-lesson workshop, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"lab-salon-appointment-scheduler": {
"title": "Build a Salon Appointment Scheduler",
"intro": [
"For this lab, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"review-bash-and-sql": {
"title": "Bash and SQL Review",
"intro": [
"Review the Bash and SQL concepts to prepare for the upcoming quiz."
]
},
"quiz-bash-and-sql": {
"title": "Bash and SQL Quiz",
"intro": ["Test what you've learned in this quiz on Bash and SQL."]
},
"lecture-working-with-nano": {
"title": "Working With Nano",
"intro": ["Learn about Nano in this lesson."]
},
"workshop-castle": {
"title": "Build a Castle",
"intro": [
"Nano is a program that allows you to edit files right in the terminal.",
"In this 40-lesson workshop, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"lecture-introduction-to-git-and-github": {
"title": "Introduction to Git and GitHub",
"intro": ["Learn how to work with Git and GitHub in these lessons."]
},
"lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
"title": "Working With Code Reviews, Branching, Deployment, and CI/CD",
"intro": [
"Learn about code reviews, branching, deployment, and CI/CD in these lessons."
]
},
"workshop-sql-reference-object": {
"title": "Build an SQL Reference Object",
"intro": [
"Git is a version control system that keeps track of all the changes you make to your codebase.",
"In this 240-lesson workshop, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"lab-periodic-table-database": {
"title": "Build a Periodic Table Database",
"intro": [
"For this lab, you will create a Bash script to get information about chemical elements from a periodic table database."
]
},
"lab-number-guessing-game": {
"title": "Build a Number Guessing Game",
"intro": [
"For this lab, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"review-git": {
"title": "Git Review",
"intro": ["Review Git concepts to prepare for the upcoming quiz."]
},
"quiz-git": {
"title": "Git Quiz",
"intro": ["Test what you've learned on Git with this quiz."]
},
"review-relational-databases": {
"title": "Relational Databases Review",
"intro": [
"Review relational databases concepts to prepare for the upcoming quiz."
]
},
"exam-certified-full-stack-developer": {
"title": "Certified Full Stack Developer Exam",
"intro": ["Pass this exam to become a Certified Full Stack Developer."]
}
}
},
"javascript-v9": {
"title": "JavaScript Certification",
"intro": [
"This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.",
"To earn your JavaScript Certification:",
"- Complete the five required projects to qualify for the certification exam.",
"- Pass the JavaScript Certification exam."
],
"chapters": { "javascript": "JavaScript" },
"modules": {
"javascript-variables-and-strings": "Variables and Strings",
"javascript-booleans-and-numbers": "Booleans and Numbers",
"javascript-functions": "Functions",
"javascript-arrays": "Arrays",
"javascript-objects": "Objects",
"javascript-loops": "Loops",
"review-javascript-fundamentals": "JavaScript Fundamentals Review",
"higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks",
"dom-manipulation-and-events": "DOM Manipulation and Events",
"js-a11y": "JavaScript and Accessibility",
"debugging-javascript": "Debugging",
"basic-regex": "Basic Regex",
"lab-markdown-to-html-converter": "Build a Markdown to HTML Converter",
"form-validation": "Form Validation",
"javascript-dates": "Dates",
"audio-and-video-events": "Audio and Video Events",
"lab-drum-machine": "Build a Drum Machine",
"maps-and-sets": "Maps and Sets",
"lab-voting-system": "Build a Voting System",
"localstorage-and-crud-operations": "localStorage and CRUD Operations",
"classes-and-the-this-keyword": "Classes",
"lab-bank-account-manager": "Build a Bank Account Management Program",
"recursion": "Recursion",
"functional-programming": "Functional Programming",
"asynchronous-javascript": "Asynchronous JavaScript",
"lab-weather-app": "Build a Weather App",
"review-javascript": "JavaScript Review",
"javascript-certification-exam": "JavaScript Certification Exam"
},
"blocks": {
"lecture-introduction-to-javascript": {
"title": "Introduction to JavaScript",
"intro": [
"In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more."
]
},
"workshop-greeting-bot": {
"title": "Build a Greeting Bot",
"intro": [
"In this workshop, you will learn JavaScript fundamentals by building a greeting bot.",
"You will learn about variables, <code>let</code>, <code>const</code>, <code>console.log</code> and basic string usage."
]
},
"lab-javascript-trivia-bot": {
"title": "Build a JavaScript Trivia Bot",
"intro": [
"In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot."
]
},
"lab-sentence-maker": {
"title": "Build a Sentence Maker",
"intro": [
"In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories."
]
},
"lecture-working-with-data-types": {
"title": "Working with Data Types",
"intro": [
"In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the <code>typeof</code> operator, and the <code>typeof null</code> bug."
]
},
"review-javascript-variables-and-data-types": {
"title": "JavaScript Variables and Data Types Review",
"intro": [
"Before you are quizzed on JavaScript variables and data types you first need to review the concepts.",
"Open up this page to review variables, data types, logging and commenting."
]
},
"quiz-javascript-variables-and-data-types": {
"title": "JavaScript Variables and Data Types Quiz",
"intro": [
"Test your knowledge of JavaScript variables and data types with this quiz."
]
},
"lecture-working-with-strings-in-javascript": {
"title": "Working with Strings in JavaScript",
"intro": [
"In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more."
]
},
"workshop-teacher-chatbot": {
"title": "Build a Teacher Chatbot",
"intro": [
"In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.",
"You will learn how to work with template literals, and the <code>indexOf</code> method."
]
},
"lecture-working-with-string-character-methods": {
"title": "Working with String Character Methods",
"intro": [
"In this lecture you will learn about ASCII character encoding and how to use JavaScript's <code>charCodeAt()</code> and <code>fromCharCode()</code> methods to convert between characters and their numerical ASCII values."
]
},
"lecture-working-with-string-search-and-slice-methods": {
"title": "Working with String Search and Slice Methods",
"intro": [
"In this lecture you will learn how to search for substrings using the <code>includes()</code> method and how to extract portions of strings using the <code>slice()</code> method."
]
},
"lecture-working-with-string-formatting-methods": {
"title": "Working with String Formatting Methods",
"intro": [
"In this lecture you will learn how to format strings by changing their case using <code>toUpperCase()</code> and <code>toLowerCase()</code> methods, and how to remove whitespace using <code>trim()</code>, <code>trimStart()</code>, and <code>trimEnd()</code> methods."
]
},
"lecture-working-with-string-modification-methods": {
"title": "Working with String Modification Methods",
"intro": [
"In this lecture you will learn how to modify strings by replacing parts of them using the <code>replace()</code> method and how to repeat strings multiple times using the <code>repeat()</code> method."
]
},
"review-javascript-strings": {
"title": "JavaScript Strings Review",
"intro": [
"Before you are quizzed on working with JavaScript strings, you first need to review.",
"Open up this page to review how to work with template literals, the <code>slice</code> method, the <code>includes</code> method, the <code>trim</code> method and more."
]
},
"quiz-javascript-strings": {
"title": "JavaScript Strings Quiz",
"intro": ["Test your knowledge of JavaScript strings with this quiz."]
},
"lecture-working-with-numbers-and-arithmetic-operators": {
"title": "Working with Numbers and Arithmetic Operators",
"intro": [
"In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings."
]
},
"lecture-working-with-operator-behavior": {
"title": "Working with Operator Behavior",
"intro": [
"In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators."
]
},
"lecture-working-with-comparison-and-boolean-operators": {
"title": "Working with Comparison and Boolean Operators",
"intro": [
"In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators."
]
},
"lecture-working-with-unary-and-bitwise-operators": {
"title": "Working with Unary and Bitwise Operators",
"intro": [
"In these lectures, you will learn about unary and bitwise operators."
]
},
"lecture-working-with-conditional-logic-and-math-methods": {
"title": "Working with Conditional Logic and Math Methods",
"intro": [
"In these lectures, you will learn about conditional statements, binary logical operators, and the <code>Math</code> object."
]
},
"workshop-mathbot": {
"title": "Build a Mathbot",
"intro": [
"In this workshop, you will review how to work with the different Math object methods by building a Mathbot."
]
},
"lab-fortune-teller": {
"title": "Build a Fortune Teller",
"intro": [
"In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.",
"You'll practice how to work with the <code>Math.random()</code> method and the <code>Math.floor()</code> method to generate random numbers."
]
},
"lecture-working-with-numbers-and-common-number-methods": {
"title": "Working with Numbers and Common Number Methods",
"intro": [
"In these lectures, you will learn about numbers and common number methods. These include <code>isNaN()</code>, <code>parseInt()</code>, <code>parseFloat()</code>, and <code>toFixed()</code>."
]
},
"review-javascript-math": {
"title": "JavaScript Math Review",
"intro": [
"Before you're quizzed on working with the <code>Math</code> object, you should review what you've learned.",
"Open up this page to review how to work with the <code>Math.random()</code> method, the <code>Math.floor()</code> method and more."
]
},
"quiz-javascript-math": {
"title": "JavaScript Math Quiz",
"intro": [
"Test your knowledge of the JavaScript <code>Math</code> object with this quiz."
]
},
"lecture-understanding-comparisons-and-conditionals": {
"title": "Understanding Comparisons and Conditionals",
"intro": [
"In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with <code>null</code> and <code>undefined</code>."
]
},
"review-javascript-comparisons-and-conditionals": {
"title": "JavaScript Comparisons and Conditionals Review",
"intro": [
"Before you're quizzed on working with conditionals, you should review what you've learned about them.",
"Open up this page to review how to work with <code>switch</code> statements, other types of conditionals and more."
]
},
"quiz-javascript-comparisons-and-conditionals": {
"title": "JavaScript Comparisons and Conditionals Quiz",
"intro": [
"Test your knowledge of JavaScript Comparisons and Conditionals with this quiz."
]
},
"lecture-working-with-functions": {
"title": "Working with Functions",
"intro": [
"In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. "
]
},
"workshop-calculator": {
"title": "Build a Calculator",
"intro": [
"In this workshop, you will review your knowledge of functions by building a calculator."
]
},
"lab-boolean-check": {
"title": "Build a Boolean Check Function",
"intro": [
"In this lab, you'll implement a function that checks if a value is a boolean."
]
},
"lab-email-masker": {
"title": "Build an Email Masker",
"intro": [
"In this lab, you'll build an email masker that will take an email address and obscure it.",
"You'll practice string slicing, concatenation, and using functions."
]
},
"workshop-loan-qualification-checker": {
"title": "Build a Loan Qualification Checker",
"intro": [
"In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.",
"You will learn more about <code>if</code> statements, and how to use comparison operators and multiple conditions in an <code>if</code> statement."
]
},
"lab-celsius-to-fahrenheit-converter": {
"title": "Build a Celsius to Fahrenheit Converter",
"intro": [
"In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit."
]
},
"lab-counting-cards": {
"title": "Build a Card Counting Assistant",
"intro": ["In this lab you will use JavaScript to count dealt cards."]
},
"lab-leap-year-calculator": {
"title": "Build a Leap Year Calculator ",
"intro": [
"In this lab you'll use conditional statements and loops to determine if a year is a leap year."
]
},
"lab-truncate-string": {
"title": "Implement the Truncate String Algorithm",
"intro": [
"In this lab, you will practice truncating a string at a certain length."
]
},
"lab-string-ending-checker": {
"title": "Build a Confirm the Ending Tool",
"intro": [
"In this lab, you will implement a function that checks if a given string ends with a specified target string."
]
},
"review-javascript-functions": {
"title": "JavaScript Functions Review",
"intro": [
"Before you're quizzed on JavaScript functions, you should review what you've learned about them.",
"Open up this page to review functions, arrow functions and scope."
]
},
"quiz-javascript-functions": {
"title": "JavaScript Functions Quiz",
"intro": ["Test your knowledge of JavaScript functions with this quiz."]
},
"lecture-working-with-arrays": {
"title": "Working with Arrays",
"intro": [
"In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more."
]
},
"workshop-shopping-list": {
"title": "Build a Shopping List",
"intro": [
"In this workshop, you will practice how to work with arrays by building a shopping list.",
"You will review how to add and remove elements from an array using methods like <code>push</code>, <code>pop</code>, <code>shift</code>, and <code>unshift</code>."
]
},
"lab-lunch-picker-program": {
"title": "Build a Lunch Picker Program",
"intro": [
"In this lab, you'll review working with arrays and random numbers by building a lunch picker program."
]
},
"lab-golf-score-translator": {
"title": "Build a Golf Score Translator",
"intro": [
"For this lab, you will use array methods to translate golf scores into their nickname."
]
},
"lab-reverse-a-string": {
"title": "Build a String Inverter",
"intro": [
"In this lab, you create a function that reverses a given string."
]
},
"lecture-working-with-common-array-methods": {
"title": "Working with Common Array Methods",
"intro": [
"In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more."
]
},
"review-javascript-arrays": {
"title": "JavaScript Arrays Review",
"intro": [
"Before you're quizzed on JavaScript arrays, you should review what you've learned about them.",
"Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more."
]
},
"quiz-javascript-arrays": {
"title": "JavaScript Arrays Quiz",
"intro": ["Test your knowledge of JavaScript arrays with this quiz."]
},
"lecture-introduction-to-javascript-objects-and-their-properties": {
"title": "Introduction to JavaScript Objects and Their Properties",
"intro": [
"In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types."
]
},
"lecture-working-with-optional-chaining-and-object-destructuring": {
"title": "Working with Optional Chaining and Object Destructuring",
"intro": [
"In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax."
]
},
"lecture-working-with-json": {
"title": "Working with JSON",
"intro": [
"In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the <code>JSON.parse()</code> and <code>JSON.stringify()</code> methods."
]
},
"workshop-recipe-tracker": {
"title": "Build a Recipe Tracker",
"intro": [
"In this workshop, you will review working with JavaScript objects by building a recipe tracker."
]
},
"lab-quiz-game": {
"title": "Build a Quiz Game",
"intro": [
"In this lab, you'll build a quiz game using JavaScript arrays and objects.",
"You'll also practice using functions to randomly select a question and an answer from an array and compare them."
]
},
"lab-record-collection": {
"title": "Build a Record Collection",
"intro": [
"In this lab you will build a function to manage a record collection."
]
},
"review-javascript-objects": {
"title": "JavaScript Objects Review",
"intro": [
"Before you're quizzed on JavaScript objects, you should review what you've learned about them.",
"Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more."
]
},
"quiz-javascript-objects": {
"title": "JavaScript Objects Quiz",
"intro": ["Test your knowledge of JavaScript objects with this quiz."]
},
"lecture-working-with-loops": {
"title": "Working with Loops",
"intro": [
"Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works."
]
},
"workshop-sentence-analyzer": {
"title": "Build a Sentence Analyzer",
"intro": [
"In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app."
]
},
"lab-longest-word-in-a-string": {
"title": "Build a Longest Word Finder App",
"intro": [
"In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence."
]
},
"lab-factorial-calculator": {
"title": "Build a Factorial Calculator ",
"intro": [
"In this lab, you'll build a factorial calculator.",
"You'll practice using loops and conditionals to calculate the factorial of a number."
]
},
"lab-mutations": {
"title": "Implement the Mutations Algorithm",
"intro": [
"In this lab, you will practice iterating over two different strings to compare their characters."
]
},
"lab-chunky-monkey": {
"title": "Implement the Chunky Monkey Algorithm",
"intro": [
"In this lab, you will practice dividing an array into smaller arrays with the technique of your choice."
]
},
"lab-profile-lookup": {
"title": "Build a Profile Lookup",
"intro": [
"In this lab, you'll create a function that looks up profile information."
]
},
"lab-repeat-a-string": {
"title": "Build a String Repeating Function",
"intro": [
"In this lab, you will implement loops to repeat a string a specified number of times."
]
},
"review-javascript-loops": {
"title": "JavaScript Loops Review",
"intro": [
"Before you're quizzed on the different JavaScript loops, you should review them.",
"Open up this page to review the <code>for...of</code> loop, <code>while</code> loop, <code>break and continue</code> statements and more."
]
},
"quiz-javascript-loops": {
"title": "JavaScript Loops Quiz",
"intro": ["Test your knowledge of JavaScript loops with this quiz."]
},
"lecture-working-with-types-and-objects": {
"title": "Working with Types and Objects",
"intro": [
"In these lectures you will learn about string objects, the <code>toString()</code> method, the <code>Number</code> constructor and more."
]
},
"lecture-working-with-arrays-variables-and-naming-practices": {
"title": "Working with Arrays, Variables, and Naming Practices",
"intro": [
"In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays."
]
},
"lecture-working-with-code-quality-and-execution-concepts": {
"title": "Working with Code Quality and Execution Concepts",
"intro": [
"In these lectures you will learn what are linters and formatters, what is memory management, and closures."
]
},
"lab-largest-number-finder": {
"title": "Build the Largest Number Finder",
"intro": [
"In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array."
]
},
"lab-first-element-finder": {
"title": "Build a First Element Finder",
"intro": [
"In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"."
]
},
"lab-slice-and-splice": {
"title": "Implement the Slice and Splice Algorithm",
"intro": [
"In this lab, you will practice merging an array with another."
]
},
"lab-pyramid-generator": {
"title": "Build a Pyramid Generator",
"intro": [
"In this lab you'll build a pyramid generator.",
"You'll take a number as input and generate a pyramid with that many levels using a loop."
]
},
"lab-gradebook-app": {
"title": "Build a Gradebook App",
"intro": [
"For this lab, you'll create a gradebook app.",
"You'll practice conditionals to determine the student's grade based on their score."
]
},
"lecture-the-var-keyword-and-hoisting": {
"title": "The var Keyword and Hoisting",
"intro": [
"In these lectures, you will learn about the <code>var</code> keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code."
]
},
"lab-falsy-remover": {
"title": "Implement a Falsy Remover",
"intro": [
"In this lab, you will create a function that removes all falsy values from an array."
]
},
"lab-inventory-management-program": {
"title": "Build an Inventory Management Program",
"intro": [
"For this lab, you'll build an inventory management program using JavaScript.",
"You'll use JavaScript array of objects to manage the inventory."
]
},
"lecture-understanding-modules-imports-and-exports": {
"title": "Understanding Modules, Imports, and Exports",
"intro": [
"In this lecture, you will learn about modules, imports, and exports in JavaScript."
]
},
"lab-password-generator": {
"title": "Build a Password Generator App",
"intro": [
"In this lab, you'll build a password generator app based on the user's input."
]
},
"lab-sum-all-numbers-algorithm": {
"title": "Design a Sum All Numbers Algorithm",
"intro": [
"In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them."
]
},
"lab-html-entitiy-converter": {
"title": "Implement an HTML Entity Converter",
"intro": [
"In this lab, you will convert special characters in a string to their corresponding HTML entities."
]
},
"lab-optional-arguments-sum-function": {
"title": "Build an Optional Arguments Sum Function",
"intro": [
"In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum."
]
},
"review-javascript-fundamentals": {
"title": "JavaScript Fundamentals Review",
"intro": [
"Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.",
"Open up this page to review concepts like closures, memory management, and more."
]
},
"quiz-javascript-fundamentals": {
"title": "JavaScript Fundamentals Quiz",
"intro": [
"Test your knowledge of JavaScript fundamentals with this quiz."
]
},
"lecture-working-with-higher-order-functions-and-callbacks": {
"title": "Working with Higher Order Functions and Callbacks",
"intro": [
"In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include <code>map()</code>, <code>filter()</code>, <code>reduce()</code>, <code>sort()</code>, <code>every()</code>, and <code>some()</code>. You will also learn how to chain these methods together to achieve your desired results."
]
},
"workshop-library-manager": {
"title": "Build a Library Manager",
"intro": [
"In this workshop, you will learn higher order array methods by building a library manager."
]
},
"lab-book-organizer": {
"title": "Build a Book Organizer",
"intro": [
"In this lab, you'll build a book organizer using higher order functions in JavaScript."
]
},
"lab-sorted-index-finder": {
"title": "Implement a Sorted Index Finder",
"intro": [
"In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order."
]
},
"lab-symmetric-difference": {
"title": "Build a Symmetric Difference Function",
"intro": [
"In this lab, you will practice using higher order functions to find the symmetric difference between two arrays."
]
},
"review-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Review",
"intro": [
"Before you're quizzed on JavaScript higher order functions, you should review them.",
"Open up this page to review concepts including how to work with the <code>map()</code>, <code>filter()</code>, and <code>reduce()</code> methods."
]
},
"quiz-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Quiz",
"intro": [
"Test what you've learned about JavaScript higher order functions with this quiz."
]
},
"lecture-working-with-the-dom-click-events-and-web-apis": {
"title": "Working with the DOM, Click Events, and Web APIs",
"intro": [
"In these lectures, you will learn how to work with the Document Object Model (DOM), the <code>addEventListener()</code> method and events, and web APIs."
]
},
"workshop-storytelling-app": {
"title": "Build a Storytelling App",
"intro": [
"In this workshop, you will build a storytelling app that will allow you to list different stories based on genre."
]
},
"lab-favorite-icon-toggler": {
"title": "Build a Favorite Icon Toggler",
"intro": [
"In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events."
]
},
"lecture-understanding-the-event-object-and-event-delegation": {
"title": "Understanding the Event Object and Event Delegation",
"intro": [
"In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation."
]
},
"workshop-music-instrument-filter": {
"title": "Build a Music Instrument Filter",
"intro": [
"In this workshop, you will build a music instrument filter with JavaScript."
]
},
"lab-real-time-counter": {
"title": "Build a Real Time Counter",
"intro": [
"In this lab, you'll build a real-time character counter",
"You'll practice how to work with the <code>input</code> event when the user types in the input field."
]
},
"lab-lightbox-viewer": {
"title": "Build a Lightbox Viewer",
"intro": [
"In this lab, you'll build a lightbox viewer for viewing images in a focused mode.",
"You'll practice click events and toggling classes."
]
},
"workshop-rps-game": {
"title": "Build a Rock, Paper, Scissors Game",
"intro": [
"In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game."
]
},
"lab-football-team-cards": {
"title": "Build a Set of Football Team Cards",
"intro": [
"In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards."
]
},
"review-dom-manipulation-and-click-events-with-javascript": {
"title": "DOM Manipulation and Click Events with JavaScript Review",
"intro": [
"Before you're quizzed on the DOM, you should review what you've learned about it.",
"Open up this page to review concepts including how to work with the <code>DOM</code>, <code>Web APIs</code>, the <code>addEventListener()</code> method, change events, event bubbling and more."
]
},
"quiz-dom-manipulation-and-click-event-with-javascript": {
"title": "DOM Manipulation and Click Events with JavaScript Quiz",
"intro": [
"Test your knowledge of DOM manipulation and click events in JavaScript with this quiz."
]
},
"lecture-understanding-aria-expanded-aria-live-and-common-aria-states": {
"title": "Understanding aria-expanded, aria-live, and Common ARIA States",
"intro": [
"In these lectures you will learn more about ARIA attributes like <code>aria-expanded</code>, <code>aria-live</code>, and common ARIA states."
]
},
"workshop-planets-tablist": {
"title": "Build a Planets Tablist",
"intro": [
"In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system."
]
},
"workshop-note-taking-app": {
"title": "Build a Note Taking App",
"intro": [
"In this workshop, you are going to build an accessible note taking app.",
"This will provide you with the opportunity to practice working with <code>aria-live</code> attribute."
]
},
"lab-theme-switcher": {
"title": "Build a Theme Switcher",
"intro": [
"In this lab, you will build a theme switcher and practice working with the <code>aria-haspopup</code>, <code>aria-expanded</code>, and <code>aria-controls</code> attributes."
]
},
"review-js-a11y": {
"title": "JavaScript and Accessibility Review",
"intro": [
"Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.",
"Open up this page to review concepts including how to work with the <code>aria-expanded</code>, <code>aria-live</code>, and <code>aria-controls</code> attributes."
]
},
"quiz-js-a11y": {
"title": "JavaScript and Accessibility Quiz",
"intro": [
"Test your knowledge of JavaScript and accessibility best practices with this quiz."
]
},
"lecture-debugging-techniques": {
"title": "Debugging Techniques",
"intro": [
"In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them a process called debugging."
]
},
"lab-random-background-color-changer": {
"title": "Debug a Random Background Color Changer",
"intro": [
"In this lab, you'll debug a random background color changer and fix the errors to make it work properly."
]
},
"review-debugging-javascript": {
"title": "Debugging JavaScript Review",
"intro": [
"Before you're quizzed on common debugging techniques, you should review what you've learned.",
"Open up this page to review concepts including how to work with the <code>throw statement</code>, <code>try...catch...finally</code> and more."
]
},
"quiz-debugging-javascript": {
"title": "Debugging JavaScript Quiz",
"intro": ["Test your knowledge of JavaScript debugging with this quiz."]
},
"lecture-working-with-regular-expressions": {
"title": "Working with Regular Expressions",
"intro": [
"In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more."
]
},
"workshop-spam-filter": {
"title": "Build a Spam Filter",
"intro": [
"Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.",
"In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want."
]
},
"lab-palindrome-checker": {
"title": "Build a Palindrome Checker",
"intro": [
"For this lab, you'll build an application that checks whether a given word is a palindrome."
]
},
"lab-markdown-to-html-converter": {
"title": "Build a Markdown to HTML Converter",
"intro": [
"For this lab, you'll build a Markdown to HTML converter using JavaScript.",
"You'll practice regular expressions, string manipulation, and more."
]
},
"lab-regex-sandbox": {
"title": "Build a RegEx Sandbox",
"intro": ["In this lab you'll build a regex sandbox."]
},
"review-javascript-regular-expressions": {
"title": "JavaScript Regular Expressions Review",
"intro": [
"Before you're quizzed on Regular Expressions, you should review what you've learned.",
"Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more."
]
},
"quiz-javascript-regular-expressions": {
"title": "JavaScript Regular Expressions Quiz",
"intro": [
"Test your knowledge of JavaScript Regular Expressions with this quiz."
]
},
"lecture-understanding-form-validation": {
"title": "Understanding Form Validation",
"intro": [
"In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the <code>preventDefault()</code> method works, and how the submit event works."
]
},
"workshop-calorie-counter": {
"title": "Build a Calorie Counter",
"intro": [
"Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.",
"You'll also practice basic regular expressions, template literals, the <code>addEventListener()</code> method, and more."
]
},
"lab-customer-complaint-form": {
"title": "Build a Customer Complaint Form",
"intro": [
"For this lab, you'll use JavaScript to validate a customer complaint form.",
"You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors."
]
},
"review-form-validation-with-javascript": {
"title": "Form Validation with JavaScript Review",
"intro": [
"Before you're quizzed on form validation, you should review what you've learned.",
"Open up this page to review concepts including the <code>preventDefault()</code> method, the submit event and more."
]
},
"quiz-form-validation-with-javascript": {
"title": "Form Validation with JavaScript Quiz",
"intro": [
"Test what you've learned about JavaScript form validation with this quiz."
]
},
"lecture-working-with-dates": {
"title": "Working with Dates",
"intro": [
"In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates."
]
},
"lab-date-conversion": {
"title": "Build a Date Conversion Program",
"intro": [
"In this lab, you'll build a program to convert a date from one format to another."
]
},
"review-javascript-dates": {
"title": "JavaScript Dates Review",
"intro": [
"Before you're quizzed on working with dates, you should review what you've learned.",
"Open up this page to review the <code>Date()</code> object and common methods."
]
},
"quiz-javascript-dates": {
"title": "JavaScript Dates Quiz",
"intro": [
"Test what you've learned about JavaScript Dates with this quiz."
]
},
"lecture-working-with-audio-and-video": {
"title": "Working with Audio and Video",
"intro": [
"In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the <code>Audio</code> and <code>Video</code> constructors, their methods and properties, audio and video formats, codecs, the <code>HTMLMediaElement</code> API, and much more."
]
},
"workshop-music-player": {
"title": "Build a Music Player",
"intro": [
"In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.",
"The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song."
]
},
"lab-drum-machine": {
"title": "Build a Drum Machine",
"intro": [
"For this lab you will use the <code>audio</code> element to build a drum machine."
]
},
"review-javascript-audio-and-video": {
"title": "JavaScript Audio and Video Review",
"intro": [
"Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.",
"Open up this page to review concepts including the <code>Audio</code> constructor, the <code>HTMLMediaElement</code> API and more."
]
},
"quiz-javascript-audio-and-video": {
"title": "JavaScript Audio and Video Quiz",
"intro": [
"Test what you've learned about JavaScript audio and video with this quiz."
]
},
"lecture-working-with-maps-and-sets": {
"title": "Working with Maps and Sets",
"intro": [
"In these lectures, you will learn about JavaScript <code>Map</code> and <code>Set</code>. You will also learn how they both differ from <code>WeakSets</code> and <code>WeakMaps</code>."
]
},
"workshop-plant-nursery-catalog": {
"title": "Build a Plant Nursery Catalog",
"intro": [
"In this workshop, you will practice using Maps and Sets by building a plant nursery catalog."
]
},
"lab-voting-system": {
"title": "Build a Voting System",
"intro": [
"In this lab, you'll build a voting system using Maps and Sets.",
"You'll practice how to use the <code>Map</code> object to store key-value pairs and the <code>Set</code> object to store unique values."
]
},
"review-javascript-maps-and-sets": {
"title": "JavaScript Maps and Sets Review",
"intro": [
"Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.",
"Open up this page to review concepts such as the <code>Map</code> and <code>Set</code> objects, as well as WeakSet and WeakMap."
]
},
"quiz-javascript-maps-and-sets": {
"title": "JavaScript Maps and Sets Quiz",
"intro": [
"Test what you've learned about JavaScript Maps and Sets with this quiz."
]
},
"lecture-working-with-client-side-storage-and-crud-operations": {
"title": "Working with Client-Side Storage and CRUD Operations",
"intro": [
"In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about <code>localStorage</code> and <code>sessionStorage</code> alongside their methods and properties, cookies, the Cache API, IndexDB, and much more."
]
},
"workshop-todo-app": {
"title": "Build a Todo App using Local Storage",
"intro": [
"Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.",
"In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements."
]
},
"lab-bookmark-manager-app": {
"title": "Build a Bookmark Manager App",
"intro": [
"For this lab, you'll build a bookmark manager app.",
"You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks."
]
},
"review-local-storage-and-crud": {
"title": "Local Storage and CRUD Review",
"intro": [
"Before you are quizzed on working with <code>localStorage</code>, you first need to review the concepts.",
"Open up this page to review the <code>localStorage</code> property, <code>sessionStorage</code> property and more."
]
},
"quiz-local-storage-and-crud": {
"title": "Local Storage and CRUD Quiz",
"intro": [
"Test what you've learned about local storage and CRUD with this quiz."
]
},
"lecture-understanding-how-to-work-with-classes-in-javascript": {
"title": "Understanding How to Work with Classes in JavaScript",
"intro": [
"In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the <code>this</code> keyword, static properties and methods, and more."
]
},
"workshop-shopping-cart": {
"title": "Build a Shopping Cart",
"intro": [
"In this workshop you'll create a shopping cart using JavaScript classes.",
"You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more."
]
},
"lab-project-idea-board": {
"title": "Build a Project Idea Board",
"intro": [
"In this lab, you'll build a project idea board using OOP in JavaScript.",
"You'll practice how to create classes, add methods to classes, and create instances of classes."
]
},
"lab-bank-account-manager": {
"title": "Build a Bank Account Management Program",
"intro": [
"In this lab, you'll build a simple transaction management system for a bank account."
]
},
"review-javascript-classes": {
"title": "JavaScript Classes Review",
"intro": [
"Before you're quizzed on how to work with classes, you should review what you've learned about them.",
"Open up this page to review concepts including the <code>this</code> keyword, class inheritance and more."
]
},
"quiz-javascript-classes": {
"title": "JavaScript Classes Quiz",
"intro": [
"Test what you've learned about JavaScript classes with this quiz."
]
},
"lecture-understanding-recursion-and-the-call-stack": {
"title": "Understanding Recursion and the Call Stack",
"intro": [
"In this lecture, you will learn about recursion and the call stack."
]
},
"workshop-decimal-to-binary-converter": {
"title": "Build a Decimal to Binary Converter",
"intro": [
"Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.",
"In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation."
]
},
"lab-permutation-generator": {
"title": "Build a Permutation Generator",
"intro": [
"For this lab, you'll build a permutation generator that produces all possible permutations of a given string."
]
},
"review-recursion": {
"title": "Recursion Review",
"intro": [
"Before you're quizzed on recursion, you should review what you've learned.",
"Open up this page to review what is recursion and what is it used for."
]
},
"quiz-recursion": {
"title": "Recursion Quiz",
"intro": ["Test your knowledge of Recursion with this quiz."]
},
"lecture-understanding-functional-programming": {
"title": "Understanding Functional Programming",
"intro": [
"In these lectures, you will learn about functional programming and how to nest functions using a technique called currying."
]
},
"workshop-recipe-ingredient-converter": {
"title": "Build a Recipe Ingredient Converter",
"intro": [
"In the previous lectures, you learned the core concepts behind functional programming and currying.",
"Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application."
]
},
"lab-sorting-visualizer": {
"title": "Build a Sorting Visualizer",
"intro": [
"For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers."
]
},
"review-javascript-functional-programming": {
"title": "JavaScript Functional Programming Review",
"intro": [
"Before you're quizzed on functional programming, you should review what you've learned.",
"Open up this page to review concepts on functional programming, currying and more."
]
},
"quiz-javascript-functional-programming": {
"title": "JavaScript Functional Programming Quiz",
"intro": [
"Test what you've learned about JavaScript functional programming with this quiz."
]
},
"lecture-understanding-asynchronous-programming": {
"title": "Understanding Asynchronous Programming",
"intro": [
"In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the <code>async</code> keyword works, the <code>Fetch</code> API, promises, <code>async/await</code>, the <code>Geolocation</code> API, and much more."
]
},
"workshop-fcc-authors-page": {
"title": "Build an fCC Authors Page",
"intro": [
"One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.",
"In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches."
]
},
"lab-fcc-forum-leaderboard": {
"title": "Build an fCC Forum Leaderboard",
"intro": [
"For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard."
]
},
"lab-weather-app": {
"title": "Build a Weather App",
"intro": [
"In this lab you'll build a Weather App using an API",
"You'll practice how to fetch data from the API, store and display it on your app."
]
},
"review-asynchronous-javascrip": {
"title": "Asynchronous JavaScript Review",
"intro": [
"Review asynchronous JavaScript concepts to prepare for the upcoming quiz."
]
},
"quiz-asynchronous-javascript": {
"title": "Asynchronous JavaScript Quiz",
"intro": [
"Test what you've learned about asynchronous JavaScript with this quiz."
]
},
"review-javascript": {
"title": "JavaScript Review",
"intro": [
"Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.",
"Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more."
]
},
"exam-javascript-certification": {
"title": "JavaScript Certification Exam",
"intro": ["Pass this exam to earn your JavaScript Certification."]
}
}
},
"a1-professional-spanish": {
"title": "A1 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
"intro": ["Placeholder intro"],
"chapters": {
"es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish",
"es-a1-chapter-letters-and-sounds": "Letters and Sounds",
"es-a1-chapter-greetings-and-introductions": "Greetings and Introductions"
},
"modules": {
"es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview",
"es-a1-module-alphabet-accents-and-punctuation": "Alphabet, Accents, and Punctuation",
"es-a1-module-greetings-and-farewells": "Greetings and Farewells",
"es-a1-module-introducing-yourself": "Introducing Yourself",
"es-a1-module-first-questions": "First Questions"
},
"module-intros": {
"es-a1-module-introduction-and-certification-overview": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
},
"es-a1-module-alphabet-accents-and-punctuation": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
},
"es-a1-module-greetings-and-farewells": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
},
"es-a1-module-introducing-yourself": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
},
"es-a1-module-first-questions": {
"note": "Coming Winter 2025",
"intro": ["PLACEHOLDER: Write the module intro here."]
}
},
"blocks": {
"es-a1-warm-up-greetings-and-farewells-basics": {
"title": "Greetings and Farewells Basics",
"intro": ["Learn the basics of greetings and farewells in Spanish."]
},
"es-a1-learn-greetings-during-the-day": {
"title": "Greetings During the Day",
"intro": ["", ""]
},
"es-a1-practice-greetings-and-farewells": {
"title": "Greetings and Farewells Practice",
"intro": ["", ""]
},
"es-a1-review-greetings-and-farewells": {
"title": "Greetings and Farewells Review",
"intro": ["", ""]
},
"es-a1-quiz-greetings-and-farewells": {
"title": "Greetings and Farewells Quiz",
"intro": ["", ""]
},
"es-a1-learn-certification-introduction": {
"title": "Certification Introduction",
"intro": ["", ""]
},
"es-a1-learn-alphabet-and-accents": {
"title": "Alphabet and Accents",
"intro": ["", ""]
},
"es-a1-learn-punctuation": {
"title": "Punctuation",
"intro": ["", ""]
},
"es-a1-quiz-alphabet-accent-and-punctuation-quiz": {
"title": "Alphabet, Accent and Punctuation Quiz",
"intro": ["", ""]
},
"es-a1-warm-up-introducing-yourself-basics": {
"title": "Introducing Yourself Basics",
"intro": ["", ""]
},
"es-a1-learn-meet-luna": {
"title": "Meet Luna",
"intro": ["", ""]
},
"es-a1-learn-meet-mateo": {
"title": "Meet Mateo",
"intro": ["", ""]
},
"es-a1-learn-meet-julieta": {
"title": "Meet Julieta",
"intro": ["", ""]
},
"es-a1-practice-introducing-yourself": {
"title": "Introducing Yourself Practice",
"intro": ["", ""]
},
"es-a1-review-introducing-yourself": {
"title": "Introducing Yourself Review",
"intro": ["", ""]
},
"es-a1-quiz-introducing-yourself": {
"title": "Introducing Yourself Quiz",
"intro": ["", ""]
},
"es-a1-warm-up-first-questions-basics": {
"title": "First Questions Basics",
"intro": ["", ""]
},
"es-a1-learn-meet-angela-and-basti": {
"title": "Meet Angela and Basti",
"intro": ["", ""]
},
"es-a1-practice-first-questions": {
"title": "First Questions Practice",
"intro": ["", ""]
},
"es-a1-review-first-questions": {
"title": "First Questions Review",
"intro": ["", ""]
},
"es-a1-quiz-first-questions": {
"title": "First Questions Quiz",
"intro": ["", ""]
}
}
},
"a2-professional-spanish": {
"title": "A2 Professional Spanish Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
"intro": ["Placeholder intro"],
"blocks": {
"talk-about-who-you-are-by-using-key-verbs": {
"title": "Talk About Who You Are by Using Key Verbs",
"intro": [
"Learn how to introduce yourself in Spanish in a simple and professional way. In this module you'll learn how to say who you are, where you are from, what you do, how you feel, and what you like or don't like."
]
},
"get-to-know-others-by-asking-simple-questions": {
"title": "Get to Know Others by Asking Simple Questions",
"intro": [
"Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally."
]
}
}
},
"a2-professional-chinese": {
"title": "A2 Professional Chinese Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
"intro": ["Placeholder intro"],
"blocks": {
"talk-about-what-you-do-by-using-key-verbs": {
"title": "Talk About What You Do by Using Key Verbs",
"intro": [
"Learn how to introduce yourself in Chinese in a simple and professional way. In this module you'll learn how to say who you are, where you are from, what you do, how you feel, and what you like or don't like."
]
},
"get-to-know-colleagues-by-asking-simple-questions": {
"title": "Get to Know Colleagues by Asking Simple Questions",
"intro": [
"Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally."
]
}
}
},
"a1-professional-chinese": {
"title": "A1 Professional Chinese Certification (Beta)",
"note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.",
"intro": ["Placeholder intro"],
"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."
]
}
}
},
"basic-html": {
"title": "Basic HTML",
"summary": [
"Learn how to build simple webpages using HTML tags to add text, images, and links."
],
"intro": ["Larger intro for the superblock page."],
"blocks": {
"cat-photo-app": {
"title": "Build a Cat Photo App",
"intro": [
"HTML tags give a webpage its structure. You can use HTML tags to add photos, buttons, and other elements to your webpage.",
"In this course, you'll learn the most common HTML tags by building your own cat photo app."
]
},
"recipe-page": {
"title": "Build a Recipe Page",
"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."
]
}
}
},
"semantic-html": {
"title": "Semantic HTML",
"summary": [
"Discover how to write cleaner, more meaningful HTML using semantic tags that improve structure, accessibility, and SEO."
],
"intro": ["Larger intro for the superblock page."],
"blocks": {
"cat-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the <code>main</code>, <code>nav</code>, <code>article</code> and <code>footer</code> elements."
]
},
"event-hub": {
"title": "Build an Event Hub",
"intro": [
"In this lab, you'll build an event hub and review semantic elements like <code>header</code>, <code>nav</code>, <code>article</code>, and more."
]
}
}
},
"dev-playground": {
"title": "Dev Playground",
"intro": ["Playground for creating and testing challenges"],
"blocks": {
"daily-coding-challenges-javascript": {
"title": "Daily Coding Challenges JavaScript",
"intro": ["Place to create JavaScript daily coding challenges."]
},
"daily-coding-challenges-python": {
"title": "Daily Coding Challenges Python",
"intro": ["Place to create Python daily coding challenges."]
}
}
},
"full-stack-open": {
"title": "Full Stack Open",
"intro": ["A good intro is to be added here."],
"blocks": {
"cat-blog-page": {
"title": "Build a Cat Blog Page",
"intro": [
"In this workshop, you will build an HTML only blog page using semantic elements including the <code>main</code>, <code>nav</code>, <code>article</code> and <code>footer</code> elements."
]
}
},
"chapters": {
"part-0": "Fundamentals of Web Apps",
"part-1": "Introduction to React",
"part-2": "Communicating with Servers",
"part-3": "Programming a Server with NodeJS and Express",
"part-4": "Testing Express Servers, User Administration",
"part-5": "Testing React Apps",
"part-6": "Advanced State Management",
"part-7": "React router, custom hooks, styling app with CSS and webpack",
"part-8": "GraphQL",
"part-9": "TypeScript",
"part-10": "React Native",
"part-11": "CI/CD",
"part-12": "Containers",
"part-13": "Using Relational Databases"
},
"modules": {
"basic-html": "Basic HTML"
},
"module-intros": {
"basic-html": {
"title": "Basic HTML",
"intro": [
"Learn how to build simple webpages using HTML tags to add text, images, and links."
]
}
}
},
"daily-coding-challenge": {
"title": "Daily Coding Challenge",
"blocks": {
"daily-coding-challenge": {
"title": "Daily Coding Challenge"
}
}
},
"misc-text": {
"browse-other": "Browse our other free certifications",
"courses": "Courses",
"steps": "Steps",
"expand": "Expand course",
"collapse": "Collapse course",
"legacy-header": "Legacy Courses",
"legacy-desc": "These courses are no longer part of the certification path, but are still available for you to further your learning.",
"legacy-go-back": "Go to the current version of the curriculum.",
"course-maintenance": "These courses are undergoing maintenance. If they are not working, you can learn how to run them locally at <0>https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>.",
"course-disabling-soon": "The browser version of these courses will be temporarily disabled soon and your virtual machines will be deleted. Any progress in your virtual machines will be lost. If you have any files you want from them, you should save them to your computer. We apologize for any inconvenience. We hope to have an improved browser version of these courses available again in the next few weeks.",
"course-disabled": "These courses are temporarily unavailable to run in the browser. We apologize for any inconvenience. You can learn how to run them locally at <0>https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>. We hope to have an improved browser version available again soon.",
"run-locally": "For now, we recommend running the courses locally on your computer. You can learn how at <0>https://www.freecodecamp.org/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>.",
"progress-wont-save": "Your progress will not be saved to your freeCodeCamp account when running them locally.",
"go-back-to-learn": "Go back to the stable version of the curriculum.",
"read-database-cert-article": "Please read this forum post before proceeding.",
"enable-cookies": "You must enable third-party cookies before starting.",
"english-only": "The courses in this section are only available in English. We are only able to translate the titles and introductions at the moment, not the lessons themselves.",
"exam-english-only": "Please note that the certification exam is currently available only in English. The rest of the courses are available in some languages."
}
}