Files
freeCodeCamp/client/i18n/locales/chinese/intro.json
T
2025-10-27 12:58:12 +00:00

7435 lines
368 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": "(旧版)响应式网页设计挑战",
"intro": [
"在响应式网页设计认证中,你将学习开发者用来编写网页的语言:HTML(超文本标记语言)用于创建内容,CSS(级联样式表)用于样式设计。",
"首先,你将通过创建一个展示猫咪图片的应用,学习 HTML 和 CSS 的基本知识。 然后,通过创建企鹅学习像 CSS 变量这样的现代技术,以及通过创建网页表单学习无障碍的最佳实践。",
"最后,你将学习使用 flexbox(弹性盒子)创建一个 Twitter 卡片,以及使用 CSS 网格创建复杂的博客布局,以学习制作适应不同屏幕大小的网页。"
],
"note": "注意:某些浏览器扩展,例如广告拦截器和深色模式扩展可能干扰测试。如果你遇到问题,我们建议你在参加学习时禁用修改页面内容或布局的扩展。",
"blocks": {
"basic-html-and-html5": {
"title": "基础 HTML 和 HTML5",
"intro": [
"HTML 是一种标记语言,使用特殊的语法或标记来向浏览器描述网页的结构。HTML 元素由开始和结束标签构成,标签之间是文本内容。 不同的标签可以让文本内容以标题、段落、列表等形式展现。",
"在这个课程中,你将通过编写一个展示猫咪图片的应用,学习最常见的 HTML 元素——它们可以用来构成任何网页。"
]
},
"basic-css": {
"title": "基础 CSS",
"intro": [
"CSS(级联样式表)告诉浏览器如何显示你在 HTML 中写入的文本和其他内容。你可以使用 CSS 控制 HTML 元素的颜色、字体、大小、间距等许多\b属性。",
"现在你已经写好了猫图应用的基本结构,接下来我们用 CSS 给它加一些样式。"
]
},
"applied-visual-design": {
"title": "应用视觉设计",
"intro": [
"视觉设计结合了排版、色彩理论、图形、动画、页面布局等,以表达独特的信息。",
"在这个课程中,你将学习如何将这些不同的视觉设计元素应用到网页上。"
]
},
"applied-accessibility": {
"title": "应用无障碍",
"intro": [
"在网页开发中,可访问性是指网页内容和用户界面可以被用户理解、浏览并与之交互。这里的用户包括有视觉障碍、听觉障碍或认知障碍的用户。",
"在这个课程中,你将学习提升网站可访问性的最佳实践。"
]
},
"responsive-web-design-principles": {
"title": "响应式网页设计原则",
"intro": [
"人们可能通过形状和大小不同的设备来访问网页。通过响应式网页设计,你可以设计出能灵活适应不同屏幕大小、方向和分辨率的网页。",
"在这个课程中,你将学习如何使用 CSS 让你的网页在不同设备上看起来都不错。"
]
},
"css-flexbox": {
"title": "CSS 弹性盒子",
"intro": [
"Flexbox(弹性盒子)是最新版本的 CSS(即 CSS3)中引入的一种强大且兼容性好的布局方法。使用 flexbox,我们可以很容易地处理好页面上的元素布局,并创建可以自动缩小和放大的动态用户界面。",
"在这个课程中,你将通过创建一个 Twitter 卡片学习 flexbox 和动态布局的基础知识。"
]
},
"css-grid": {
"title": "CSS 网格",
"intro": [
"CSS 网格是一个较新的标准,用于构建复杂的响应布局。它通过把 HTML 元素转换为具有行和列的网格容器,以便将子元素放置在所需要的位置。",
"在这个课程中,你将通过创建不同的复杂布局(包括博客)学习 CSS 网格的基础知识。"
]
}
}
},
"2022/responsive-web-design": {
"title": "响应式网页设计",
"intro": [
"在响应式网页设计的认证课程中,你将学习用于构建网页的语言: HTML(超文本标记语言)用于创建内容,CSS(级联样式表)用于样式设计。",
"首先,你将通过创建一个展示猫咪图片的应用学习 HTML 和 CSS 的基本知识。 然后,通过创建一只企鹅来学习像 CSS 变量这样的现代技术,并通过创建网页表单学习无障碍的最佳实践。",
"最后,你将通过编写 Twitter 卡片,学习如何使用 Flexbox 实现适应不同屏幕大小的网页 ,以及如何用 CSS Grid 实现一个复杂的博客布局。"
],
"note": "注意:某些浏览器扩展程序(例如广告拦截器和深色模式)可能干扰测试。如果遇到问题,我们建议你在学习课程时禁用那些修改网页内容或布局的扩展程序。",
"blocks": {
"build-a-tribute-page-project": {
"title": "致敬页",
"intro": [
"这是你获得认证的必做项目。",
"在这个项目中,你将为你所选择的主题编写一个致敬页(无论是虚构的还是真实的)。"
]
},
"build-a-personal-portfolio-webpage-project": {
"title": "个人作品集展示页",
"intro": [
"这是你获得认证的必做项目。",
"在这个项目中,你将制作自己的个人作品集展示页。"
]
},
"build-a-product-landing-page-project": {
"title": "产品登录页",
"intro": [
"这是你获得认证的必做项目。",
"在这个项目中,你将编写一个产品登录页来推销你选择的产品。"
]
},
"build-a-survey-form-project": {
"title": "调查表单",
"intro": [
"这是你获得认证的必做项目。",
"在这个项目中,你将编写一个用于收集用户数据的调查表单。"
]
},
"build-a-technical-documentation-page-project": {
"title": "技术文档页",
"intro": [
"这是你获得认证的必做项目。",
"在这个项目中,你将编写一个技术文档页,作为一个主题的指导或参考。"
]
},
"learn-html-by-building-a-cat-photo-app": {
"title": "通过创建猫咪相册应用学习 HTML",
"intro": [
"HTML 标签赋予了网页结构。你可以使用 HTML 标签添加照片、按钮和其它元素到你的网页。",
"在这门课程中,你将通过创建一个猫咪相册应用,学习最常见的 HTML 标签。"
]
},
"learn-basic-css-by-building-a-cafe-menu": {
"title": "通过创建咖啡店菜单学习基础 CSS",
"intro": [
"CSS 负责告诉浏览器如何展示你的网页。你可以使用 CSS 设置 HTML 元素的颜色、字体、大小等属性。",
"在这门课程中,你将通过为一个咖啡店网站设计菜单页来学习 CSS。"
]
},
"learn-the-css-box-model-by-building-a-rothko-painting": {
"title": "通过创作罗斯科绘画学习 CSS 盒子模型",
"intro": [
"每个 HTML 元素都是一个盒子,它拥有着自己的间距和边框。这叫作“盒子模型”。",
"在这门课程中,你将使用 CSS 和盒子模型,创作属于你自己的罗斯科风格的矩形艺术作品。"
]
},
"learn-css-variables-by-building-a-city-skyline": {
"title": "通过创建城市轮廓学习 CSS 变量",
"intro": [
"CSS 变量负责帮助组织你的样式和重复使用它们。",
"在这门课程中,你将创建一座城市的轮廓。你将学习如何配置 CSS 变量,以便你可以随时重复使用它们。"
]
},
"learn-html-forms-by-building-a-registration-form": {
"title": "通过创建注册表单学习 HTML 表单",
"intro": [
"你可以使用 HTML 表单收集访问网页的用户的信息。",
"在这门课程中,你将通过创建一个注册页学习 HTML 表单。你将学习如何控制人们在表单中可以输入的数据类型,以及使用一些新的 CSS 工具装饰你的页面。"
]
},
"learn-accessibility-by-building-a-quiz": {
"title": "通过创建小测验学习无障碍",
"intro": [
"无障碍环境正在使你的网页便于所有人使用——甚至是残疾人。",
"在这个课程中,你将建立一个测验网页。你将学习诸如键盘快捷键、ARIA 属性和设计最佳实践等无障碍工具。"
]
},
"learn-intermediate-css-by-building-a-picasso-painting": {
"title": "通过创作毕加索绘画学习中级 CSS",
"intro": [
"在本课程中,你将通过代码创建一幅自己的毕加索绘画网页来掌握中级 CSS 技术。课程涉及 SVG 图标、CSS 定位和对已学 CSS 知识的回顾。"
]
},
"learn-responsive-web-design-by-building-a-piano": {
"title": "通过创建钢琴学习响应式网页设计",
"intro": [
"响应式设计使得你的网页适应不同屏幕尺寸的显示。",
"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": "通过创建照片集学习 CSS 弹性盒子",
"intro": [
"通过弹性盒子你可以设计适应不同屏幕大小的网页。",
"在本课程中,你将使用弹性盒子创建一个响应式的照片集网页。"
]
},
"learn-css-grid-by-building-a-magazine": {
"title": "通过创建杂志学习 CSS 网格布局",
"intro": [
"在网页设计时,CSS 网格布局使你能够控制网页的行、列。",
"在这门课程中,你将编写一篇杂志文章。你将学习如何使用 CSS Grid,其中包括了像网格行和网格列这样的概念。"
]
},
"learn-typography-by-building-a-nutrition-label": {
"title": "通过创建营养标签学习排版",
"intro": [
"排版是将文本样式设置为易于阅读并适合其目的的艺术。",
"在本课程中,你将使用排版来创建营养标签网页。你将学习如何使用 CSS 设置文本样式、调整行高和定位文本。"
]
},
"learn-css-transforms-by-building-a-penguin": {
"title": "通过创建企鹅学习 CSS 变换",
"intro": [
"你可以转换 HTML 元素以创建吸引读者眼球的吸引人的设计。你可以使用变换来旋转元素、缩放它们等等。",
"在本课程中,你将创建一只企鹅。你将使用 CSS 变换来定位企鹅的各个部分并调整其大小、创建背景并为你的作品设置动画。"
]
},
"learn-css-animation-by-building-a-ferris-wheel": {
"title": "通过创建摩天轮学习 CSS 动画",
"intro": [
"你可以使用 CSS 动画将注意力吸引到网页的特定部分并使其更具吸引力。",
"在本课程中,你将创建一个摩天轮。你将学习如何使用 CSS 为元素设置动画、转换它们并调整它们的速度。"
]
},
"learn-more-about-css-pseudo-selectors-by-building-a-balance-sheet": {
"title": "通过创建资产负债表学习 CSS 伪选择器",
"intro": [
"你可以使用 CSS 伪选择器来更改特定的 HTML 元素。",
"在本课程中,你将使用伪选择器创建资产负债表。你将学习如何在将鼠标悬停在元素上时更改其样式,并触发网页上的其他事件。"
]
},
"learn-css-colors-by-building-a-set-of-colored-markers": {
"title": "通过创建一组彩色笔学习 CSS 颜色",
"intro": [
"为你的网页选择正确的颜色可以大大提高对读者的审美吸引力。",
"在本课程中,你将创建一组彩色笔。你将学习设置颜色值的不同方法以及如何将颜色相互配对。"
]
},
"learn-intermediate-css-by-building-a-cat-painting": {
"title": "通过创建猫咪绘画学习中级 CSS",
"intro": [
"掌握CSS 定位对于创建具有视觉吸引力和响应性的网页布局至关重要。",
"在这个课程中,你将创建一幅猫咪绘画。你将学习如何使用绝对定位、z-index 属性和 transform 属性。"
]
}
}
},
"javascript-algorithms-and-data-structures": {
"title": "(旧版)JavaScript 算法和数据结构",
"intro": [
"HTML 和 CSS 控制页面的内容和样式,JavaScript 则用于页面交互。在 JavaScript 算法和数据结构认证中,你将学习 JavaScript 的基础知识,包括变量、 数组、 对象、 循环和函数。",
"打好基础之后,你将会通过创建算法来操作字符串、进行阶乘运算甚至计算国际空间站的轨道来应用这些知识。",
"在这个过程中,你将会学习两种重要的编程方式或模式:面向对象的编程(OOP)和函数式编程(FP)。"
],
"note": "注意:某些浏览器扩展,例如广告拦截器和脚本拦截器,可能干扰测试。如果你遇到问题,我们建议你在学习时禁用修改或阻止页面内容的扩展。",
"blocks": {
"basic-javascript": {
"title": "基础 JavaScript",
"intro": [
"JavaScript 是一种用于网页交互的脚本语言。它和 HTML 和 CSS 一样,是网站的核心技术之一。所有现代浏览器都支持 JavaScript。",
"在这个课程中,你将学习JavaScript 中的基本编程概念。你将从数字和字符串等基本数据结构开始,然后学习使用数组、对象、函数、循环、if/else 语句等等。"
]
},
"es6": {
"title": "ES6",
"intro": [
"ECMAScriptES)是 JavaScript 的标准。因为所有主流浏览器都遵循此规范,所以 ECMAScript 和 JavaScript 是可以互换的。",
"截至目前你所学到的 JavaScript 大多是在 2009 年定稿的 ES5ECMAScript5)。你仍然可以使用 ES5 编写程序。JavaScript 在不断迭代,每年都会发布新功能。",
"2015 年发布的 ES6 为该语言添加了许多强大的新功能。在本课程中,你将学习这些新特性,包括箭头函数、解构、类、promise 和模块。"
]
},
"regular-expressions": {
"title": "正则表达式",
"intro": [
"正则表达式,常常缩写为 “regex” 或 “regexp”,是帮助程序员匹配、搜索和替换文本的模式。正则表达式非常强大,但可能难以阅读,因为它们使用特殊字符来做更复杂更灵活的匹配。",
"在这个课程中,你将学习如何使用特殊字符、捕获组、正向或负向先行断言以及其他技巧来匹配你想要的文本。"
]
},
"debugging": {
"title": "调试",
"intro": [
"调试是检查代码、发现并修复问题的过程。",
"代码中的问题通常有三种形式:1)语法错误导致程序停止运行, 2)代码无法执行或具有意外行为导致运行时错误,3)代码有语义(逻辑)错误,没有实现原来的意图。",
"在这个课程中,你将学习如何使用 JavaScript 控制台来调试程序,防止出现常见问题。"
]
},
"basic-data-structures": {
"title": "基础数据结构",
"intro": [
"我们可以通过多种方式存储和访问数据。你已经知道数组和对象了,它们都是常见的 JavaScript 数据结构。",
"在基础数据结构课程中,你会更深入地了解数组和对象之间的差异,以及在不同情况下应该使用哪个。你还将学习到一些好用的 JS 方法,例如 <code>splice()</code>,以及使用 <code>Object.keys()</code> 来访问和操作数据。"
]
},
"basic-algorithm-scripting": {
"title": "基础算法",
"intro": [
"算法是描述如何处理某个问题的一系列步骤。",
"要写一个有效的算法,你需要先将一个特定的问题分解为小的部分,并仔细思考如何用代码解决每个部分。",
"在这个课程中,你将通过编写算法来实现诸如转换温度、处理复杂的二维数组等,来学习算法思维的基础知识。"
]
},
"object-oriented-programming": {
"title": "面向对象编程",
"intro": [
"OOP,即面向对象编程,是软件开发过程的主要方法之一。在 OOP 中,我们用对象和类来组织代码,以描述事物的特点以及它们可以做什么。",
"在这个课程中,你将会学习 JavaScript 中面向对象编程的基本原则,例如 <code>this</code> 关键词、原型链、构造器和继承。"
]
},
"functional-programming": {
"title": "函数式编程",
"intro": [
"函数式编程是另一种软件开发方法。在函数式编程中,代码被组织成较小的基本的函数,可以结合起来构建复杂的程序。",
"在这个课程中,你将学习函数式编程的核心概念,包括纯函数、如何避免突变、如何使用 <code>.map()</code> 和 <code>.filter()</code> 等方法编写更整洁的代码。"
]
},
"intermediate-algorithm-scripting": {
"title": "中级算法",
"intro": [
"现在你了解了算法的基础知识、面向对象编程以及函数式编程。接下来我们将进入中级算法挑战来测试你的技能。"
]
},
"javascript-algorithms-and-data-structures-projects": {
"title": "JavaScript 算法和数据结构项目",
"intro": [
"是时候用上你新学到的 JavaScript 技能了!接下来的项目和前面的算法挑战很相近,但是难度会更高。",
"完成这 5 个 JavaScript 项目,以获得 JavaScript 算法和数据结构认证。"
]
}
}
},
"javascript-algorithms-and-data-structures-v8": {
"title": "JavaScript Algorithms and Data Structures",
"intro": [
"开发者使用 HTML 和 CSS 来控制页面的内容与样式。他们还使用 JavaScript 来让页面可以交互。",
"在这个 JavaScript 算法与数据结构认证中,你将学习如变量、数组、对象、循环、函数、DOM 等 JavaScript 的基础知识。",
"你还会学习面向对象编程(OOP)、函数式编程、算法思维、如何使用本地存储,以及如何通过使用 API 来获取数据。"
],
"note": "注意:一些浏览器扩展程序,如广告拦截器和脚本拦截器可能会干扰测试。如果你遇到问题,我们建议你在学习时禁止能更改或拦截页面内容的扩展程序。",
"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": "创建收银机项目",
"intro": [
"这是你要获得认证必须做的项目之一。",
"在这个项目中,你将创建一个收银机 Web 应用程序。"
]
},
"build-a-palindrome-checker-project": {
"title": "创建回文检测项目",
"intro": [
"这是你要获得认证必须做的项目之一。",
"在这个项目中,你将创建一个检测给定单词是否是回文的程序。"
]
},
"build-a-roman-numeral-converter-project": {
"title": "创建罗马数字转换器项目",
"intro": [
"这是你要获得认证必须做的项目之一。",
"在这个项目中,你将创建一个把整数转换为罗马数字的应用。"
]
},
"build-a-telephone-number-validator-project": {
"title": "创建电话号码验证项目",
"intro": [
"这是你要获得认证必须做的项目之一。",
"在这个项目中,你将创建一个检查某个号码是否是美国电话号码的应用程序。"
]
},
"learn-basic-javascript-by-building-a-role-playing-game": {
"title": "通过创建角色扮演游戏学习基础 JavaScript",
"intro": [
"JavaScript 是一种功能强大的脚本语言,可用于使网页具有交互性。它和 HTML 和 CSS 都是 Web 核心技术。所有现代浏览器都支持 JavaScript。",
"在这个练习项目中,你将通过编程你自己的角色游戏来学习 JavaScript 中的基本编程概念。你将学习如何使用数组、字符串、对象、函数、循环、 <code>if/else</code> 语句以及更多。"
]
},
"learn-form-validation-by-building-a-calorie-counter": {
"title": "通过创建卡路里计数器学习表单验证",
"intro": [
"有时,在编写 Web 应用程序时,需要能够接受用户的输入。在这个卡路里计数器项目中,你将学习如何验证用户输入、基于该输入执行计算以及动态更新界面以显示结果。",
"在这个练习项目中,你将学习基本的正则表达式、模板字面量、<code>addEventListener()</code> 方法等。"
]
},
"learn-functional-programming-by-building-a-spreadsheet": {
"title": "通过创建电子表格学习函数式编程",
"intro": [
"函数式编程是一种流行的软件开发方法。在函数式编程中,开发人员将代码组织成更小的函数,然后将这些函数组合起来构建复杂的程序。",
"在这个电子表格应用程序项目中,你将学习如何解析和计算数学表达式、实现电子表格功能、处理单元格引用以及创建交互式 Web 界面。你将学习如何根据用户输入动态更新页面。",
"这个项目将涵盖 <code>map()</code>、<code>find()</code> 和 <code>includes()</code> 方法以及 <code>parseInt()</code> 函数等概念。"
]
},
"learn-modern-javascript-methods-by-building-football-team-cards": {
"title": "通过创建足球队卡学习现代 JavaScript 方法",
"intro": [
"构建 Web 应用程序的一个常见方面是:处理数据集,然后将信息输出到屏幕上。在这个运动队卡片项目中,你将学习如何使用 DOM 操作、对象解构、事件处理和数据过滤。",
"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": "通过创建统计计算器学习高级数组方法",
"intro": [
"在提升 JavaScript 技能的过程中,你需要熟练掌握数组操作方法,例如 <code>map()</code>、<code>reduce()</code> 和 <code>filter()</code>。",
"在这个统计计算器项目中,你将获得处理用户输入、DOM 操作和方法链的经验。你还将练习执行统计计算,例如计算平均值、中位数、众数、方差和标准差。"
]
},
"learn-basic-oop-by-building-a-shopping-cart": {
"title": "通过创建购物车学习基础 OOP",
"intro": [
"OOP,即面向对象编程,是软件开发过程的主要方法之一。在 OOP 中,开发人员使用对象和类来构造代码。",
"在这个购物车项目中,你将学习如何定义和使用类。你将创建类实例并执行数据操作方法。",
"这个项目将涵盖三元运算符、扩展运算符、<code>this</code> 关键字等概念。"
]
},
"learn-fetch-and-promises-by-building-an-fcc-authors-page": {
"title": "通过创建 fCC 作者页面学习 Fetch 和 Promises",
"intro": [
"web 开发的一个常见方面是学习如何从外部 API 获取数据,使用 JavaScript 进行异步编程。",
"这个 freeCodeCamp 作者页面项目将向你展示如何使用 fetch 方法,然后动态更新 DOM 以显示获取的数据。",
"本项目还将教你如何对数据进行分页,以便分批加载结果。"
]
},
"learn-regular-expressions-by-building-a-spam-filter": {
"title": "通过创建垃圾邮件过滤器学习正则表达式",
"intro": [
"正则表达式通常简称为 “regex” 或 “regexp”,是帮助程序员匹配、搜索和替换文本的模式。正则表达式功能强大,但由于使用了大量特殊字符,因此可能难以理解。",
"在这个垃圾邮件过滤器项目中,你将学习捕获组、正向查找、负向查找和其他技术,以匹配你想要的任何文本。"
]
},
"learn-basic-algorithmic-thinking-by-building-a-number-sorter": {
"title": "通过创建数字排序器学习基本算法思维",
"intro": [
"在计算机科学中,有一些基本的排序算法是所有开发人员都应该学习的。在这个数字排序器项目中,你将学习如何使用 JavaScript 实现冒泡排序、选择排序和插入排序等不同的排序算法并将其可视化。",
"本项目将帮助你理解这些算法背后的基本概念,以及如何在 web 应用程序中应用这些算法对数字数据进行排序。"
]
},
"review-algorithmic-thinking-by-building-a-dice-game": {
"title": "通过创建骰子游戏回顾中级算法思维",
"intro": [
"算法思维包括将复杂问题分解为一连串定义明确、循序渐进的指令的能力。",
"在这个骰子游戏项目中,你将学习如何管理游戏状态、实现掷骰子的游戏逻辑、记分以及应用各种组合的规则。",
"这个项目涵盖事件处理、数组操作、条件逻辑以及根据游戏状态动态更新用户界面等概念。"
]
},
"learn-intermediate-oop-by-building-a-platformer-game": {
"title": "通过创建平台游戏学习中级 OOP",
"intro": [
"编码游戏是掌握基本编程原则的好方法,同时还能创造互动游戏体验。",
"在这个平台游戏项目中,你将继续学习类、对象、继承和封装。你还将学习如何有效地设计和组织游戏元素,并获得解决问题和代码可重用性方面的见解。"
]
},
"learn-localstorage-by-building-a-todo-app": {
"title": "通过创建 Todo 应用程序学习 localStorage",
"intro": [
"本地存储是一种 web 浏览器功能,可让 web 应用程序在用户浏览器中持久存储键值对。这样,web 应用程序就可以在一次会话中保存数据,然后在以后的页面会话中检索这些数据。",
"在这个 TODO 应用程序中,你将学习如何处理表单输入、管理本地存储、对任务执行 CRUD(创建、读取、更新、删除)操作、实现事件监听器以及切换 UI 元素。"
]
},
"learn-the-date-object-by-building-a-date-formatter": {
"title": "通过创建日期格式器学习 Date 对象",
"intro": [
"在 JavaScript 中处理日期很有挑战性。你必须掌握各种方法、格式和时区。在本项目中,你将学习如何使用 JavaScript Date 对象,包括其方法和属性。你还将学习如何正确格式化日期。",
"这个项目将涵盖一些概念,如 <code>getDate()</code>、<code>getMonth()</code> 和 <code>getFullYear()</code> 方法。"
]
},
"learn-asynchronous-programming-by-building-an-fcc-forum-leaderboard": {
"title": "通过创建 fCC 论坛排行榜学习异步编程",
"intro": [
"JavaScript 是一种异步编程语言。这个项目将帮助你掌握异步概念。你将编写自己的 freeCodeCamp 论坛排行榜。",
"该项目将包括 Fetch API、promises、Async/Await 和 try..catch 语句。"
]
},
"learn-basic-string-and-array-methods-by-building-a-music-player": {
"title": "通过创建音乐播放器学习字符串和数组的基本方法",
"intro": [
"现在让我们学习一些基本的字符串和数组方法,例如 <code>find()</code>、<code>forEach()</code>、<code>map()</code> 和 <code>join()</code>。这些方法对于开发动态 web 应用非常重要。",
"在本项目中,你将使用 HTML、CSS 和 JavaScript 编写一个基础的 MP3 播放器。该项目涵盖基本概念,如处理音频播放、管理播放列表、实现播放、暂停、下一首、上一首和随机播放功能。你甚至还将学习如何根据当前歌曲动态更新用户界面。"
]
},
"learn-recursion-by-building-a-decimal-to-binary-converter": {
"title": "通过创建十进制到二进制转换器学习递归",
"intro": [
"递归是一种编程概念,即函数调用自身。这可以将复杂的问题简化为更简单的子问题,直到它们变得简单易解。",
"在这个项目中,你将使用 JavaScript 创建一个十进制到二进制的转换器。你将学习递归的基本概念,探索调用栈,并通过动画直观地展示递归过程。"
]
},
"learn-introductory-javascript-by-building-a-pyramid-generator": {
"title": "通过创建金字塔生成器学习 JavaScript 基础知识",
"intro": [
"JavaScript 是一种功能强大的脚本语言,可用于使网页具有交互性。它和 HTML 和 CSS 都是 Web 核心技术。所有现代浏览器都支持 JavaScript。",
"在这个练习项目中,你将会通过编写你自己的金字塔生成器来学习 JavaScript 的基本编程概念。你将学到如何使用数组、字符串、函数、循环、<code>if/else</code> 语句以及更多。"
]
},
"review-js-fundamentals-by-building-a-gradebook-app": {
"title": "通过创建成绩统计册应用来回顾 JavaScript 基础知识",
"intro": [
"在这个小项目中,你将会通过创建成绩统计册应用回顾 JavaScript 基础知识,如函数、变量、条件以及更多内容。",
"你将通过这个机会练习解决小问题,更好地理解基础知识。"
]
},
"learn-basic-debugging-by-building-a-random-background-color-changer": {
"title": "通过创建随机背景变色程序学习基本调试方法",
"intro": [
"调试是检查代码、发现并修复问题的过程。",
"在这个项目中,你将帮助 CamperBot 创建一个随机背景变色程序,并帮助其找到和修复错误。"
]
},
"review-dom-manipulation-by-building-a-rock-paper-scissors-game": {
"title": "通过创建石头剪刀布游戏回顾 DOM 操作",
"intro": [
"在前面的项目中,你学习了如何使用基本的 DOM 操作。现在是时候通过创建石头剪刀布游戏来复习一下所学知识了。",
"在这个迷你项目中,你将复习条件、函数、<code>getElementById</code> 等内容。本项目将为你提供一个解决小问题的机会,让你更好地理解基础知识。"
]
}
}
},
"front-end-development-libraries": {
"title": "前端开发库",
"intro": [
"你已经熟悉了 HTML、CSS 和 JavaScript。现在学习行业中一些流行的前端库来提升你的技能吧。",
"在前端开发库认证中,你将学习如何使用 Bootstrap 快速设置网站样式,以及如何在 CSS 样式中添加逻辑,并使用 Sass 对其进行扩展。",
"稍后,你将建立一个购物车和其他应用程序,学习如何使用 React 和 Redux 创建强大的单页应用程序(SPAs)。"
],
"note": "",
"blocks": {
"bootstrap": {
"title": "Bootstrap",
"intro": [
"Bootstrap 一个是用于设计响应性网页和应用程序的前端框架。它对网页开发采用移动优先的方法,具有预定义的 CSS 样式和 class,以及一些 JavaScript 功能。",
"在这个课程中,你将学习如何使用 Bootstrap 来构建响应式网页,并使用它的 class 来设置按钮、图像、表格、导航和其他常见元素的样式。"
]
},
"jquery": {
"title": "jQuery",
"intro": [
"jQuery 是开发者们最常用的 JavaScript 库之一。",
"在 jQuery 于 2006 年发布时,各种常用浏览器处理 JavaScript 的方式都略有不同。jQuery 简化了编写客户端 JavaScript 的过程,并确保代码在所有浏览器中以同样的方式运行。",
"在这个课程中,你将学习如何使用 jQuery 选择、移除、克隆和修改页面上的不同元素。"
]
},
"sass": {
"title": "Sass",
"intro": [
"Sass,英文全称为 “Syntactically Awesome StyleSheets”,是对 CSS 的扩展。它添加了一些基础 CSS 中不具有的新特性。Sass 简化了 CSS,这让维护项目中的样式表变得更容易。",
"在这个 Sass 课程中,你将学习如何将数据存储在变量中、嵌套 CSS、创建可重用的样式、为样式添加逻辑和循环等等。"
]
},
"react": {
"title": "React",
"intro": [
"React 是一个流行的 JavaScript 库,用于为网页或应用程序构建可重用的组件驱动的用户界面。",
"React 将 HTML 与 JavaScript 结合在了一起,以此创建出一个新的标记语言 JSX。React 还使得管理整个应用程序的数据流变得更容易。",
"在这个课程中,你将学习如何创建不同的 React 组件,以 state props 管理数据,以及使用不同的生命周期方法(例如 <code>componentDidMount</code>)和更多内容。"
]
},
"redux": {
"title": "Redux",
"intro": [
"随着应用程序规模和范围的扩大,管理共享数据变得更加困难。Redux 被定义为 “JavaScript 应用的可预测状态容器”,它有助于确保你的应用能够可预测地运行,并且更容易测试。",
"虽然你可以将 Redux 和各种库一起使用,但我们在这里介绍 Redux,然后在下一组课程中将它与 React 结合起来。",
"在这个课程中,你将学习 Redux stores、actions、reducers 和中间件的基础知识,来管理应用程序的数据。"
]
},
"react-and-redux": {
"title": "React 和 Redux",
"intro": [
"React 和 Redux 经常一起被提及,这是有充分理由的。创建 Redux 的开发人员是一个 React 开发者,他希望简化不同组件间的数据共享。",
"你已经知道了如何使用 Redux 管理共享数据流,是时候将这些知识与 React 结合起来了。在 React 和 Redux 课程中,你将构建一个 React 组件,并学习如何使用 Redux 在组件级别本地管理状态,以及在整个应用程序中管理状态。"
]
},
"front-end-development-libraries-projects": {
"title": "前端开发库项目",
"intro": [
"现在是时候应用你的前端开发库技能进行测试。用 Bootstrap、jQuery、Sass、React、和 Redux 构建 5 个项目,测试你到现在所学到的知识。",
"完成全部 5 个项目,然后你会获得前端开发库认证。"
]
}
}
},
"data-visualization": {
"title": "数据可视化",
"intro": [
"数据无处不在。但是,如果没有上下文,数据就没有多大意义。",
"在数据可视化认证中,你会用 D3.js 库来创建表格、图表和地图,以展示不同的数据。",
"您还将了解 JSONJavaScript 对象表示法),以及如何使用 API(应用程序编程接口)在线处理数据。"
],
"note": "",
"blocks": {
"data-visualization-with-d3": {
"title": "用 D3 实现数据可视化",
"intro": [
"D3 或 D3.js 表示数据驱动文档。它是一个用于在浏览器中创建动态和交互式数据视觉化的 JavaScript 库。",
"它基于 web 标准,即 HTML、CSS 和 SVG(可缩放矢量图形)技术。",
"D3 支持多种不同类型的输入数据格式。 然后,你可以使用它强大的内置方法将这些数据转换成不同的图表、和地图。",
"在用 D3 实现数据可视化课程中,你将学习如何使用数据来创建不同的图表、悬停元素及其他内容,用以创建动态和有吸引力的数据可视化。"
]
},
"json-apis-and-ajax": {
"title": "JSON APIs 和 AJAX",
"intro": [
"类似于 UI 如何帮助人们使用程序,API(应用程序接口)帮助程序与其他程序互动。API 是计算机用来相互沟通的工具,部分用于发送和接收数据。",
"程序员在使用 API 的时候,通常会使用 AJAX(同步 JavaScript 和 XML)。AJAX 指的是一组技术,这些技术向服务器提出异步请求以传输数据,然后将任何返回的数据加载到页面。而且在浏览器和服务器之间传输的数据常常是一种 JSON(JavaScript 对象)格式。",
"此课程将教你如何在浏览器中使用 API 和不同的 AJAX 技术的基础知识。"
]
},
"data-visualization-projects": {
"title": "数据可视化项目",
"intro": [
"现在你学习了如何使用 D3 、 APIs 和 AJAX 技术,构建这 5 个数据可视化项目来测试你的技术吧。",
"在这些项目中,你需要获取数据并解析数据集,然后使用 D3 创建不同的数据可视化。完成之后,你可以获得数据可视化认证。"
]
}
}
},
"relational-database": {
"title": "关系数据库",
"intro": [
"对于这些课程,你将使用真正的开发人员工具和软件,包括 VS Code、PostgreSQL 和 Linux/Unix 命令行来完成交互式教程和构建项目。",
"这些课程从基本的 Bash 命令开始。使用终端,你将学习从导航和操作文件系统、在 Bash 中编写脚本到高级用法的所有内容。",
"接下来,你将学习如何使用 PostgreSQL(数据库管理系统)和 SQL(这些数据库的语言)创建和使用关系数据库。",
"最后,你将学习 Git,版本控制系统,每个开发人员的必备工具。"
],
"blocks": {
"build-a-celestial-bodies-database-project": {
"title": "天体数据库",
"intro": [
"这是你获得认证的必做项目。",
"对于这个项目,你将使用 PostgreSQL 构建一个天体数据库。"
]
},
"build-a-number-guessing-game-project": {
"title": "猜数字游戏",
"intro": [
"这是你获得认证的必做项目。",
"对于这个项目,你将使用 Bash 脚本、PostgreSQL 和 Git 创建一个在终端中运行并保存用户信息的猜数游戏。"
]
},
"build-a-periodic-table-database-project": {
"title": "元素周期表数据库",
"intro": [
"这是你获得认证的必做项目。",
"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": "沙龙预约安排程序",
"intro": [
"这是你获得认证的必做项目。",
"对于这个项目,你将创建一个交互式 Bash 程序,该程序使用 PostgreSQL 来跟踪你沙龙的客户和约会。"
]
},
"build-a-world-cup-database-project": {
"title": "世界杯数据库",
"intro": [
"这是你获得认证的必做项目。",
"对于这个项目,你将创建一个 Bash 脚本,将世界杯赛中的信息存储到 PostgreSQL 中,然后通过查询数据库来获取有用的统计数据。"
]
},
"learn-advanced-bash-by-building-a-kitty-ipsum-translator": {
"title": "通过创建 Kitty Ipsum 翻译器学习高级 Bash",
"intro": [
"Bash 命令比你想象的更多。",
"在第 140 课中,你会学习一些更复杂的命令以及命令如何工作的细节。"
]
},
"learn-bash-and-sql-by-building-a-bike-rental-shop": {
"title": "通过创建自行车出租店学习 Bash 和 SQL",
"intro": [
"在这套 210 小节的课程中,你将建立一个交互式 Bash 程序,使用 PostgreSQL 存储自行车租赁商店的租赁信息。"
]
},
"learn-bash-by-building-a-boilerplate": {
"title": "通过创建模版学习 Bash",
"intro": [
"终端允许你将文本命令发送到你的计算机,可以操作文件系统、运行程序、自动化任务以及更多。",
"在这套 170 小节的课程中,你将通过只使用命令行创建网站模板来学习终端命令。"
]
},
"learn-bash-scripting-by-building-five-programs": {
"title": "通过创建五个程序学习 Bash 脚本",
"intro": [
"Bash 脚本将终端命令和逻辑合并到程序的可以执行任务或自动化任务等中。",
"在第 220 课程中,你将通过创建五个小程序来学习更多终端命令以及如何在 Bash 脚本中使用它们。"
]
},
"learn-git-by-building-an-sql-reference-object": {
"title": "通过创建 SQL 引用对象学习 Git",
"intro": [
"Git 是一个版本控制系统,用于跟踪你对代码片段所作的所有更改。",
"在第 240 课中,你将通过创建一个包含常用的 SQL 命令的对象来学习 Git 如何跟踪你的代码。"
]
},
"learn-nano-by-building-a-castle": {
"title": "通过创建城堡学习 Nano",
"intro": [
"Nano 是一个允许你在终端编辑文件的程序。",
"在第 40 课中,你将学习如何在构建城堡时编辑终端中的文件。"
]
},
"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": "通过创建学生数据库学习 SQL:第 1 部分",
"intro": [
"SQL 又称结构化查询语言是与关联数据库通信的语言。",
"在第 140 课中,你将创建一个 Bash 脚本,使用 SQL 将你的计算机科学学生信息存储到 PostgreSQL 中。"
]
},
"learn-sql-by-building-a-student-database-part-2": {
"title": "通过创建学生数据库学习 SQL:第 2 部分",
"intro": [
"SQL 加入命令用于将关系数据库中多个表格中的信息合并在一起",
"在第 140 课课程中,你将会在更深入的 SQL 命令中完成学生数据库。"
]
}
}
},
"back-end-development-and-apis": {
"title": "后端开发和 APIs",
"intro": [
"在这之前,你只是在前端使用 JavaScript 来给页面添加交互、解决算法挑战,或构建一个 SPA(单页应用程序)。但 JavaScript 也可以用于后端或者服务器来构建整个 web 应用程序。",
"今天,构建应用软件的广受欢迎的方法之一是微服务,这些微服务是一种小型模块化的应用,能够共同形成一个更大的整体。",
"在后端开发和 APIs 认证中,你将学习如何使用 Node.js 和 npm 编写后端应用程序。你还将使用 Express 框架构建 Web 应用程序,并使用 MongoDB 和 Mongoose 库构建一个 People Finder 微服务。"
],
"note": "",
"blocks": {
"managing-packages-with-npm": {
"title": "使用 NPM 管理软件包",
"intro": [
"npm(Node 包管理工具)是一个命令行工具,用于安装、创建和分享为 Node.js 编写的 JavaScript 代码包。在 npm 上有许多开放源码软件包,所以在项目启动之前,需要一些时间来探索,这样你就不会最后重新创建轮子来处理像日期或从 API 获取数据这样的事项。",
"在这个课程中,你将学习使用 npm 的基本知识,包括如何使用 <code>package.json</code> 和如何管理已安装的依赖项。"
]
},
"basic-node-and-express": {
"title": "基础 Node 和 Express",
"intro": [
"Node.js 是一个 JavaScript 运行时,它允许开发人员在 JavaScript 中写入后端(服务器侧)程序。Node.js 有几个内置的模块——小型、独立的程序——来帮助实现这一点,一些核心模块包括像服务器一样运作的 HTTP 和文件系统,一个读取和修改文件的模块。",
"在上一组课程中,你学到了怎么从 npm下载和管理软件包。这些软件包是较小模块的集合,可以帮助你构建更大更复杂的程序。",
"Express 是一个轻量级的 Web 应用程序框架,是 npm 上最流行的包之一。 Express 可以更轻松地为你的应用程序创建服务器和处理路由,例如在人们访问特定端点(如 <pre>/blog</pre>)时将人们引导到正确页面。",
"在这个课程中,你将学习 Node 和 Express 的基础知识,包括如何创建服务器、处理不同的文件,以及处理不同的浏览器请求。"
]
},
"mongodb-and-mongoose": {
"title": "MongoDB 和 Mongoose",
"intro": [
"MongoDB 是一个存储 JSON 文件(或记录)的数据库程序,你可以在自己的程序中使用这些 JSON 文件。与 SQL——另一种类型的数据库——所不同的是,MongoDB 是一个非关系型数据库,也被称为 “NoSQL”。这意味着 MongoDB 将所有相关数据都存储在一个记录中,而不是像 SQL 数据库中那样把数据存储在许多预设表中。",
"Mongoose 是一个广泛使用的 npm 包,通常和 Mongo 一起安装。通过 Mongoose,你可以使用 JavaScript 对象而不是 JSON ,这样就更容易与 Mongo 配合使用。此外,它允许你创建文件架构,即 schema,所以你不会意外地保存错误的数据类型并出现 bug。",
"在 MongoDB 和 Mongoose 课程中,你将学习处理数据的基本知识,包括如何建立模型,保存、删除并在数据库中查找文档。"
]
},
"back-end-development-and-apis-projects": {
"title": "后端开发和 APIs 项目",
"intro": [
"你之前用过 API,但是现在你知道 npm、Node、Express、MongoDB 和 Mongoose,是时候创建应用了。用你到现在所学的所有知识来创建 5 个不同的微服务,这些微服务是使用范围有限的小应用。",
"在创建这些项目后,你会有 5 个很酷的微服务 API,你可以向朋友、家人和潜在的雇主展示。同时,你也会获得后端开发和 APIs 认证。"
]
}
}
},
"quality-assurance": {
"title": "质量保证",
"intro": [
"随着你的程序或网页应用程序变得更加复杂,你将想要测试它们,以确保新的更改不会破坏它们的原有功能。",
"在质量保证认证中,你将学习如何使用 Chai 编写测试,以确保你的应用程序按预期的方式工作。",
"然后你将创建一个聊天应用程序来学习高级 Node 和 Express 概念。你还将使用 Pug 作为模板引擎,用于身份验证的 Passport 和 用于服务器和客户端之间实时通信的 Socket.io。"
],
"note": "",
"blocks": {
"quality-assurance-and-testing-with-chai": {
"title": "使用 Chai 进行质量保证和测试",
"intro": [
"Chai 是一个JavaScript测试库,帮助你确保程序能够在你更改代码后按照你的期望运行。",
"使用 Chai,你可以写测试描述你的程序的要求,并查看你的程序是否符合这些要求。",
"在这个课程中,你会了解测试 JavaScript 应用程序的断言、测试 API 和其他测试 JavaScript 应用的基础知识。"
]
},
"advanced-node-and-express": {
"title": "高级 Node 和 Express",
"intro": [
"现在是时候来使用高级 Node.js 和 Express.js 创建一个具有登录系统的聊天应用了。",
"为了创建一个安全的登录系统,你需要学习验证,这是一个验证个人身份或者过程的的操作。",
"在这个课程中,你将学习如何使用 Passport 管理身份验证,如何使用 Pug 创建可重用的模板以快速构建前端,以及如何使用 web sockets 在客户端和服务器之间进行实时通信。"
]
},
"quality-assurance-projects": {
"title": "质量保证项目",
"intro": [
"现在你对前端和后端都非常精通,是时候应用你所学到的所有技能和概念了。你将构建 5 个不同的 web 应用程序,并为每个应用程序编写测试,以确保它们正常工作并可以处理不同的情况。",
"完成这 5 个质量保证项目后,你将获得一个新的认证,你可以在自己的作品集中展示这 5 个项目和认证。"
]
}
}
},
"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.",
"这个综合课程将指导你学习科学计算的基础知识,包括数据结构和算法。"
],
"note": "",
"blocks": {
"learn-string-manipulation-by-building-a-cipher": {
"title": "通过创建密码学习字符串操作",
"intro": [
"Python 是一种强大而流行的编程语言,广泛应用于数据科学、数据可视化、web 开发、游戏开发、机器学习等领域。",
"在本项目中,你将学习 Python 的基本编程概念,如变量、函数、循环和条件语句。你将使用这些概念编写第一个程序。"
]
},
"learn-how-to-work-with-numbers-and-strings-by-implementing-the-luhn-algorithm": {
"title": "通过实现卢恩算法学习如何处理数字和字符串",
"intro": [
"卢恩算法被广泛用于各种应用中的错误检查,如验证信用卡号码。",
"通过创建这个项目,你将获得数字计算和字符串操作的经验。"
]
},
"learn-list-comprehension-by-building-a-case-converter-program": {
"title": "通过创建大小写转换器程序学习 Python 列表推导",
"intro": [
"列表推导是一种从可迭代类型(列表、元组和字符串)构建新的 Python 列表的方法。所有这些都无需使用 for 循环或 `.append()` 列表方法。",
"在这个项目中,你将编写一个程序,接收驼峰或帕斯卡命名格式的字符串,然后将其转换为蛇形命名格式。",
"该项目分为两个阶段:首先,你将使用 for 循环来执行程序。然后,你将学习如何使用列表推导代替循环来实现相同的结果。"
]
},
"learn-regular-expressions-by-building-a-password-generator": {
"title": "通过创建密码生成器学习正则表达式",
"intro": [
"Python 模块是一个包含一系列语句和定义的文件,你可以在代码中使用这些语句和定义。",
"在本项目中,你将学习如何从 Python 标准库中导入模块。你还将通过构建自己的密码生成器程序来学习如何使用正则表达式。"
]
},
"learn-algorithm-design-by-building-a-shortest-path-algorithm": {
"title": "通过创建最短路径算法学习算法设计",
"intro": [
"算法是开发者用来执行计算和解决计算问题的分步程序。",
"在本项目中,你将学习如何使用函数、循环、条件语句和字典推导来实现最短路径算法。"
]
},
"learn-recursion-by-solving-the-tower-of-hanoi-puzzle": {
"title": "通过解决河内塔谜题学习递归",
"intro": [
"递归是一种编程方法,它让你只需少量代码就能解决复杂的计算问题。",
"在本项目中,你将从基于循环的河内塔数学谜题解法开始。然后,你将学习如何实现递归解法。"
]
},
"learn-data-structures-by-building-the-merge-sort-algorithm": {
"title": "通过创建归并排序算法学习数据结构",
"intro": [
"归并排序算法是一种基于分治原则的排序算法。",
"在本项目中,你将学习如何使用归并排序算法对随机数列表进行排序,从而与数据结构进行交互。"
]
},
"learn-classes-and-objects-by-building-a-sudoku-solver": {
"title": "通过创建数独求解器学习类和对象",
"intro": [
"类和对象是重要的编程概念。这些面向对象编程工具可以帮助开发人员实现代码的模块化、抽象化和可读性。它们还能提高代码的可重用性。",
"在这个数独求解器项目中,你将学习如何使用类和对象来创建数独网格并求解数独谜题。"
]
},
"learn-tree-traversal-by-building-a-binary-search-tree": {
"title": "通过创建二叉搜索树学习树形结构遍历",
"intro": [
"二叉搜索树(BST)是一种常见的数据结构,数据按层次排序。",
"在本项目中,你将学习如何构建自己的 BST 并执行无序遍历。你还将学习插入、搜索和删除等关键操作。"
]
},
"learn-lambda-functions-by-building-an-expense-tracker": {
"title": "通过创建费用跟踪器学习 Lambda 函数",
"intro": [
"Lambda 函数为你提供了一种简洁的方法,让你可以在代码中编写小型的、可丢弃的函数。",
"在本项目中,你将通过创建一个费用跟踪器来探索 Lambda 函数的强大功能。你创建的应用程序将展示如何使用 Lambda 函数实现高效、简化的操作。"
]
},
"build-an-arithmetic-formatter-project": {
"title": "创建算术格式化器项目",
"intro": ["这是你要获得认证必须做的项目之一。"]
},
"build-a-time-calculator-project": {
"title": "创建时间计算器项目",
"intro": ["这是你要获得认证必须做的项目之一。"]
},
"build-a-budget-app-project": {
"title": "创建预算应用程序项目",
"intro": ["这是你要获得认证必须做的项目之一。"]
},
"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": "Python 数据分析",
"intro": [
"数据分析已经存在很长时间了。但是直到几年前,开发人员还是使用昂贵的闭源工具(如 Tableau)来做数据分析。如今,Python、SQL 和其他开放的库永远改变了数据分析领域。",
"在这个认证中,你会学习使用 Python 做数据分析的基础知识。然后,你会学习怎么从 CSV、SQL 等数据源读取数据,并且怎么使用 Numpy、Pandas、Matplotlib 和 Seaborn 等库来处理和可视化数据。"
],
"note": "",
"blocks": {
"data-analysis-with-python-course": {
"title": "Python 数据分析",
"intro": [
"在 Santiago Basulto 创建的这些综合视频课程中,你会学习整个数据分析的过程。你会从 CSV、SQL、Excel 读取数据,用 Numpy和 Pandas 来处理这些数据,以及使用 Matplotlib 和 Seaborn 来可视化数据。",
"此外,你还可以通过完整的 Jupyter Notebook 课程和 Python 资料来刷新自己的编程技能。"
]
},
"numpy": {
"title": "Numpy",
"intro": [
"通过下方 Keith Galli 创建的视频课程学习 NumPy 库基础知识。",
"在这个课程中,你将学习如何使用 NumPy 以及它与 Python 内置列表的区别。你还将学习如何使用 NumPy 编程,以及索引、调整形状、应用统计信息等等知识。"
]
},
"data-analysis-with-python-projects": {
"title": "Python 数据分析",
"intro": [
"使用 Python 分析数据的方法很多。通过完成这些项目,你可以证明自己掌握了使用 Python 进行数据分析的基础知识。",
"完成所有项目,即可获得 Python 数据分析认证。"
]
}
}
},
"information-security": {
"title": "信息安全",
"intro": [
"通过我们在线上的一切行为,我们的电子邮件地址、密码、电话号码等等大量敏感信息处于风险之中。",
"通过信息安全认证,你将使用 HelmetJS 构建安全的 Web 应用程序,以学习信息安全的基础知识。",
"你还将使用 Python 构建一个 TCP 客户端以及一个 Nmap 和端口扫描程序,从而学习渗透测试的基础知识。渗透测试是良好信息安全的重要组成部分。"
],
"note": "",
"blocks": {
"information-security-with-helmetjs": {
"title": "HelmetJS 与信息安全",
"intro": [
"这个课程的重点是 HelmetJS。HelmetJS 是一种用于基于 Express 的应用程序的中间件,可以自动设置 HTTP 标头。这样,它可以防止敏感信息被无意间在服务器和客户端之间传递。",
"以下课程将帮助你了解如何保护你的网站免遭恶意攻击。"
]
},
"python-for-penetration-testing": {
"title": "Python 与渗透测试",
"intro": [
"这些视频课程教你使用 Python 进行渗透测试。渗透测试(penetration testing)也叫作 “pen test”,它是对系统的模拟攻击,以检查漏洞。",
"在这个课程中,你将学习套接字、创建 TCP 服务器和客户端、构建 Nmap 扫描仪以及渗透测试人员日常使用的其他工具和技术。"
]
},
"information-security-projects": {
"title": "信息安全项目",
"intro": [
"现在是时候运用你的信息安全技能了。通过这些项目,你可以运用所学的信息安全技能、原理和概念。",
"完成后,您将拥有大量的信息安全项目,并获得认证,你可以向朋友、家人和雇主炫耀的证书。"
]
}
}
},
"machine-learning-with-python": {
"title": "Python 机器学习",
"intro": [
"机器学习有许多实际应用程序,你可以在项目中或工作中使用它们。",
"在这个认证中,你将使用 TensorFlow 框架构建多个神经网络,同时,你将探索更先进的技术,例如自然语言处理和强化学习。",
"你还将学习神经网络,并了解深度、递归和卷积神经网络背后的原理。"
],
"note": "",
"blocks": {
"tensorflow": {
"title": "TensorFlow",
"intro": [
"TensorFlow 是一个开源框架,使机器学习和神经网络更易于使用。",
"以下视频课程是由 Tim Ruscica 创建的,也叫作 “Tech With Tim”。这个课程将帮助你了解 TensorFlow 及它的一些强大功能。"
]
},
"how-neural-networks-work": {
"title": "神经网络如何工作",
"intro": [
"神经网络是如今我们所谓的人工智能的核心。但是从历史上看,它们一直很难理解,特别是对于机器学习领域的初学者来说。",
"即使你刚开始学习神经网络,Brandon Rohrer 的这些视频课程也可以帮助你熟悉它的概念和它背后的数学知识。"
]
},
"machine-learning-with-python-projects": {
"title": "Python 机器学习项目",
"intro": [
"机器学习有许多实际应用。通过完成这些免费且具有挑战性的编程项目,你可以证明自己掌握了机器学习基础知识,并获得认证。"
]
}
}
},
"college-algebra-with-python": {
"title": "Python 和大学数学",
"intro": [
"本课程设计为一个学期的大学课程。它包含教学视频、用于交互式跟进的 Google Colaboratory 笔记本、任务和具有挑战性的项目。",
"当你按顺序学习本课程的每个部分时,你将全面了解代数以及如何编写 Python 代码来解决代数问题。",
"在整个课程中,你还将创建自己的代数 Colab 笔记本,你将能够用作自定义计算器。 这门课程(以及你在这里写的代码)将为你理解深度数学和数据科学打下基础。"
],
"note": "",
"blocks": {
"learn-ratios-and-proportions": {
"title": "学习比率和比例",
"intro": [
"你的旅程从学习如何创建一个可以运行 Python 代码的 Colab 笔记本开始,然后你使用笔记本和视频学习通过 Python 解决比率和比例问题。"
]
},
"learn-how-to-solve-for-x": {
"title": "学习如何求解 X",
"intro": [
"这个单元将着重运用书面代数和 Python 代码求解一个未知数(通常被称为 “x”)。"
]
},
"learn-fractions-and-decimals": {
"title": "学习分数和小数",
"intro": ["这个学习单元将侧重于将小数转换为分数和百分比。"]
},
"learn-functions-and-graphing": {
"title": "学习函数和图像",
"intro": ["这个单元将会教你数学函数。"]
},
"learn-linear-functions": {
"title": "学习线性函数",
"intro": ["这个单元将向你展示如何从两个点来构建线性方程。"]
},
"learn-common-factors-and-square-roots": {
"title": "学习公因数和平方根",
"intro": [
"在这个单元中,你将学习如何找到公因数和分解公因数。这将有助于简化分数和简化平方根式。"
]
},
"build-a-multi-function-calculator-project": {
"title": "多功能计算器",
"intro": [
"这是你获得认证必做的项目之一。",
"在这个项目中,你将创建一个多功能计算器。"
]
},
"learn-how-to-graph-systems-of-equations": {
"title": "学习如何绘制方程组对应的图像",
"intro": [
"这个单位将侧重于绘制同一坐标平面上的两个方程式的图像,以便你可以看到线条相交的地方。"
]
},
"learn-how-to-solve-systems-of-equations": {
"title": "学习如何解方程组",
"intro": [
"在这个单元中,你将学习如何求解一个由两个方程式(两个变量)组成的方程组,而无需图像。 你将会看到如何用 Python 分解因式和求解某个变量。 学完这个单元,你将能用一个代码块来求解方程组并绘制图像。"
]
},
"learn-applications-of-linear-systems": {
"title": "学习线性方程组的应用",
"intro": [
"在这个单元中,你将看到如何使用你目前学到的代数来解决真实世界中的问题。"
]
},
"learn-quadratic-equations": {
"title": "学习二次方程",
"intro": [
"这个单元将在线性方程的基础上,结合指数和抛物线图像。 你将学习如何在抛物线中找到关键点,以及如何解二次方程。"
]
},
"build-a-graphing-calculator-project": {
"title": "图形计算器",
"intro": [
"这是你获得认证必做的项目之一。",
"在这个项目中,你将创建一个图形计算器。"
]
},
"learn-parent-graphs-and-polynomials": {
"title": "学习父图像和多项式",
"intro": [
"这个单元将显示许多不同类型的“父”图像,即构成更复杂图像的基本模式。多项式是带有“多件事”的数学表达式,是由基本模式构建的更复杂的方程式。你会看到这些图像是什么样的、如何修改它们,以及如何使用 Python 代码来做这一切。"
]
},
"build-three-math-games-project": {
"title": "三个数学游戏",
"intro": [
"这是你获得认证必做的项目之一。",
"在这个项目中,你将创建三个数学游戏。"
]
},
"learn-business-applications-of-college-algebra": {
"title": "学习大学代数的商业应用",
"intro": [
"这个单元将向你展示如何应用你的解答和绘图技能来求解成本、收入和利润。你将从两个点写代码来开发一个需求函数。你将看到价格如何影响利润图,以及所有这些方程如何相互关联。"
]
},
"learn-simple-and-compound-interest": {
"title": "学习单利和复利",
"intro": [
"这个单位将向你展示如何计算利息、贷款支付和投资的估值。你将看到数学公式,并将其变成代码。由于这些公式往往很复杂,因此你只需要修改一部分值的代码。"
]
},
"learn-exponents-and-logarithms": {
"title": "学习指数和对数",
"intro": [
"这个单元将向你展示指数和对数是反函数,以及你如何在各种应用程序中使用这些函数。"
]
},
"build-a-financial-calculator-project": {
"title": "金融计算器",
"intro": [
"这是你获得认证必做的项目之一。",
"对于这个项目,你将创建一个财务计算器。"
]
},
"college-algebra-with-python-conclusion": {
"title": "Python 和大学数学:总结",
"intro": [
"这将是本课程的最后一个单元。让我们看看如何能够将你的数学和 Python 知识与外部数据连接起来。"
]
},
"build-a-data-graph-explorer-project": {
"title": "数据图表浏览器",
"intro": [
"这是你获得认证必做的项目之一。",
"对于这个项目,你将创建一个数据图表浏览器。"
]
}
}
},
"python-for-everybody": {
"title": "(旧版)通用 Python 课程",
"intro": [
"Python 是目前最流行的、最灵活的编程语言之一。你可以用它来做很多事,包括从基础算法到机器学习。"
],
"note": "",
"blocks": {
"python-for-everybody": {
"title": "通用 Python 课程",
"intro": [
"通用 Python 课程是一个讲解 Python 3 基础的系列免费视频课程。",
"这些课程是 Dr. Charles SeveranceDr. Chuck)创建的。他是密歇根大学信息学院的教授,他教授各种技术课程,包括编程、数据库设计和 web 开发。"
]
}
}
},
"coding-interview-prep": {
"title": "面试攻略",
"intro": [
"如果你正在寻找免费的编程训练来帮你为下一个工作面试做准备,我们已经帮你准备好了。",
"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>."
],
"blocks": {
"algorithms": {
"title": "算法",
"intro": [
"这些免费的编程练习将教你一些现实生活中可能会遇到的常见算法。它们是提高你的逻辑和编程技能的绝佳机会。",
"这些算法经常在工作面试中被用来测试候选人的技能。我们将为你提供简洁明了的解释,说明不同算法是如何运行的,以便你为每道算法题目编写解决方案。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"data-structures": {
"title": "数据结构",
"intro": [
"这些免费的编程课程旨在帮助你处理可能你还不太熟悉的大型的、复杂的数据结构。",
"通过下面的课程,你将学习不同类型的数据结构,并通过算法来增强你对它们的理解。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"take-home-projects": {
"title": "私人项目",
"intro": [
"人们在编程面试的时候通常都是很紧张的。有时求职者会拿到一个带回家的项目,在面试之外完成它。这种类型的面试通常需要求职者做大量工作,但对于雇主来说,这是查看你在工作中表现如何的好方法。",
"通过下方的额外的编程项目,进行更多练习。慢慢来,做得好一点,然后将它们放在你的简历或作品集中,以向潜在的雇主展示。"
]
}
}
},
"the-odin-project": {
"title": "The Odin Project - freeCodeCamp Remix",
"intro": [
"The Odin Project 由开发人员 Erik Trautman 创建于 2013 年。多年来,开源社区不断维护和扩展该项目。",
"freeCodeCamp 在开源课程的基础上进行了扩展,使其可以在浏览器中交互运行,并通过测试来评估你的代码,确保你理解了关键概念。",
"如果你想体验在本地计算机上配置运行所有 The Odin Project,可以在 <a href='https://www.theodinproject.com/' target='_blank' rel='noopener noreferrer nofollow'>The Odin Project 网站</a> 上查看原始的 Odin Project。衷心感谢 The Odin Project 社区持续为世界各地的开发人员维护这一宝贵的学习资源。",
"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": "学习 HTML 基础",
"intro": [
"通过本课程扎实掌握 HTML 基本知识。从构建网页到理解语义标签,你将为在 web 端创建条理清晰、易于访问的内容打下坚实的基础。"
]
},
"top-working-with-text": {
"title": "使用文本",
"intro": [
"探索 web 开发中文本处理的技巧。学习文本格式设置、处理和展示,提升你创建 web 内容的技能。"
]
},
"top-links-and-images": {
"title": "链接和图像",
"intro": [
"学习如何在你的 web 项目中添加链接和图片。本课程涵盖创建链接和嵌入图片的基础知识,使你的网站更具互动性和视觉吸引力。"
]
},
"top-build-a-recipe-project": {
"title": "通过创建食谱页面学习 HTML 基础",
"intro": [
"通过创建一个菜谱页面,在实践中锻炼你的 HTML 技能。这个项目使你可以运用所学的知识创建一个功能性网页,同时巩固 HTML 开发的关键概念。"
]
},
"top-learn-css-foundations": {
"title": "学习 CSS 基础",
"intro": [
"深入层叠样式表(CSS)的世界,学习如何为 HTML 元素设计样式。探索样式属性、选择器和布局,让你的网页栩栩如生。"
]
},
"top-learn-css-foundations-projects": {
"title": "学习 CSS 基础项目",
"intro": [
"通过实践项目,让你的 CSS 技能更上一层楼。你将在本课程中应用 CSS 为实际场景创建响应式设计。"
]
},
"top-learn-css-specificity": {
"title": "学习 CSS 优先级",
"intro": [
"学习 CSS 的特性,更好地了解如何给 HTML 元素添加样式。本课程探讨 CSS 规则的细微差别,帮助你为网页编写高效、有针对性的样式。"
]
},
"top-the-box-model": {
"title": "学习盒模型",
"intro": [
"通过本课程学习 CSS 盒模型。了解元素在网页上的呈现方式,学习如何处理间距、边框和边距,以实现理想的布局和设计。"
]
},
"top-introduction-to-flexbox": {
"title": "Flexbox 简介",
"intro": [
"了解 Flexbox 的强大功能,这种布局模型可简化灵活、响应性强的网页布局设计。了解如何轻松创建动态的和自适应的页面结构。"
]
},
"top-learn-block-and-inline": {
"title": "学习块和内联之间的差异",
"intro": [
"探索 HTML 和 CSS 中块元素和内联元素之间的区别。本课程让你深入了解这些显示类型如何影响布局和行为,使你能够做出明智的设计决策。"
]
},
"top-learn-variables-and-operators": {
"title": "学习变量和运算符",
"intro": [
"通过学习变量和运算符开始学习 JavaScript。本课程涵盖 JavaScript 编程的基础知识,包括数据类型、运算符和变量声明。"
]
},
"top-learn-data-types-and-conditionals": {
"title": "学习数据类型和条件",
"intro": ["在 JavaScript 中学习数据类型和条件"]
},
"top-learn-function-basics": {
"title": "学习函数基础",
"intro": ["学习 JavaScript 中的函数。"]
},
"top-basic-function-projects": {
"title": "基础函数项目",
"intro": ["通过构建基本函数来测试你的 JavaScript 技能。"]
},
"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": "欧拉计划",
"intro": [
"完成下方来自欧拉计划的编程挑战,这将强化你的算法和数学知识。",
"这些问题的难度各不相同,对于许多人来说,这是一个归纳性学习的过程。也就是说,通过解决一个问题,你将接触到一个新概念,然后你可以解决自己以前无法解决的问题。你能完成全部挑战吗?"
],
"blocks": {
"project-euler-problems-1-to-100": {
"title": "欧拉计划问题 1 - 100",
"intro": [
"在这第一组挑战中,你将使用斐波那契数列、素数定理和离散数学这样的数学概念编写算法来解决这些问题。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-101-to-200": {
"title": "欧拉计划问题 101 - 200",
"intro": [
"在这一系列的挑战中,你将在课程第一部分的基础上,结合更高级的概念,如矢量计算方法、杨辉三角(帕斯卡三角)和 RSA 算法来有效地解决这些问题。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-201-to-300": {
"title": "欧拉计划问题 201 - 300",
"intro": [
"在这组挑战中,你将继续利用你之前学到的技能,并使用二项式定理、汉明和考拉兹序列等概念来进一步提升你的数学和解决问题的技能。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-301-to-400": {
"title": "欧拉计划问题 301 - 400",
"intro": [
"在这里,你将继续发挥你的数学和算法技能,使用组合博弈论、位运算和 Golomb 的自描述序列等概念来开发这些问题的有效解决方案。",
"NOTE: These challenges support JavaScript only solutions."
]
},
"project-euler-problems-401-to-480": {
"title": "欧拉计划问题 401 - 480",
"intro": [
"在这最后一组挑战中,你将需要使用你目前所学到的一切,并使用像元因数、卡普雷卡尔算法等等高级概念来解决这些复杂问题。",
"NOTE: These challenges support JavaScript only solutions."
]
}
}
},
"foundational-c-sharp-with-microsoft": {
"title": "Free Foundational C# with Microsoft Certification",
"intro": [
"本课程全面介绍 C# 编程,涵盖其核心概念、语法和在软件开发中的实际应用。",
"通过实践练习和项目,你将学习 C# 的基础知识,包括变量、数据类型、控制结构和面向对象编程原理。",
"课程结束时,你将获得所需的实用技能和知识,从而自信地使用 C# 构建应用程序。"
],
"note": "以下每个部分都有一个奖杯,你必须在 Microsoft Learn 平台上获得该奖杯。获得每个奖杯后,你需要在 freeCodeCamp 上进行验证。完成验证后,你就有资格参加认证考试。",
"blocks": {
"write-your-first-code-using-c-sharp": {
"title": "使用 C# 编写你的第一行代码",
"intro": [
"学习使用 C# 编写第一段代码,开始你的编程之旅。探索这门语言的基本原理和语法,打下坚实的基础,为你的编程冒险搭建舞台。"
]
},
"create-and-run-simple-c-sharp-console-applications": {
"title": "创建和运行简单的 C# 控制台应用程序",
"intro": [
"掌握创建和运行简单 C# 控制台应用程序的艺术。深入基于控制台的编程世界,在这里你将执行你的代码,并查看它如何运行,获得实践经验。"
]
},
"add-logic-to-c-sharp-console-applications": {
"title": "向 C# 控制台应用程序添加逻辑",
"intro": [
"在 C# 控制台应用程序中释放逻辑的力量。了解如何在代码中添加逻辑和决策功能,使你的应用程序能够做出动态选择,并对不同场景做出智能响应。"
]
},
"work-with-variable-data-in-c-sharp-console-applications": {
"title": "在 C# 控制台应用程序中使用变量数据",
"intro": [
"探索 C# 控制台应用程序中变量数据的多功能性。在深入学习变量和数据处理的基本概念后,你将掌握存储和处理不同类型数据(如数字和文本)的能力。"
]
},
"create-methods-in-c-sharp-console-applications": {
"title": "在 C# 控制台应用程序中创建方法",
"intro": [
"掌握创建方法的艺术,让你的 C# 控制台应用程序更上一层楼。学习如何组织和模块化你的代码,使其更易于管理、可重用和高效。"
]
},
"debug-c-sharp-console-applications": {
"title": "调试 C# 控制台应用程序",
"intro": [
"在深入调试 C# 控制台应用程序的过程中,提升你解决问题的能力。掌握识别和修复代码问题的能力,确保应用程序顺利运行并交付预期结果。"
]
},
"foundational-c-sharp-with-microsoft-certification-exam": {
"title": "微软基础 C# 认证考试",
"intro": ["利用所学知识通过考试,获得你的微软基础 C# 认证"]
}
}
},
"a2-english-for-developers": {
"title": "A2 English for Developers (Beta) Certification",
"intro": [
"在开发者英语课程中,你将学习英语交流的基本要素。课程遵循欧洲共同语言参考标准(CEFR)的 A2 级,侧重于对开发者有用的词汇。",
"课程的前半部分将帮助你熟悉英语语法和用法。你将通过大量的实践练习学习自我介绍、聊天和讨论工作等基础知识。",
"在后半部分,你将练习软件开发的专用词汇。你将学习如何描述代码、讨论技术趋势和参加站立会议。",
"整个 A2 级课程包括 105 个不同的对话。每一个对话都旨在帮助你积累词汇、增强在专业技术环境中演讲的信心。"
],
"blocks": {
"learn-greetings-in-your-first-day-at-the-office": {
"title": "学习第一天上班的问候语",
"intro": [
"在第一节课程中,你将学习第一天上班可能遇到的情境中的常用表达方式。你将学习自我介绍、认识别人、询问午餐推荐以及从安保处领取门禁卡。"
]
},
"learn-introductions-in-an-online-team-meeting": {
"title": "学习在线上团队会议中自我介绍",
"intro": [
"在本课程中,你将学习如何进行个人介绍。你还将学习如何在小组会议中陈述自己的职业和分享自己的目标。"
]
},
"learn-conversation-starters-in-the-break-room": {
"title": "学习在休息室中的对话开场白",
"intro": [
"在本课程中,你将学习如何在休闲场合开始对话。你还将学习如何谈论自己的爱好和个性特征。你甚至还将学习如何询问城市周边的情况。"
]
},
"learn-how-to-talk-about-a-typical-workday-and-tasks": {
"title": "学习如何谈论典型的工作日和任务",
"intro": [
"在本课程中,你将学习如何谈论你的工作日和你在工作场所执行的任务,以及如何与别人分享这些内容。课程主要关注用于描述你的活动的结构以及与任务相关的词汇。"
]
},
"learn-how-to-discuss-your-morning-or-evening-routine": {
"title": "学习如何讨论你的晨间或晚间例行活动",
"intro": [
"在本课程中,你将学习如何谈论并与别人分享你的例行活动细节。课程的重点是用于谈论例行活动的结构和相关词汇。"
]
},
"learn-how-to-describe-your-current-project": {
"title": "学习如何描述你当前的项目",
"intro": [
"在本课程中,你将学习如何谈论自己参与的项目,以及如何告知别人自己在这些项目中的工作。课程的重点是用于告知别人的结构和相关词汇。"
]
},
"learn-how-to-ask-and-share-about-educational-and-professional-background": {
"title": "学习如何询问和分享教育和专业背景",
"intro": [
"在本课程中,你将学习如何询问别人的教育和职业背景,并学习如何分享有关你的背景信息。"
]
},
"learn-how-to-talk-about-hobbies-and-interests": {
"title": "学习如何谈论兴趣与爱好",
"intro": [
"在本课程中,你将学习用不同的方式谈论自己的爱好和感兴趣的事物。你还将学习如何询问别人的爱好,以及如何邀请别人参加这些活动。"
]
},
"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": "学习如何就偏好和动机进行对话",
"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": "学习如何讨论流行的技术趋势",
"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": "学习如何在不同的互动中阐明信息",
"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": "学习如何在对话中使用基本编程词汇",
"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": "学习如何使用代码相关的概念和术语",
"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": "学习如何谈论技术趋势和更新",
"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": "学习如何在 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": "学习如何在每周站立会议上分享你的进展",
"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": "学习如何要求澄清对代码的理解",
"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": "学习如何为项目写代码文档",
"intro": [
"This course will show you expressions related to what to do when documenting code."
]
},
"learn-how-to-read-and-understand-code-documentation": {
"title": "学习如何阅读和理解代码文档",
"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": "学习如何分析代码文档",
"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": "学习如何分享进度和成就",
"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": "学习如何表达同意或不同意",
"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": "学习如何提供技术支持和指导",
"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": "学习如何请求和接受指导",
"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": "学习如何在帮助别人时提供解释",
"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": "罗塞塔代码",
"intro": [
"通过完成经典的罗塞塔代码库中的这些免费编程任务来提升你的创造性问题解决能力。",
"这些挑战可能很困难,但是它们会将进一步提升你的算法逻辑。",
"<a href='https://rosettacode.org/wiki/Rosetta_Code' target='_blank' rel='noopener noreferrer nofollow'>Attribute: Rosetta Code</a>"
],
"blocks": {
"rosetta-code-challenges": {
"title": "罗塞塔代码挑战",
"intro": [
"这些是罗赛塔代码的挑战。",
"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",
"sql-and-postgresql": "SQL and PostgreSQL",
"bash-scripting": "Bash Scripting",
"sql-and-bash": "SQL and Bash",
"git": "Git",
"review-relational-databases": "Relational Databases Review",
"exam-relational-databases": "Relational Databases Exam",
"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": {
"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-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."
]
},
"sql-and-postgresql": {
"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."
]
},
"workshop-tech-conference-schedule": {
"title": "Build a Tech Conference Schedule Table",
"intro": [
"In this workshop, you will build an accessible tech conference schedule table."
]
},
"lecture-introduction-to-aria": {
"title": "Introduction to ARIA",
"intro": [
"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."
]
},
"workshop-string-transformer": {
"title": "Build a String Transformer",
"intro": [
"In this workshop, you will practice working with the <code>replace()</code>, <code>replaceAll()</code> and <code>repeat()</code> methods."
]
},
"review-javascript-strings": {
"title": "JavaScript Strings Review",
"intro": [
"Before you are quizzed on working with JavaScript strings, you first need to review.",
"Open up this page to review how to work with template literals, the <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-element-skipper": {
"title": "Implement an Element Skipper",
"intro": [
"In this lab you will create a function that skips elements in an array based on a specified step value."
]
},
"lab-optional-arguments-sum-function": {
"title": "Build an Optional Arguments Sum Function",
"intro": [
"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-prime-number-sum-calculator": {
"title": "Build a Prime Number Sum Calculator",
"intro": [
"In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number."
]
},
"lab-range-based-lcm-calculator": {
"title": "Implement a Range-Based LCM Calculator",
"intro": [
"In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them."
]
},
"lab-deep-flattening-tool": {
"title": "Create a Deep Flattening Tool",
"intro": [
"In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods."
]
},
"lab-all-true-property-validator": {
"title": "Build an All-True Property Validator",
"intro": [
"In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property."
]
},
"review-javascript-higher-order-functions": {
"title": "JavaScript Higher Order Functions Review",
"intro": [
"Before you're quizzed on JavaScript higher order functions, you should review them.",
"Open up this page to review concepts including how to work with the <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-planet-class": {
"title": "Build a Planet Class",
"intro": [
"In this lab you will create a class that represents a planet."
]
},
"workshop-email-simulator": {
"title": "Build an Email Simulator",
"intro": [
"In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users."
]
},
"lab-budget-app": {
"title": "Build a Budget App",
"intro": [
"In this lab you will build a budget app and practice creating a class and methods for that class."
]
},
"review-classes-and-objects": {
"title": "Classes and Objects Review",
"intro": [
"Before you're quizzed on classes and objects, you should review what you've learned about them.",
"Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more."
]
},
"quiz-classes-and-objects": {
"title": "Classes and Objects Quiz",
"intro": [
"Test what you've learned about classes and objects in Python with this quiz."
]
},
"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": "Implement the Breadth-First Search Algorithm",
"intro": [
"In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses."
]
},
"lab-depth-first-search": {
"title": "Implement the Depth-First Search Algorithm",
"intro": [
"In this lab, you will implement the Depth-First Search Algorithm."
]
},
"lab-n-queens-problem": {
"title": "Implement the N-Queens Problem",
"intro": [
"In this lab, you will implement a solution for the N-Queens problem."
]
},
"review-graphs-and-trees": {
"title": "Graphs and Trees Review",
"intro": [
"Before you're quizzed on graphs and trees, you should review what you've learned about them."
]
},
"quiz-graphs-and-trees": {
"title": "Graphs and Trees Quiz",
"intro": [
"Test what you've learned about graphs and trees in Python with this quiz."
]
},
"lecture-understanding-dynamic-programming": {
"title": "Understanding Dynamic Programming",
"intro": [
"In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems."
]
},
"lab-nth-fibonacci-number": {
"title": "Build an Nth Fibonacci Number Calculator",
"intro": [
"In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach."
]
},
"review-dynamic-programming": {
"title": "Dynamic Programming Review",
"intro": [
"Before you're quizzed on dynamic programming, you should review what you've learned about it."
]
},
"quiz-dynamic-programming": {
"title": "Dynamic Programming Quiz",
"intro": [
"Test what you've learned about dynamic programming in python with this quiz."
]
},
"review-python": {
"title": "Python Review",
"intro": ["Review Python concepts to prepare for the upcoming exam."]
},
"lecture-understanding-the-command-line-and-working-with-bash": {
"title": "Understanding the Command Line and Working with Bash",
"intro": [
"Learn about the Command Line and Working with Bash in these lessons."
]
},
"workshop-bash-boilerplate": {
"title": "Build a Boilerplate",
"intro": [
"The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.",
"In this 170-lesson workshop, you will learn terminal commands by creating a website boilerplate using only the command line."
]
},
"review-bash-commands": {
"title": "Bash Commands Review",
"intro": [
"Review the Bash Commands concepts to prepare for the upcoming quiz."
]
},
"quiz-bash-commands": {
"title": "Bash Commands Quiz",
"intro": ["Test what you've learned bash commands with this quiz."]
},
"lecture-working-with-relational-databases": {
"title": "Working with Relational Databases",
"intro": [
"Learn how to work with Relational Databases in these lessons."
]
},
"workshop-database-of-video-game-characters": {
"title": "Build a Database of Video Game Characters",
"intro": [
"A relational database organizes data into tables that are linked together through relationships.",
"In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters."
]
},
"lab-celestial-bodies-database": {
"title": "Build a Celestial Bodies Database",
"intro": [
"For this project, you will build a database of celestial bodies using PostgreSQL."
]
},
"review-sql-and-postgresql": {
"title": "SQL and PostgreSQL Review",
"intro": [
"Review SQL and PostgreSQL concepts to prepare for the upcoming quiz."
]
},
"quiz-sql-and-postgresql": {
"title": "SQL and PostgreSQL Quiz",
"intro": [
"Test what you've learned about SQL and PostgreSQL with this quiz."
]
},
"lecture-understanding-bash-scripting": {
"title": "Understanding Bash Scripting",
"intro": ["Learn about Bash Scripting in these lessons."]
},
"workshop-bash-five-programs": {
"title": "Build Five Programs",
"intro": [
"Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.",
"In this 220-lesson workshop, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs."
]
},
"review-bash-scripting": {
"title": "Bash Scripting Review",
"intro": [
"Review the bash scripting concepts you've learned to prepare for the upcoming quiz."
]
},
"quiz-bash-scripting": {
"title": "Bash Scripting Quiz",
"intro": ["Test what you've learned on bash scripting in this quiz."]
},
"lecture-working-with-sql": {
"title": "Working With SQL",
"intro": [
"In these lessons, you will learn about SQL injection, normalization, and the N+1 problem."
]
},
"workshop-sql-student-database-part-1": {
"title": "Build a Student Database: Part 1",
"intro": [
"SQL, or Structured Query Language, is the language for communicating with a relational database.",
"In this 140-lesson workshop, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL."
]
},
"workshop-sql-student-database-part-2": {
"title": "Build a Student Database: Part 2",
"intro": [
"SQL join commands are used to combine information from multiple tables in a relational database",
"In this 140-lesson workshop, you will complete your student database while diving deeper into SQL commands."
]
},
"lab-world-cup-database": {
"title": "Build a World Cup Database",
"intro": [
"For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics."
]
},
"workshop-kitty-ipsum-translator": {
"title": "Build a Kitty Ipsum Translator",
"intro": [
"There's more to Bash commands than you might think.",
"In this 140-lesson workshop, you will learn some more complex commands, and the details of how commands work."
]
},
"workshop-bike-rental-shop": {
"title": "Build a Bike Rental Shop",
"intro": [
"In this 210-lesson workshop, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL."
]
},
"lab-salon-appointment-scheduler": {
"title": "Build a Salon Appointment Scheduler",
"intro": [
"For this lab, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon."
]
},
"review-bash-and-sql": {
"title": "Bash and SQL Review",
"intro": [
"Review the Bash and SQL concepts to prepare for the upcoming quiz."
]
},
"quiz-bash-and-sql": {
"title": "Bash and SQL Quiz",
"intro": ["Test what you've learned in this quiz on Bash and SQL."]
},
"lecture-working-with-nano": {
"title": "Working With Nano",
"intro": ["Learn about Nano in this lesson."]
},
"workshop-castle": {
"title": "Build a Castle",
"intro": [
"Nano is a program that allows you to edit files right in the terminal.",
"In this 40-lesson workshop, you will learn how to edit files in the terminal with Nano while building a castle."
]
},
"lecture-introduction-to-git-and-github": {
"title": "Introduction to Git and GitHub",
"intro": ["Learn how to work with Git and GitHub in these lessons."]
},
"lecture-working-with-code-reviews-branching-deployment-and-ci-cd": {
"title": "Working With Code Reviews, Branching, Deployment, and CI/CD",
"intro": [
"Learn about code reviews, branching, deployment, and CI/CD in these lessons."
]
},
"workshop-sql-reference-object": {
"title": "Build an SQL Reference Object",
"intro": [
"Git is a version control system that keeps track of all the changes you make to your codebase.",
"In this 240-lesson workshop, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands."
]
},
"lab-periodic-table-database": {
"title": "Build a Periodic Table Database",
"intro": [
"For this lab, you will create a Bash script to get information about chemical elements from a periodic table database."
]
},
"lab-number-guessing-game": {
"title": "Build a Number Guessing Game",
"intro": [
"For this lab, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information."
]
},
"review-git": {
"title": "Git Review",
"intro": ["Review Git concepts to prepare for the upcoming quiz."]
},
"quiz-git": {
"title": "Git Quiz",
"intro": ["Test what you've learned on Git with this quiz."]
},
"review-relational-databases": {
"title": "Relational Databases Review",
"intro": [
"Review relational databases concepts to prepare for the exam."
]
},
"lecture-understanding-the-http-request-response-model": {
"title": "Understanding the HTTP Request-Response Model",
"intro": [
"Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods."
]
},
"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 qualify for the exam, you must complete the following projects:",
"- Build a Markdown to HTML Converter",
"- Build a Drum Machine",
"- Build a Voting System",
"- Build a Bank Account Management Program",
"- Build a Weather App",
"Pass the exam to earn your JavaScript Certification."
],
"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."]
}
}
},
"front-end-development-libraries-v9": {
"title": "Front End Development Libraries Certification",
"intro": [
"This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.",
"To earn your Front End Development Libraries Certification:",
"- Complete the five required projects to qualify for the certification exam.",
"- Pass the Front End Development Libraries Certification exam."
],
"chapters": {
"front-end-development-libraries": "Front End Development Libraries"
},
"modules": {
"front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam"
},
"blocks": {
"exam-front-end-development-libraries-certification": {
"title": "Front End Development Libraries Certification Exam",
"intro": [
"Pass this exam to earn your Front End Development Libraries Certification"
]
}
}
},
"python-v9": {
"title": "Python Certification",
"intro": [
"This course teaches you the fundamentals of Python programming.",
"To earn your Python Certification:",
"- Complete the five required projects to qualify for the certification exam.",
"- Pass the Python Certification exam."
],
"chapters": {
"python": "Python"
},
"modules": {
"python-certification-exam": "Python Certification Exam"
},
"blocks": {
"exam-python-certification": {
"title": "Python Certification Exam",
"intro": ["Pass this exam to earn your Python Certification"]
}
}
},
"relational-databases-v9": {
"title": "Relational Databases Certification",
"intro": [
"This course teaches you the fundamentals of relational databases.",
"To earn your Relational Databases Certification:",
"- Complete the five required projects to qualify for the certification exam.",
"- Pass the Relational Databases Certification exam."
],
"chapters": {
"relational-databases": "Relational Databases"
},
"modules": {
"relational-databases-certification-exam": "Relational Databases Certification Exam"
},
"blocks": {
"exam-relational-databases-certification": {
"title": "Relational Databases Certification Exam",
"intro": [
"Pass this exam to earn your Relational Databases Certification"
]
}
}
},
"back-end-development-and-apis-v9": {
"title": "Back End Development and APIs Certification",
"intro": [
"This course teaches you the fundamentals of back end development and APIs.",
"To earn your Back End Development and APIs Certification:",
"- Complete the five required projects to qualify for the certification exam.",
"- Pass the Back End Development and APIs Certification exam."
],
"chapters": {
"back-end-development-and-apis": "Back End Development and APIs"
},
"modules": {
"back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam"
},
"blocks": {
"exam-back-end-development-and-apis-certification": {
"title": "Back End Development and APIs Certification Exam",
"intro": [
"Pass this exam to earn your Back End Development and APIs 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": ["", ""]
}
}
},
"responsive-web-design-v9": {
"title": "Responsive Web Design Certification",
"intro": [
"This course teaches the fundamentals of HTML and CSS, including modern layout, design, accessibility, and responsive web development. You'll build practical projects and gain the skills to create professional, user-friendly webpages.",
"To qualify for the exam, you must complete the following projects:",
"- Build a Survey Form",
"- Build a Page of Playing Cards",
"- Build a Book Inventory App",
"- Build a Technical Documentation Page",
"- Build a Product Landing Page",
"Pass the exam to earn your Responsive Web Design Certification."
],
"chapters": {
"html": "HTML",
"css": "CSS",
"responsive-web-design-certification-exam": "Responsive Web Design Certification Exam"
},
"modules": {
"basic-html": "Basic HTML",
"semantic-html": "Semantic HTML",
"html-forms-and-tables": "Forms and Tables",
"html-and-accessibility": "Accessibility",
"review-html": "HTML Review",
"computer-basics": "Computer Basics",
"basic-css": "Basic CSS",
"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",
"lab-survey-form": "Build a Survey Form",
"lab-page-of-playing-cards": "Build a Page of Playing Cards",
"lab-book-inventory-app": "Build a Book Inventory App",
"lab-technical-documentation-page": "Build a Technical Documentation Page",
"lab-product-landing-page": "Build a Product Landing Page",
"responsive-web-design-certification-exam": "Responsive Web Design Certification Exam"
},
"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 lectures, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.",
"You will learn about HTML's role on the web, and what HTML attributes are."
]
},
"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 lectures, you will learn about the HTML boilerplate which is a ready-made template for your webpages.",
"You will learn how to work with the <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 lectures, 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 lectures, 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 lectures, you will learn how to work with the <code>audio</code> and <code>video</code> elements."
]
},
"lecture-working-with-images-and-svgs": {
"title": "Working with Images and SVGs",
"intro": [
"In these lectures, 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 lectures, you will learn how to work with the <code>iframe</code> element which is used to embed an external site on your web page."
]
},
"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 lectures, 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 lectures, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more."
]
},
"lecture-understanding-nuanced-semantic-elements": {
"title": "Understanding Nuanced Semantic Elements",
"intro": [
"In these lectures, 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 lecture, 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 lecture, 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 lectures, 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 lectures, 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 lectures, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools."
]
},
"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 lectures, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more."
]
},
"lecture-accessible-tables-forms": {
"title": "Working with Accessible Tables and Forms",
"intro": [
"In these lectures, you will learn about how to create accessible tables and forms."
]
},
"lecture-introduction-to-aria": {
"title": "Introduction to ARIA",
"intro": [
"In these lectures, you will learn about working with ARIA roles."
]
},
"lecture-accessible-media-elements": {
"title": "Working with Accessible Media Elements",
"intro": [
"In these lectures, 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 lectures, 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 lectures, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more."
]
},
"lecture-browsing-the-web-effectively": {
"title": "Browsing the Web Effectively",
"intro": [
"In these lectures, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine."
]
},
"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 lectures are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more."
]
},
"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 lectures, 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 lectures, 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 lectures, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds."
]
},
"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 lectures, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more."
]
},
"lecture-user-centered-design": {
"title": "User-Centered Design",
"intro": [
"In these lectures, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing."
]
},
"lecture-common-design-tools": {
"title": "Common Design Tools",
"intro": [
"In these lectures, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them."
]
},
"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 lectures, 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 lectures, 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 lectures, you learned how to work with the different types of pseudo-classes.",
"In this workshop, you will have a chance to practice what you have learned by designing a greeting card."
]
},
"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 lectures, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases."
]
},
"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 lectures, 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."
]
},
"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 lectures, 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 lectures, 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 lectures, 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 lectures, 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 lectures, 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 lectures, 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 lectures, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more."
]
},
"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 lectures, 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 lectures, 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 lecture, 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 lectures, 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."
]
},
"exam-responsive-web-design-certification": {
"title": "Responsive Web Design Certification Exam",
"intro": [
"Pass this exam to earn your Responsive Web Design Certification Exam"
]
}
}
},
"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": "课程",
"steps": "步骤",
"expand": "展开课程",
"collapse": "收起课程",
"legacy-header": "旧版课程",
"legacy-desc": "这些课程不再是认证路径的一部分,但仍可供你进一步学习。",
"legacy-go-back": "进入当前版本的课程。",
"course-maintenance": "这些课程正在维护中。如果它们不可用,你可以学习如何在本地运行这些课程 <0>https://www.freecodecamp.org/chinese/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0>。",
"course-disabling-soon": "这些课程的浏览器版本即将被暂时停用,你的虚拟机也将被删除。虚拟机中的任何进度都将丢失。如果你有任何想要的文件,请将它们保存到你的计算机中。对于给你带来的不便,我们深表歉意。我们希望在未来几周内能再次提供这些课程的改进的浏览器版本。",
"course-disabled": "这些课程暂时无法在浏览器中运行。不便之处,敬请原谅。你可以通过 <0>https://www.freecodecamp.org/chinese/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0> 了解如何在本地运行这些课程。我们希望能尽快推出改进后的浏览器版本。",
"run-locally": "目前,我们建议你在本地计算机上运行课程。你可以通过 <0>https://www.freecodecamp.org/chinese/news/how-to-run-freecodecamps-relational-databases-curriculum-using-docker-vscode-and-coderoad</0> 了解如何操作。",
"progress-wont-save": "当你在本地运行它们时,你的进度不会被保存到你的 freeCodeCamp 账户。",
"go-back-to-learn": "回到正式版课程",
"read-database-cert-article": "请在继续之前阅读这个论坛帖子。",
"enable-cookies": "你必须在开始之前启用第三方 cookies。",
"english-only": "本部分的课程只提供英文。我们目前只能翻译标题和介绍,而不能翻译课程本身。",
"exam-english-only": "请注意,认证考试目前只有英语版本。课程的其余部分有其他语言版本。"
}
}