尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
freeCodeCamp 课程挑战文件格式解析:以椭圆(Ellipses)视频挑战为例
freeCodeCamp 课程挑战文件格式解析以椭圆Ellipses视频挑战为例【免费下载链接】freeCodeCampfreeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free.项目地址: https://gitcode.com/GitHub_Trending/fr/freeCodeCamp本篇以 freeCodeCamp 课程仓库中的挑战文件 ellipses-video.md 为主体讲清一个challengeType: 11video 类型挑战文件的完整字段结构、它在课程块block中的组织方式、Joi 校验规则与前端渲染链路。读完后你能掌握如何编写符合 schema 的视频讲解类挑战、如何用 frontmatter 与分区标记组织题目与视频答案以及该文件涉及的椭圆数学知识点标准方程与关键特征识别。一、挑战文件本体Ellipses 视频挑战该文件位于高级三角与圆锥曲线advanced-trig-conics块目录下与同块的其他视频挑战如 抛物线挑战、双曲线挑战并列存放全部为*-video.md命名curriculum/challenges/english/blocks/advanced-trig-conics/ ├── solving-right-triangles-video.md ├── law-of-cosines-video.md ├── parabolas-vertex-focus-directrix-video.md ├── ellipses-video.md ├── hyperbolas-video.md ├── polar-coordinates-video.md ├── parametric-equations-video.md └── difference-quotient-video.md文件由 YAML frontmatter 和正文分区两部分构成。frontmatter 定义挑战的元数据--- id: 699e85648f18cf77dfce5c23 title: Ellipses challengeType: 11 videoId: AwBM2AMwfu8 dashedName: ellipses ---各字段含义如下字段取值说明id699e85648f18cf77dfce5c23课程数据的主键24 位 ObjectId 格式titleEllipses展示给学习者的挑战标题challengeType11挑战类型11表示 video视频讲解挑战videoIdAwBM2AMwfu8嵌入播放器的视频 IDYouTube 视频 IDdashedNameellipses小写连字符形式的 URL 名用于生成学习路径正文使用自由课程freeCodeCamp 的 Markdown 挑战格式的分区标记# --description--介绍本视频的学习目标——椭圆的标准方程standard equations以及如何识别椭圆的关键特征# --questions--内部以## --text--给出题目文本## --answers--中以---分隔符列出多个候选答案## --video-solution--给出正确答案在答案列表中的序号从 1 开始。本挑战的题目与四个候选答案为题目What is an ellipse?什么是椭圆The set of points such that the sum of the distances from two fixed points is constant.到两个定点距离之和为常数的点的集合。——正确答案The set of points such that the distance from one fixed point is constant.到一定点距离为常数的点的集合——这是圆的定义。The set of points such that the product of the distances from two fixed points is constant.到两个定点距离之积为常数的点的集合。The set of points equidistant from a line and a point.到一条直线和一个定点距离相等的点的集合——这是抛物线的定义。--video-solution--中的1表示第 1 个答案是正确项。对照同块的双曲线挑战 hyperbolas-video.md其四个选项与本题高度对称双曲线对应“两点距离之差为常数”--video-solution--为2——这种题型设计是圆锥曲线三兄弟圆、椭圆、双曲线与抛物线定义辨析的典型考法。二、椭圆知识要点从挑战描述展开挑战的 description 明确了三个学习要点椭圆本身、标准方程、关键特征的识别。这正是题目答案所考查的核心定义配合标准方程可以展开如下。定义即本挑战的正确答案椭圆是平面上到两个定点焦点foci距离之和为常数的点的集合该常数记为 2a且必须大于两焦点间距离 2c即 a c 0。标准方程以中心在原点为例焦点在 x 轴上x²/a² y²/b² 1a b 0焦点在 y 轴上x²/b² y²/a² 1a b 0其中 b² a² − c²a 为长半轴长b 为短半轴长c 为半焦距。关键特征识别方法特征如何由标准方程读出中心方程中的平移量原点则为 (0, 0)焦点所在轴比较 a² 与 b² 的分母位置较大的分母所在轴即焦点所在轴顶点 (vertices)焦点轴上的端点距中心为 a共顶点 (co-vertices)短轴端点距中心为 b焦点焦点轴上距中心为 c 的两点c √(a² − b²)离心率e c/a0 e 1越接近 1 椭圆越扁题目中四个干扰项分别对应圆一定点等距、距离积为常数曲线、抛物线点到点与到线等距的定义这正是“识别椭圆”时最容易混淆的边界。三、挑战在课程块中的注册challengeOrder视频挑战文件不是孤立的它还必须在块结构文件中按 id 注册。本块的结构文件是 advanced-trig-conics.json{ blockLabel: lecture, blockLayout: challenge-list, isUpcomingChange: false, dashedName: advanced-trig-conics, helpCategory: General, challengeOrder: [ { id: 699e854b8f18cf77dfce5c1e, title: Solving Right Triangles }, { id: 699e85518f18cf77dfce5c1f, title: Law of Cosines }, { id: 699e85568f18cf77dfce5c20, title: Law of Cosines - Old Version }, { id: 699e855a8f18cf77dfce5c21, title: Law of Sines }, { id: 699e855e8f18cf77dfce5c22, title: Parabolas - Vertex, Focus, Directrix }, { id: 699e85648f18cf77dfce5c23, title: Ellipses }, { id: 699e85688f18cf77dfce5c24, title: Hyperbolas }, { id: 699e856c8f18cf77dfce5c25, title: Polar Coordinates }, { id: 699e85718f18cf77dfce5c26, title: Parametric Equations }, { id: 699e8ca68f18cf77dfce5c27, title: Difference Quotient } ] }几个要点blockLabel: lecture表明这是一个讲解型块blockLayout: challenge-list表示在前端以挑战列表形式逐题推进challengeOrder数组决定了学习顺序Ellipsesid 与 md 文件 frontmatter 中的 id 完全一致排在“Parabolas”之后、“Hyperbolas”之前形成圆锥曲线的连续讲解链新增一个视频挑战因此需要两件事在curriculum/challenges/english/blocks/block/下编写 md 文件并在此块 json 的challengeOrder中以正确的 id 注册本块 id 前缀均为699e85...说明同块挑战是批量生成同一批次的。四、Schema 校验video 挑战字段的硬性约束课程仓库用 Joi 对所有挑战数据做严格校验核心实现在 challenge-schema.js。与本挑战直接相关的约束有1. challengeType 是 0–33 的整数challenge-schema.js#L180challengeType: Joi.number().min(0).max(33).required(),2. 类型 11 video由共享包统一定义challenge-types.ts#L13const video 11;同一文件还声明了该类型的视图与提交方式viewTypes中[video]: generic走通用挑战渲染视图challenge-types.ts#L117submitTypes中[video]: tests完成后按测试类流程提交challenge-types.ts#L159并且 video 属于hasNoSolution列表——视频挑战没有可展示的标准代码解法。3. video 挑战专属字段challenge-schema.js#L293-L313// video challenges only: videoId: Joi.when(challengeType, { is: [challengeTypes.video], then: Joi.string().required() }), videoLocaleIds: Joi.when(challengeType, { is: challengeTypes.video, then: Joi.object().keys({ espanol: Joi.string(), italian: Joi.string(), portuguese: Joi.string() }) }), bilibiliIds: Joi.when(challengeType, { is: challengeTypes.video, then: Joi.object().keys({ aid: Joi.number().required(), bvid: Joi.string().required(), cid: Joi.number().required() }) }),也就是说videoId是 video 挑战的必填项本文件的AwBM2AMwfu8正因此必需videoLocaleIds可按西语/意语/葡语覆盖默认视频bilibiliIdsaid/bvid/cid 三元组为中文环境提供备用播放源。本 Ellipses 挑战只声明了默认videoId未配置多语言覆盖。4. 题目结构challenge-schema.js#L89-L102const questionJoi Joi.object().keys({ text: Joi.string().required(), answers: Joi.array() .items( Joi.object().keys({ answer: Joi.string().required(), feedback: Joi.string().allow(null), audioId: Joi.string().allow(null) }) ) .required() .unique(answer), solution: Joi.number().min(1).max(Joi.ref(..answers.length)).required() });以及 questions 数组对 video 类型要求至少 1 题challenge-schema.js#L314-L322questions: Joi.when(challengeType, { is: [challengeTypes.video, challengeTypes.multipleChoice, challengeTypes.theOdinProject], then: Joi.array().items(questionJoi).min(1).required(), otherwise: Joi.array().length(0) }),对照本文件--answers--中四个答案文本互不相同满足unique(answer)--video-solution--的1满足solution必须在[1, answers.length]区间内。答案条数不固定schema 只要求非空且唯一但solution越界会直接校验失败——这是编写此类挑战时最容易踩的坑。五、前端渲染链路videoId 如何变成播放器从源码结构看video 挑战viewType 为generic由通用视图 show.tsx 渲染其中引用了视频播放器组件 video-player.tsx。关键逻辑if (bilibiliIds [chinese, chinese-traditional].includes(clientLocale)) { const { aid, bvid, cid } bilibiliIds; bilibiliSrc //player.bilibili.com/player.html?aid${aid}bvid${bvid}cid${cid}; } if (videoLocaleIds) { const localeId videoLocaleIds[clientLocale as keyof VideoLocaleIds]; videoId localeId || videoId; }即优先按客户端语言选择 B 站 iframe仅中文/繁体中文环境且配置了bilibiliIds时或对应语言版本的 YouTube 视频 ID否则回退到默认videoId通过react-youtube以rel: 0禁用相关视频推荐嵌入播放video-player.tsx#L66-L80。另外播放倍速会被写入本地存储fcc-yt-playback-rate学习进度以“视频加载完成 题目答对”为准。对 Ellipses 挑战来说它只声明了默认videoId: AwBM2AMwfu8且无bilibiliIds因此所有语言环境都嵌入同一个 YouTube 视频用户观看后答对那道定义选择题即完成本挑战并在 advanced-trig-conics.json 定义的学习序列中解锁下一题Hyperbolas。六、小结一个视频挑战文件的完整契约综合 frontmatter、schema 与渲染端一个可被课程管线接受的 video 挑战以 ellipses-video.md 为范本需要满足frontmatter 提供合法 ObjectIdid、challengeType: 11、必填videoId、连字符式dashedName正文含# --description--、# --questions--至少一题选项互不相同、## --video-solution--1 起的序号不超过选项数在所属块的结构 jsoncurriculum/structure/blocks/*.json的challengeOrder中按 id 注册且 id 与文件内一致可选地配置videoLocaleIdsespanol/italian/portuguese 视频与bilibiliIdsaid/bvid/cid做多语言播放源。这份文件本身承载的数学内容——椭圆“两焦点距离和为定值”的定义、标准方程与特征识别——则是 freeCodeCamp 在数学课程线中用“视频讲解 概念选择题”这一最轻量的挑战形态来传递知识点的典型样本。【免费下载链接】freeCodeCampfreeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free.项目地址: https://gitcode.com/GitHub_Trending/fr/freeCodeCamp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

多传感器数据融合的实现

多传感器数据融合的实现

多传感器数据融合的实现需要系统化的流程和多种技术策略的结合,具体步骤如下:

📅 2026/10/27 11:43:16
将传感器采集的实时数据送入类deepseek中进行特征提取与数据分析

将传感器采集的实时数据送入类deepseek中进行特征提取与数据分析

要将传感器采集的实时数据送入类似DeepSeek的深度学习模型进行特征提取与数据分析,可参考以下流程,并结合多篇研究证据进行技术实现:

📅 2026/10/10 0:13:54
【C#实现西门子S71200与S71500控制器优化DB块符号访问】

【C#实现西门子S71200与S71500控制器优化DB块符号访问】

C#实现西门子S71200与S71500控制器优化DB块符号访问 本文基于 S7CommPlusDriver 代码库撰写,完整梳理从协议栈、符号寻址算法(SymbolCrc LID)、在线符号浏览,到「离线工程浏览与在线浏览无缝统一」的架构设计与验证方法。文中所有…

📅 2026/10/12 5:29:29
MORE NEWS

更多资讯

📰

n8n实现电商订单全自动处理工作流设计

1. 电商订单全自动处理工作流概述 电商订单处理是每个电商企业日常运营中最核心也最繁琐的环节之一。传统的人工处理方式不仅效率低下,还容易出错。n8n作为一款开源的工作流自动化工具,可以帮助我们构建一个完整的电商订单全自动处理系统。 我最近为一个…

📰

SAM一键抠图:零样本图像分割实战指南

1. 项目概述:为什么“SAM抠图”正在改变图像处理的工作流 最近在好几个设计协作群和开发组里,都看到有人甩出一张边缘毛茸茸的猫耳朵、一根根分明的蒲公英绒毛、甚至玻璃杯上反光水渍的局部截图,配文就一句:“SAM一划,…

📰

SQL Server数据库系统加固规范:11条安全基线落地与验收

简介:《Sql Server数据库系统加固规范》是一份面向数据库管理员、安全运维与合规检查人员的安全基线文档,主要用于指导 SQL Server 实例在账号、认证、日志、通信及主机层面的加固落地。压缩包内含 1 个 doc 文件,大小约 1.73MB,以…

📰

JMeter二次开发实战:自定义组件与性能优化

1. 为什么需要JMeter二次开发 JMeter作为一款开源的性能测试工具,其标准功能已经能够满足大多数基础测试需求。但在企业级应用场景中,我们经常会遇到以下痛点: 测试报告需要与企业内部系统集成 需要支持特殊的协议或数据格式 测试流程需要…

📰

SQL Server数据库加固:账号口令基线与权限最小化检查表

简介:面向数据库管理员、安全运维与等保测评人员的 Sql Server 安全加固规范文档,针对账号权限过大、认证策略薄弱、日志缺失和传输链路暴露等常见风险,给出可对照执行的安全基线。压缩包内为 1 个 doc 文件,约 1.73MB&#xff0c…

📰

2025 AI安全动荡期:70%攻击源自供应链,如何加固技术栈?

简介:这份PDF资料聚焦Gartner对2025年AI驱动网络安全新挑战的预测,面向安全与风险管理领导者、应用安全工程师及关注AI治理的从业者,帮助其理解AI动荡期的攻击面变化与应对思路。内容围绕软件供应链与技术栈中毒、早期GenAI落地受挫、AI代理漂…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬