跳到主要内容
科目

GAC 计算机

提示

GAC 计算机是一条三级阶梯。GAC005 讲的是如何用计算机完成学术工作,包括搜索素养、协作写作、项目管理、演示与视频。GAC011 用 HTML、CSS 与 JavaScript 真正建成并发布一个网站。GAC017 则深入其背后,涉及后端编程、数据库、SQL 以及数据科学入门。

这里没有任何内容是在卷面上作答的。每个模块都以你产出的作品来评定:一套幻灯片、一个网站、一个包含多张表的数据库、一份对真实数据集的分析,因此工作在计算机上完成,并以文件形式提交。

这三个模块是字面意义上层层递进的。你在 GAC011 中设计的网站,正是 GAC017 要为其添加后端和数据库的对象,所以早期草率的原型会在后面付出时间代价。

呈现与代码同样重要。模块中同时列出了设计目标与沟通目标,一个能运行却让人无从下手的页面照样会失分。

你可以在本站的代码练习区直接运行 HTML、CSS、JavaScript 与 SQL 练习,再把同样的方法用到你自己的考核项目中。

  • 1

    GAC005 计算机 I:学术学习计算机入门

    观看课程
    1.1

    这个模块讲什么,如何评分

    GAC005不是一门编程课程。它是关于使用计算机出色地完成学术工作: 找到你可以信任的来源,与他人写作,运行一个小项目,并 展示结果。

    所有内容都根据你的产出进行评估。典型的一组任务是搜索和写作任务 (search and writing task), 一个带有演示文稿的小组项目 (group project)、一个视频 (video) 和持续的课程作业 (coursework) 平时作业。没有书面考试,所以你提交的文件构成了全部分数。

    • 工作是根据工件和过程来评判的。保留草稿和笔记;小组项目 的部分评分基于你对它的贡献。
    • ⚠ 学术诚信 (academic integrity) 适用于媒体也适用于文本。从网络上获取的图片、图表或 片段需要来源,以及允许使用的许可证。
    词汇 训练
    English 中文 拼音
    group project/ɡruːp ˈprɒdʒekt/ 小组项目 xiǎo zǔ xiàng mù
    video/ˈvɪdɪəʊ/ 视频 shì pín
    coursework/ˈkɔːsjuːɜːk/ 平时作业 píng shí zuò yè
    Academic integrity/ˌækəˈdemɪk ɪnˈteɡrɪti/ 学术诚信 xué shù chéng xìn
    1.1

    搜索素养

    教学大纲

    GAC005 计算机 I:学术学习中的计算机导论(一级)第 6 单元中的第 1 个单元。该模块教学时长约为 40 学时,另需 20 小时自主学习,在培训中心进行评估并由 ACT 进行质量审核——无外部考试。

    模块目标: 完成本模块后,学生应能自信且合乎伦理地使用信息技术进行个人及协作式正式写作;并能有效利用互联网开展学术研究。具体而言,学生将能够从互联网上获取、导航和下载信息,以增强学术研究、写作及展示能力。

    本单元旨在达成的模块成果:

    学习目标 GAC005.1: 理解、评估并区分现有及新兴技术,以便使用、存储和保护信息。

    学习目标 GAC005.2: 利用互联网进行研究、解读,并以互动和合乎伦理的方式管理学术项目。

    来源:Cambridge International 教学大纲

    任何人都可以找到页面。正在评估的技能是找到一个你可以捍卫的来源。

    • 使用关键词 (keywords) 进行搜索,而不是句子。挑选好答案中必须出现的 名词,去掉其余一切。
    • 运算符 (operators) 缩小搜索范围:引号强制精确短语,减号 排除一个词,而site:将结果限制在一个域内。
    • 在使用之前判断一个来源。权威性 (authority) 询问是谁写的以及他们知道什么; 时效性 (currency) 询问它有多旧;偏见 (bias) 询问作者想让你怎么想。
    • 一手资料 原始材料,例如实验报告。 二手资料 描述或解释一手资料,例如关于该报告的新闻文章。 报道。
    • 搜索结果经过排名,未经核实 — 页面中的位置并不能说明其准确性。 准确性。

    示例解析。 问题是电动汽车是否总体上产生的二氧化碳比汽油车少。搜索该句子会返回观点类页面。搜索关键词 lifecycle emissions electric vehicle comparison 会返回研究报告,并添加 lifecycle emissions electric vehicle comparison 返回研究,并添加 site:gov将其缩小至作者和方法均明确的政府报告。第二 搜索并不更聪明,它更具体地定义了可接受答案的外观。

    词汇 训练
    English 中文 拼音
    keywords/ˈkiːwɜːdz/ 关键词 guān jiàn cí
    Operators/ˈɒpəreɪtəz/ 运算符 yùn suàn fú
    Authority/əˈθɒrɪti/ 权威性 quán wēi xìng
    currency/ˈkʌrənsi/ 时效性 shí xiào xìng
    bias/ˈbaɪəs/ 偏见 piān jiàn
    primary source/ˈpraɪməri sɔːs/ 一手资料 yī shǒu zī liào
    secondary source/ˈsekəndəri sɔːs/ 二手资料 èr shǒu zī liào
    cloud document/klaʊd ˈdɒkjuːmənt/ 云端文档 yún duān wén dàng
    Version history/ˈvɜːʃn ˈhɪstəri/ 版本历史 bǎn běn lì shǐ
    Comments/ˈkɒments/ 批注 pī zhù
    suggestions/səˈdʒestʃnz/ 建议模式 jiàn yì mó shì
    structure/ˈstrʌktʃə/ 结构 jié gòu
    style/staɪl/ 文体 wén tǐ
    scope/skəʊp/ 范围 fàn wéi
    Milestones/ˈmaɪlstəʊnz/ 里程碑 lǐ chéng bēi
    roles/rəʊlz/ 分工 fēn gōng
    team contract/tiːm ˈkɒntrækt/ 团队协议 tuán duì xié yì
    dependencies/dɪˈpendənsiz/ 依赖关系 yī lài guān xì
    message/ˈmesɪdʒ/ 信息 xìn xī
    Bullet points/ˈbʊlɪt pɔɪnts/ 要点 yào diǎn
    Contrast/ˈkɒntræst/ 对比度 duì bǐ dù
    sans-serif/sænz ˈserɪf/ 无衬线 wú chèn xiàn
    chart/tʃɑːt/ 图表 tú biǎo
    table/ˈteɪbl/ 表格 biǎo gé
    reference list/ˈrefrəns lɪst/ 参考文献列表 cān kǎo wén xiàn liè biǎo
    aloud/əˈlaʊd/ 出声 chū shēng
    Signposting/ˈsaɪnpəʊstɪŋ/ 提示语 tí shì yǔ
    Eye contact/aɪ ˈkɒntækt/ 眼神交流 yǎn shén jiāo liú
    questions/ˈkwestʃnz/ 提问 tí wèn
    Animation/ˌænɪˈmeɪʃn/ 动画 dòng huà
    storyboard/ˈstɔːribɔːd/ 分镜脚本 fēn jìng jiǎo běn
    script/skrɪpt/ 脚本 jiǎo běn
    Audio quality/ˈɔːdɪəʊ ˈkwɒlɪti/ 音质 yīn zhì
    licensed/ˈlaɪsənst/ 授权 shòu quán
    Export/ˈekspɔːt/ 导出 dǎo chū
    1.2

    协作写作

    教学大纲

    《GAC005 计算机 I:学术学习中的计算机导论》(一级)第 6 个单元中的第 2 个单元。该模块教学时长约为 40 课时,另需 20 小时自主学习,由教学中心进行评估并由 ACT 进行 moderation(质量审核/调节),无外部考试。

    本单元致力于实现的模块成果:

    学习目标 GAC005.3: 使用文字处理软件创建、修订和发布学术文档。

    学习目标 GAC005.5: 使用开源平台协作创建和共享学术文档。

    来源:Cambridge International 教学大纲

    共同写作是一种正常的工作方式,本模块评估你如何完成这项工作。

    • 云端文档 保持一份所有人都在编辑的实时副本,从而彻底消除 "final_v3_really_final" 问题全部。
    • 版本历史 记录谁在何时更改了什么。它保护你:即使文件看起来像是一个人的声音,你的贡献也是可见的。 即使文件看起来像单一声部,其贡献仍然可见。
    • 批注 提议更改而不直接执行;建议模式 做出更改,由所有者接受或拒绝。使用它们而不是覆盖他人的段落。 所有者可以接受或拒绝。请使用它们来替换他人的段落,而不是覆盖。
    • 在任何人开始写作之前确定结构。按章节拆分文档是可行的;按句子拆分则不行。 按句子拆分也不行。
    • 保持统一的文体:一开始就确定人称、时态和拼写,并指定一个人进行最终审读。 人物最终阅读。
    1.3

    项目管理

    教学大纲

    这是 GAC005 计算机 I:学术学习中的计算机导论(一级)课程 6 个单元中的第 3 个单元。该模块的教学时长约为 40 课时,外加 20 课时的自主学习,由教学中心进行评估并由 ACT 进行 moderation(质量审核)——没有外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC005.2: 利用互联网进行研究、解读,并以互动和合乎道德的方式管理学术项目。

    学习目标 GAC005.5: 使用开源平台协作创建和共享学术文档。

    来源:Cambridge International 教学大纲

    小组项目往往因组织不善而失败,而非因能力不足。

    • 范围 声明说明项目将做什么以及不做什么。大多数超支始于未书面记录的额外任务。 一项未成文的附加内容。
    • 里程碑 是带有日期的检查点。它们将“我们有三周时间”转化为你可以尽早发现滞后并及时修正的事情。 一个你足够早就能补救的滞后项。
    • 将分工分配给个人,而不是将任务分配给整个小组。由每个人负责的任务实际上无人负责。 没有人。
    • 团队协议 记录小组如何开会、做决定,以及如何处理未能交付成果的成员。在大家关系融洽时写下它是关键所在。 无法实现。在大家关系融洽时写作的意义在于此。
    • 跟踪依赖关系:幻灯片演示文稿不能在数据收集完成之前完成,因此数据的截止日期更早。 已收集,因此数据具有更早的截止日期。

    示例解答。 一项为期四人的项目,用于调查并展示学生的交通习惯,截止日期 在第 6 周。倒推:在第 6 周排练,在第 5 周制作幻灯片,在第 4 周进行分析, 在2至3周收集回复,在1周编写问题。问题是 风险最高的项目,因为下游的所有内容都依赖于它们,因此它们由 整个群体,除了1这一周外,其他时间都不做。

    1.4

    制作有效的演示文稿

    教学大纲

    这是 GAC005 计算机 I:学术学习中的计算机入门(一级)课程第6个单元中的第4个单元。该模块教学时长约为40学时,另加20小时自主学习时间,考核由教学中心进行并由ACT进行协调——无外部考试。

    本单元旨在帮助达成以下模块成果:

    学习目标 GAC005.4: 使用演示软件制作学术口头演示文稿。

    来源:Cambridge International 教学大纲

    演示文稿的评判标准在于观众是否理解,而不是屏幕上有多少内容。

    • 每页幻灯片只传达一个信息。如果一页幻灯片需要两句话来总结,那就应该分成两页。
    • 幻灯片支持演讲者。要点 是提示,而不是脚本,大声朗读它们是丢分的最常见原因。 大声朗读是丢分最常见的方式。
    • 对比度 和大小决定了后排学生能否看清:深色文字配浅色背景,且 最少 24 个点,以及一种 无衬线 字体。
    • 当数据的形状是重点时使用图表,当确切数值是重点时使用表格。图表始终需要轴标签和单位。 值。图表必须包含轴标签和单位。
    • 在材料出现的幻灯片上引用来源,并在末尾保留完整的参考文献列表。 末尾的参考文献列表。
    1.5

    提升你的演示

    教学大纲

    GAC005 计算机I:学术学习中的计算机导论(一级)课程第6个单元中的第5单元。 该模块授课时长约为40学时,另需20学时自主学习。考核由教学中心进行,并由ACT(澳大利亚教育委员会)进行 moderation(资格认证/审核)——无外部考试。

    本单元旨在达成的模块成果:

    学习目标 GAC005.4: 使用演示软件制作一份学术口头演示文稿。

    来源:Cambridge International 教学大纲

    一旦内容正确,剩下的就是表达方式。

    • 出声 练习,站立姿势,并使用计时器。默读会掩盖那些你实际上无法说出的每一个句子。 实际上无法说明。
    • 提示语 告诉听众他们目前所在的位置:“首先”、“这样做的原因是”、“总结一下”。在第二语言中,它的作用比任何幻灯片动画都要大。 "总之"。在第二语言中,它的作用比任何幻灯片动画都大。
    • 眼神交流 和节奏比词汇量更重要。通常来说,慢一点总是更好的。
    • 通过列出你最不想被问到的三个问题并准备好答案,来为提问做准备。 回答它们。
    • 动画 只有一个合法用途:逐步揭示复杂图表的各个部分。其他所有动画都会分散注意力。 其他一切都会分散注意力。
    1.6

    视频制作

    教学大纲

    这是 GAC005 计算机 I:学术学习中的计算机导论(一级)课程第 6 单元(共 6 个单元)。该模块教学时长约为 40 学时,外加 20 小时自主学习时间。考核由教学中心负责并由 ACT 进行调节——没有外部考试。

    本单元旨在实现以下模块成果:

    学习目标 GAC005.1: 理解、评估并区分可用的及新兴技术,以用于信息的处理、存储和保护。

    学习目标 GAC005.4: 使用演示文稿软件制作学术口头展示内容。

    来源:Cambridge International 教学大纲

    短视频的评估与其他任何学术产品一样:计划周密、来源可靠且经过剪辑。

    • 分镜脚本 在录制前规划每个镜头:屏幕上有什么、说什么、持续多长时间。这是区分一小时剪辑和五分钟剪辑的关键。 持续的时间。它是一小时编辑与五小时之间的区别。
    • 脚本 确保两分钟的视频保持在两分钟内。即兴发挥需要三倍的时间,且表达的内容更少。 时间更长且表述更简洁。
    • 音质 比画质更重要。安静的房间胜过昂贵的相机,永远如此。 相机,每次。
    • 仅使用授权 材料:发布在允许重用的许可证下的图像和音乐,并在屏幕或描述中署名。 重用,需在屏幕或描述中注明。
    • 导出 为通用格式并以合理的大小保存,并在提交前检查它在非你自己的机器上是否能播放。 在提交之前,请确保不属于您的内容。

    例题。 关于塑料回收的两分钟解释视频。故事板有八个 约十五秒的镜头。镜头 3 是一张显示某城市实际回收情况的图表,出现在屏幕上 持续十二秒,并附有一句口述句子,来源标注在角落。因为 故事板先确定时长,剧本根据时间编写,而非 视频被裁剪以适应已经过长的剧本。

    Additional notes PDF

    Choose tools for the actual academic task

    你们的小组正在调研学校交通问题。一名成员使用手机,另一名成员离线工作,还有一名成员需要大字体显示。最新的应用程序可能并不适合他们。

    这些补充笔记旨在教授实用的 GAC005 技能。请将其放在原始讲义旁边。请遵循你所在中心的当前任务要求、所需软件及提交规则。

    文字处理软件 帮助你创建和修订格式化的文档。共享编辑器可以支持协作写作。演示文稿软件用于组织演讲的视觉辅助材料。视频软件则结合录制的声音和图像。应根据具体任务选择工具,而不是试图用一种工具解决所有问题。

    比较访问权限、格式、成本、隐私保护、离线使用功能及有益的阅读特性。在实际设备上测试标题、表格和批注,包括转换之后。

    对于一项新的或 新兴技术,首先在一个小型且非敏感的任务中进行测试。检查谁负责运行它、它存储了哪些信息以及你可以导出什么内容。在工具之外保留一份可用的副本。即使自动生成的回答看起来流畅自然,仍需核查其来源。请遵守中心关于允许的帮助范围和致谢方式的规定。

    Store, protect and recover your information

    将与项目相关的文件放入名称清晰的文件夹中。将资料来源、工作草稿和提交副本分开存放。像 transport_report_2026-10-02.odt 这样的命名方式比 new_final_final.doc 更清晰。小组内应始终使用统一的命名系统。

    访问权限 控制谁能查看或修改信息。仅向真正需要编辑权限的人开放编辑权限。公开链接可能会让小组以外的人接触到内容。发送文件前请检查分享列表。根据中心规定,将参与者详细信息与报告分开存储。不要因为表单允许就收集识别信息。

    尽可能使用强密码和 多因素认证。这意味着使用不止一种类型的证据来确认你的身份。例如,密码加上另一台设备上的验证码就是一个例子。不要通过共享登录凭据来共享文档。在打开意外消息中的登录链接之前,请先核实该消息的真实性。离开时更新受支持的软件并锁定设备。

    同步 保持各副本一致。备份 提供独立的恢复副本。两者不同:同步功能也可能复制误删的内容。请保留一份独立的、经允许的备份,并测试能否还原一个无害的示例文件。版本历史有助于恢复更改,但其保留时间和详细程度取决于具体服务。

    案例解析。 Mei 删除了一个段落,该更改随即同步到了每个人的设备上。反复下载当前文档只会持续保留这一删除操作。小组成员查阅版本历史,恢复了正确的段落并验证了结果。如果无法获取版本历史,单独的早期备份可能会有所帮助。但这两种方法都不能免除对最终文件进行核查的责任。

    Create and revise an academic document

    从中心的报告结构开始做起。针对本次练习任务,请使用包含标题、研究问题、方法、研究结果、讨论和参考文献的结构。在撰写正文前创建一个简短大纲。研究过程中请保持来源记录:包括作者、标题、日期、出处及其支持的论点。

    段落样式 应用一套命名的格式选项。主部分使用标题 1,子部分使用标题 2。正文段落使用普通文本样式。单纯的大号加粗文字可能看起来像标题,但实际上并未被识别为标题。不要为了缩小字号而跳过标题层级。

    例如,LibreOffice Writer 提供了段落样式。将光标置于标题段落中,应用其对应的命名标题样式。当你希望同一层级的所有标题都发生改变时,只需修改该样式即可。页面样式控制页面布局,包括页边距、页眉和页脚。菜单名称可能因版本或语言而异;建议使用已安装程序的“帮助”功能。

    通过表格工具插入一个小表格。为每一列设置清晰的标题,并在必要时包含单位。在单元格中输入数据,而不是用重复的空格来对齐。将图表放置在解释它的文本附近。按要求添加有意义的标题及其来源。除非图表有助于解释数据,否则表格不需要附带图表。

    当新章节必须在新页开始时,使用分页符。不要反复按回车键来推挤文本向下。使用程序的页码字段添加页码。如果简报要求目录,请基于标题样式生成,并在编辑后更新它。

    先修改意义再调整外观。检查每个论点是否有证据支持,方法是否回答了研究问题,以及局限性是否表述清晰。然后检查拼写、人名、单位和参考文献。自动拼写建议可能会错误地更改专业术语。修正后的句子请亲自通读一遍。

    Collaborate on an open-source platform

    开源 指软件源代码在许可协议下可供使用、学习和修改。这并不意味着所有托管服务都是免费、私密或向所有人开放的。在线工具并不自动等同于开源软件。

    LibreOffice Writer 是一款开源桌面文字处理器,适用于个人文档处理。若需进行浏览器内的协作编辑,中心可提供配置合适的 Nextcloud 服务及办公编辑器。Nextcloud 的文档说明了协作办公编辑及所需的文档服务器集成方法。请使用由您所在中心实际启用的编辑器;不要假设任何 Nextcloud 安装都包含此功能。

    使用非敏感样本文本进行练习。每位小组成员使用自己的账户登录。所有者创建一个共享工作文档并授予小组适当的权限。商定大纲、角色和日期。添加一条注释说明拟议的更改。另一名成员予以回复。如果已安装的编辑器支持审阅或建议功能,请加以利用;否则,可在注释中记录提案。

    接受更改前共同审查内容。检查当前文档、注释及可用历史记录。保留一份简短的决策记录:记录了哪些更改、原因、谁进行了核查以及哪些部分尚未完成。历史记录有助于展示活动情况,但小组仍需解释每位成员的实际工作。

    如果离线编辑产生了两个副本,请勿静默选择最新文件。比较更改的部分并合并预期的工作成果。确认没有成员的段落或源记录丢失。然后商定哪个共享副本是当前版本。

    Export, check and share a submission copy

    保留一个 可编辑文件 以便日后更正。 PDF 格式通常用于分享稳定的页面布局。导出 PDF 不能替代可编辑源文件。请使用中心要求的格式。

    检查标题、字体大小、对比度、表格标题及有用的图像描述。如有条件,运行无障碍检查,然后自己阅读一遍文档。

    导出一份示例 PDF 并打开该导出文件。逐页检查:缺失的文字、损坏的字符、空页、被裁剪的表格及正确的页码。搜索预期句子以验证文本是否存在。请一名小组成员在其设备上打开提交副本。仅在您的电脑上能正常运行的文件是不合格的。

    将正确的提交副本分享给目标受众。使用实际接收者的授权账户或中心的批准流程检查访问权限。私人草稿应单独保存。记录已提交的文件名和日期。事后更正源文件不会改变已经发送的 PDF。

    Practise a complete academic workflow

    原始练习简报。 准备一份简短的小组报告和一个关于学校交通的三分钟演讲。使用经批准的现有信息,或在获得必要许可的情况下收集新反馈。此练习简报并非正式评估。

    1. 定义您能研究的问题和小组。记录来源及其局限性。
    2. 测试工具、标题、表格和共享注释。设置适当的权限。
    3. 商定角色和日期。起草包含标题、证据和参考文献的报告。
    4. 共同修订并记录决策。保留可编辑文件并测试恢复功能。
    5. 制作带有清晰观点的幻灯片。口头解释证据和局限性。
    6. 配合计时器进行排练。如果需要视频,请检查镜头、声音和媒体权限。
    7. 在另一台设备上检查导出文件。提交所需文件并保留小组记录。

    完成笔记仅是准备工作,不能作为已完成这些实践任务的证据。请保留中心要求的实际文件和修订证据。

    Practice and explained answers

    问题。 1. 仅持有电话的成员无法编辑格式。您应该测试什么? 2. 为什么同步不足以提供恢复保护? 3. 为什么要使用标题样式? 4. 在线编辑能否证明是开源软件? 5. 两份离线草稿包含不同的新增段落。应该怎么做? 6. 修复源文件是否会改变已经发送的 PDF? 7. 哪些证据表明工作流程已完成?

    解释性答案。 1. 在实际设备上测试编辑、转换和分享功能。 2. 删除操作可能会扩散;请使用单独的授权备份并测试恢复功能。 3. 命名样式提供公认的结构和一致的修订;它们可以支持导航和目录列表。 4. 不能;请检查许可证和源代码可用性。 5. 比较并合并预期的更改,然后商定当前副本。仅凭最新时间戳是不够的。 6. 不能;导出并检查更正后的 PDF,然后遵循更正程序。 7. 显示源记录、可编辑报告、修订记录、访问检查、测试过的恢复副本、最终导出文件和排练演示。

  • 2

    GAC011 计算机 II:网页开发

    观看课程
    2.1

    这个模块讲什么,如何评分

    GAC011 是你构建并发布真实网站的地方。六个单元带你从纸面上的设计出发,经过 HTML、CSS 和 JavaScript,直到网站上线及推广计划。 通过 HTML、CSS 和 JavaScript 到一个已发布的网站以及推广该网站的计划。

    所有内容均根据产出物进行评估:分镜脚本 和设计、网站本身以及社交媒体策略,加上课程作业。没有书面考试。 本身,以及社交媒体策略,加上课程作业。没有笔试。

    • 设计与代码同等重要。 该模块的成果名称包括美学、布局、导航和可用性,与脚本编写并列。 以及脚本编写中的可用性和易用性。
    • ⚠ 你在此处设计的网站是 GAC017 提供后端和数据库的对象。现在的薄弱计划会在下一个模块中耗费时间。 现在将在下一个模块中花费时间。

    你可以在本网站的代码沙箱中运行本模块中的所有示例,那里的 HTML、CSS 和 JavaScript 参考资料比这些笔记更深入。 JavaScript 的引用机制比本笔记所涵盖的内容更深入。

    词汇 训练
    English 中文 拼音
    CSS/ˌsiː es ˈes/ 层叠样式表 céng dié yàng shì biǎo
    selector/sɪˈlektə/ 选择器 xuǎn zé qì
    declaration/ˌdekləˈreɪʃn/ 声明 shēng míng
    box model/bɒks ˈmɒdl/ 盒模型 hé mó xíng
    Responsive design/rɪˈspɒnsɪv dɪˈzaɪn/ 响应式设计 xiǎng yìng shì shè jì
    2.1

    网站设计

    教学大纲

    GAC011 计算II:网页开发(第2级)6个单元中的第1单元。该模块教学时长约为40课时,另加20小时自主学习,在教学中心进行评估并由ACT进行 moderation(无外部考试)。

    模块目标: 完成本模块后,学生应能够运用网页开发语言知识来设计和创建基础网站。他们还将开始编写代码,以在网站上创建基础动态内容。此外,他们还将制定利用社交媒体推广网站的策略。

    本单元旨在实现的模块成果:

    学习目标 GAC011.1: 运用布局和组织的审美与形式概念设计有效网站,通过视觉组件实现有效传达。

    学习目标 GAC011.3: 将导航、可用性和书面内容的最佳实践融入设计中,创建使用户易于获取所需信息的网站。

    来源:Cambridge International 教学大纲

    • 先在纸上开始。线框图 在不使用颜色的情况下显示结构,这是争论结构的唯一方法。 就结构进行争论。
    • 信息架构 是内容的放置位置:页面有哪些,以及访客在它们之间的路径。 由他们共同承担。
    • 视觉层次 告诉眼睛什么才是重要的——通过大小、粗细、间距和对比度,而不是通过装饰。 对比,而非通过装饰。
    • 为受众设计,并在选择任何内容之前明确他们的身份。
    2.2

    用 HTML 创建网站

    教学大纲
    • GAC011 计算机 II:Web 开发(二级)课程 6 个单元中的第 2 单元。该模块授课时长约为 40 课时,外加 20 课时的自主学习,在培训中心进行考核并由 ACT 进行 moderation——无外部考试。

    本单元旨在实现以下模块成果:

    学习目标 GAC011.2: 使用脚本语言创建并发布网站,以添加交互式组件。

    来源:Cambridge International 教学大纲

    • HTML 超文本标记语言标注的是意义而非外观。标题是<h1>,因为它就是一个 标题。
    • 元素 具有开始标签、内容和结束标签;属性 位于 开始标签。
    • 语义化元素 — <header>, <nav>, <main>, <article>, <footer> — 告诉 浏览器、搜索引擎和屏幕阅读器,了解区域是什么。
    • 每张图片都需要替代文本。它是盲人访客听到的内容,也是搜索引擎 引擎读取。
    词汇 训练
    English 中文 拼音
    storyboard/ˈstɔːribɔːd/ 分镜脚本 fēn jìng jiǎo běn
    social media strategy/ˈsəʊʃl ˈmiːdiːə ˈstrætədʒi/ 社交媒体策略 shè jiāo méi tǐ cè lüè
    wireframe/ˈwaɪəfreɪm/ 线框图 xiàn kuāng tú
    Information architecture/ˌɪnfəˈmeɪʃn ˈɑːkɪtektʃə/ 信息架构 xìn xī jià gòu
    Visual hierarchy/ˈvɪʒuːəl ˈhaɪərɑːki/ 视觉层次 shì jué céng cì
    HTML/ˌeɪtʃ tiː em ˈel/ 超文本标记语言 chāo wén běn biāo jì yǔ yán
    element/ˈelɪmənt/ 元素 yuán sù
    attribute/ˈætrɪbjuːt/ 属性 shǔ xìng
    Semantic elements/səˈmæntɪk ˈelɪmənts/ 语义化元素 yǔ yì huà yuán sù
    alt text/ɒlt tekst/ 替代文本 tì dài wén běn
    2.3

    用 CSS 美化网站

    教学大纲

    这是 GAC011 计算机 II:网页开发(二级)课程中 6 个单元的第 3 单元。该模块教学时长约为 40 学时,外加 20 小时自学,由教学中心进行评估并由 ACT 进行调节——没有外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC011.1: 运用版式和组织的布局美学及形式概念设计有效的网站,利用视觉组件实现有效传达。

    学习目标 GAC011.2: 使用脚本语言创建并发布网站,以添加交互式组件。

    来源:Cambridge International 教学大纲

    • CSS(层叠样式表)控制外观,将其与 HTML 分离正是其核心目的 分离。
    • 选择器 选择元素;声明 将属性设置为值。
    • 盒模型 解释布局:内容,然后是内边距,然后是边框,然后是外边距。
    • 响应式设计 使一个页面能在手机和笔记本电脑上工作,通常使用 灵活的宽度和一个媒体查询(media query)。

    例题。 在手机上过宽的卡片。

    修复方法不是固定像素宽度。设置 max-width,使卡片永远不会超出屏幕,让它 如果小于该值,则仅针对较小屏幕真正需要的更改添加媒体查询 需求,例如将两列合并为一列。

    首先设计灵活的情况,并将媒体查询视为例外,这就是“响应式”的含义。 "responsive" 的意思是。

    词汇 训练
    English 中文 拼音
    media query/ˈmiːdiːə ˈkwɪərɪ/ 媒体查询 méi tǐ chá xún
    2.4

    用 JavaScript 添加交互

    教学大纲

    GAC011 计算 II:Web 开发(二级) 6 个单元中的第 4 个单元。该模块授课时间约为 40 学时,另加 20 学时自主学习,在教学中心进行考核并由 ACT 审核——无外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC011.2: 使用脚本语言创建并发布网站,以添加交互式组件。

    来源:Cambridge International 教学大纲

    • JavaScript 在浏览器中运行,并在页面加载后更改页面。
    • DOM 是作为对象树的页面,你的代码可以读取和更改这些对象。
    • 事件 — 点击、提交、按键 — 触发你编写的函数。
    • 在此阶段保持简单:验证表单、切换菜单、过滤列表。一个失败的网站 当JavaScript失败时,是设计错误,而非编码错误。
    词汇 训练
    English 中文 拼音
    DOM/dɒm/ 文档对象模型 wén dàng duì xiàng mó xíng
    event/ɪˈvent/ 事件 shì jiàn
    function/ˈfʌŋkʃn/ 函数 hán shù
    2.5

    发布你的网站

    教学大纲

    《GAC011 计算机 II:网页开发》(二级)共6个单元中的第5单元。本模块教学时长约为40课时,另加20小时自主学习时间,由教学中心进行评估并由ACT进行 moderation(调节/审核),无外部考试。

    本单元旨在达成的模块成果:

    学习目标 GAC011.3: 融入导航、可用性和书面内容方面的最佳实践,设计能够使用户轻松获取所需信息的网站。

    学习目标 GAC011.4: 利用网站补充在其他媒介中开展的学术工作。

    来源:Cambridge International 教学大纲

    • 托管 Hosting 将您的文件放置在服务器上;域名 domain name 则引导访问者找到它们。
    • 托管 将你的文件放在服务器上;域名 将访问者指向这些文件。
    • 在发布前测试:每个链接,在手机、在非你自己的浏览器上。 调整大小。
    • ⚠ 检查您被允许发布的内容。您网站上的图片或字体需要获得许可 允许这样做,正如论文中的引用需要标注出处一样。
    词汇 训练
    English 中文 拼音
    Hosting/ˈhəʊstɪŋ/ 托管 tuō guǎn
    domain name/dəˈmeɪn neɪm/ 域名 yù míng
    Accessibility/ækˌsesəˈbɪlɪti/ 无障碍 wú zhàng ài
    2.6

    社交媒体营销

    教学大纲

    GAC011 计算机 II:网页开发(二级)第 6 单元中的第 6 个单元。该模块授课约 40 课时,外加 20 小时自学,由教学中心进行评估并由 ACT 进行 moderation —— 无外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC011.5: 利用社交媒体推广或查找网站。

    来源:Cambridge International 教学大纲

    • 在选择平台之前,确定受众和目标。"在社交媒体上" 不是客观题。
    • content plan(内容计划)写明你要发什么、多久发一次、由谁来写。
    • 指标 必须与目标相连:到达率、互动率和点击率 网站是不同的事物,其中只有一个是流量。
    • 测量,然后改变一项内容。同时改变所有内容会让你无法了解哪一项 更改已生效。
    词汇 训练
    English 中文 拼音
    content plan/ˈkɒntent plæn/ 内容计划 nèi róng jì huà
    Metrics/ˈmetrɪks/ 指标 zhǐ biāo
    Additional notes PDF

    A website should help its intended reader

    一份学校交通报告可能包含详细的方法和表格。其网站可为同学提供简短概览。该页面应帮助他们找到主要结果、检查方法并获取经批准的完整报告。

    这些单独的笔记增加了实用的GAC011工作。将其旁边的原始讲义保留在原处。遵循当前中心的简报要求,包括所需工具、深度和提交证据。

    原始实践简报。 使用虚构的交通数据为同学构建一个可读的页面。添加导航、表格和类别筛选器。规划该页面如何支持报告和简短演讲。不收集真实反馈。本地预览仅为练习,并非公开发布。

    绘制一个包含标题、引言、章节链接、发现、方法和页脚的线框图。为每个区域赋予明确的目的。访问者不应猜测按钮是改变当前页面还是打开另一份文档。使用有意义的文本(如“方法和局限性”),而不是“点击此处”。

    Build a complete HTML page

    字符编码 字符编码告诉浏览器如何读取文件的文本。UTF-8支持多种书写系统。视口设置有助于移动浏览器使用设备宽度。描述性标题有助于人们在标签中识别该页面。

    将以下完整示例保存为transport.html。在浏览器中打开该文件。它无需库、账户或网络请求即可运行。内置样式块使此第一个练习保持在一个文件中。后续项目可将这些样式移至单独的CSS文件并在head中链接它。

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>School transport: practice report</title>
    <style>
    :root { --page: #ffffff; --text: #172033; --line: #637083; --link: #164db2; }
    body.dark { --page: #080d17; --text: #e9eef7; --line: #8392a8; --link: #a8d2ff; }
    * { box-sizing: border-box; }
    body { margin: 0; background: var(--page); color: var(--text); font: 1.1rem/1.6 sans-serif; }
    header, main, footer { max-width: 48rem; margin: auto; padding: 1rem; }
    a { color: var(--link); }
    nav { display: flex; flex-wrap: wrap; gap: 1rem; }
    section { margin-block: 2rem; padding-block: 1rem; border-top: 1px solid var(--line); }
    button, select { font: inherit; padding: .4rem; background: var(--page); color: var(--text); border: 1px solid var(--line); }
    :focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
    table { width: 100%; border-collapse: collapse; }
    caption { text-align: left; margin-block: .5rem; }
    th, td { text-align: left; padding: .5rem; border-bottom: 1px solid var(--line); }
    [hidden] { display: none !important; }
    </style>
    </head>
    <body>
    <header>
    <h1>School transport</h1>
    <p>An original practice example. All counts are invented.</p>
    <nav aria-label="Report sections">
    <a href="#findings">Findings</a>
    <a href="#method">Method and limits</a>
    </nav>
    <div id="controls" hidden>
    <button id="theme" type="button">Use dark theme</button>
    <label for="mode">Show transport category</label>
    <select id="mode">
    <option value="all">All categories</option>
    <option value="walk">Walking</option>
    <option value="bus">Bus</option>
    <option value="cycle">Cycling</option>
    </select>
    </div>
    </header>
    <main>
    <section id="findings" aria-labelledby="findings-title">
    <h2 id="findings-title">Findings</h2>
    <p>In this invented group of 36 responses, bus travel has the largest count.</p>
    <table>
    <caption>Practice counts, not research findings</caption>
    <thead><tr><th scope="col">Main mode</th><th scope="col">Responses</th></tr></thead>
    <tbody>
    <tr data-mode="walk"><th scope="row">Walking</th><td>12</td></tr>
    <tr data-mode="bus"><th scope="row">Bus</th><td>18</td></tr>
    <tr data-mode="cycle"><th scope="row">Cycling</th><td>6</td></tr>
    </tbody>
    </table>
    <p id="status" role="status">3 transport categories shown.</p>
    </section>
    <section id="method" aria-labelledby="method-title">
    <h2 id="method-title">Method and limits</h2>
    <p>Each invented response has one main mode. The counts sum to 36.</p>
    <p>The table does not explain choices, travel distance or the whole school's habits.</p>
    <p>This page is a short companion to a report and oral presentation. An actual project should link its approved report and sources here.</p>
    </section>
    </main>
    <footer><p>GAC011 practice: no responses are collected or sent.</p></footer>
    <script>
    const controls = document.querySelector("#controls");
    const mode = document.querySelector("#mode");
    const rows = [...document.querySelectorAll("tbody tr")];
    const status = document.querySelector("#status");
    const theme = document.querySelector("#theme");
    mode.addEventListener("change", () => {
      let shown = 0;
      rows.forEach(row => {
        row.hidden = mode.value !== "all" && row.dataset.mode !== mode.value;
        if (!row.hidden) shown += 1;
      });
      status.textContent = `${shown} transport ${shown === 1 ? "category" : "categories"} shown.`;
    });
    theme.addEventListener("click", () => {
      const dark = document.body.classList.toggle("dark");
      theme.textContent = dark ? "Use light theme" : "Use dark theme";
    });
    controls.hidden = false;
    </script>
    </body>
    </html>
    

    HTML提供了JavaScript运行前的可读内容。href="#method"链接指向具有id="method"的元素。ID在页面上必须唯一。错误的ID会破坏该链接,即使标签看起来正确。

    表格的标题说明了数字的含义。列和行标题描述了单元格。虚构的值为12、18和6,给出了36个响应。公交车的数量最大。这些数量并不能告诉我们人们选择某种交通方式的原因。

    Explain and adapt the CSS

    一个CSS自定义属性 自定义属性存储可重用的值,例如颜色。示例使用了共享的页面、文本、边框和链接颜色。深色类同时更改这些值。在深色模式下,文本区域和控制使用相同的页面颜色。边框和间距用于分隔各部分。

    通用box-sizing规则使指定尺寸包含内边距和边框。阅读区域随窗口增大,但在48rem处停止。当空间受限时,导航可以换行。灵活的宽度通常可以在不使用媒体查询的情况下解决第一个布局问题。

    :focus-visible轮廓帮助键盘用户找到当前控件。不要因为可见就移除它。链接保留下划线。表格标题和足够的对比度有助于读者理解数据。实际图像需要与其用途相适应的文本:有意义的信息需要有用的描述;纯装饰性图像可以使用空的alt文本。

    适配。 更改页面标题和引言以适用于另一个经批准的学术主题。保持清晰的标题顺序。尝试窄窗口和放大文本。如果稍后添加两列,决定它们应该在哪里堆叠并测试合适的媒体查询。不要添加固定宽度导致手机横向滚动。

    Trace the JavaScript interaction

    一个事件监听器 事件监听器在其事件发生时运行代码。示例监听选中的更改。mode.value给出选中值。每一行的data-mode属性在JavaScript中变为row.dataset.mode。

    当选择了特定类别且该行不匹配时,该行被隐藏。选择all会使所有行可见。计数器在每个更改开始时从零开始。它每显示一个类别增加一次,而不是每个响应增加一次。因此选择公交车显示一个类别,而不是十八个类别。

    追踪。 选择公交车。步行和骑行变得隐藏。公交车保持可见,状态显示“显示1个交通类别”。选择所有类别。隐藏条件对所有行为假,因此状态恢复到三个类别。

    主题按钮添加或删除深色类。其标签描述下一个操作。更新textContent会更改文本;不会将该文本视为HTML。状态区域可以向辅助软件宣布更改后的计数。使用中心提供的工具检查实际行为。

    渐进增强 渐进增强意味着在有额外功能之前,有用的基本内容即可工作。示例直到附加了它们的监听器才显示交互控件。没有JavaScript,完整的表格、方法和章节链接仍然有效。筛选器更改视图,而不改变底层计数或研究限制。

    Check, publish and maintain the site

    在任何授权发布之前,记录实用检查的结果。打开每个链接,使用键盘,放大文本并尝试手机大小的布局。检查两种主题以及第二个浏览器或设备。验证如果可选脚本不可用,完整内容是否仍然有效。阅读错误而不是隐藏它们。

    相对路径 相对路径指从另一个位置描述的文件位置。对于作为report.pdf保存在你页面旁边的一份经批准报告,HTML链接可以使用href="report.pdf"。使用有意义的标签并标识PDF。仅在拥有实际报告时才添加它;不要留下损坏的示例链接。检查主机上的文件名及大小写。

    一个静态网站 静态网站可以托管已存储的HTML、CSS、脚本和图片。浏览器仍可以运行交互式JavaScript。域名 域名是人们使用的地址;托管服务提供传输文件的服务。仅有一个域名并不会上传你的网站。

    使用您所在中心的批准发布流程。检查媒体许可,并删除私人草稿或参与者信息。一起上传所需文件。打开实际的公共URL,并在该处验证路径、显示效果和控件。本地预览成功并不代表正式发布成功。

    保留可编辑的源文件和已知可用的副本。修订时,请检查更改及其受影响的链接。记录版本和日期。仅修正本地文件并不会更新托管副本,直到经批准的发布流程将其交付为止。

    Connect the website to academic work and promotion

    网站应补充您的报告和演讲。其概览应提供明确的问题、一个有用的结果以及研究的局限性。完整报告包含详细的证据和参考文献。演讲中的幻灯片可以展示页面地址或已批准的二维码。请检查链接是否指向预期的版本。不要声称实践计数是真实的研究发现。

    对于推广,首先定义受众和目标。例如:在项目周期间帮助同学找到已批准的报告。规划一条符合规定的帖子,包含简短准确的描述、有意义的链接文本和指定负责人。遵守中心规则和平台要求。规划帖子并不等同于实际进行了推广。

    展示次数 展示次数 count 在平台定义下显示。曝光量通常指平台定义下的独立账户数。两者均不代表阅读报告的实际人数。点击率 点击率 needs a stated numerator and denominator。

    虚构示例。 帖子A获得400次展示和20次链接点击。帖子B获得250次展示和25次链接点击。使用链接点击除以展示次数计算,A的值为$20/400=5\%$,B的值为$25/250=10\%$。尽管B的展示次数较少,但其链接点击数更多。

    这些数字不能证明B的文案导致了差异。发布时间、受众和重复点击可能不同。链接点击也不能证明报告已加载或被阅读。请选择一项更改,记录其上下文,并比较与目标相符的指标。将不必要的个人追踪排除在任务之外。

    Practice and explained answers

    问题。 1。方法(Method)链接指向哪个元素?2。筛选器对“骑行”(Cycling)应显示什么内容?3。筛选是否改变了原始总数36?4。不使用JavaScript时,哪些内容仍然可用?5。为什么仅购买域名不足以启动项目?6。帖子C有600次展示和24次链接点击。求其比率。7。B较高的比率是否证明其文案更好?8。列举完成网站任务的证据。

    解释答案。 1。ID为method的元素;片段和ID必须匹配。2。仅显示“骑行”的行,包含六条响应和一个类别。3。否;它改变可见行,而非原始数据集。4。文本、完整表格、方法和章节链接;可选控件保持隐藏。5。文件仍需经批准的托管和交付,然后在实际URL处进行检查。6。$24/600=4\%$。7。否;其他差异和测量限制仍然存在。8。展示您的计划、来源、工作页面、检查及所需的发布、学术和推广证据。

  • 3

    GAC017 计算机 III:数据科学与网页应用

    观看课程
    3.1

    这个模块讲什么,如何评分

    GAC017是第三级计算模块:网站背后的内容。六个单元涵盖后端 JavaScript、数据库、SQL、连接两者,以及数据科学的初步介绍。

    评估完全是实践性的——你设计和构建的数据库、与之交互的网络应用、数据分析项目以及课程作业——通常分散在整个学期的大部分时间,而不是集中在期末。 与网络应用进行通信的数据分析项目,以及课程作业——通常 分散在整个学期,而不是集中在期末。

    • 工作的评判标准在于它是否运行并回答了问题,而不是代码量的多少。
    • ⚠ 在编写查询之前,请先设计数据库。后续几乎所有问题都涉及表 穿着查询的服装。

    此处的每个 SQL 示例均可在站点自带的代码沙箱中运行,且其中的 SQL 参考 此处的每个 SQL 示例均可在本网站的代码沙箱中运行,那里的 SQL 参考资料是这些笔记的更完整版本。

    词汇 训练
    English 中文 拼音
    SQL/ˌes kjuː ˈel/ 结构化查询语言 jié gòu huà chá xún yǔ yán
    3.1

    用于网页应用后端的 JavaScript

    教学大纲

    本单元属于 GAC017 计算机 III:数据科学与网页应用(Level III)6个单元中的第1单元。该模块教学时长约为40课时,外加20小时自主学习时间,由教学中心进行评估并由ACT进行 moderation(质量监控)——无外部考试。

    模块目标: 完成本模块后,学生应能够创建网页应用。学生将学习后端编程以及如何创建动态网站。他们还将学会使用 SQL 分析多表数据,以做出明智的决策。

    本单元旨在实现以下模块成果:

    学习目标 GAC017.1: 理解网页应用的基本组成部分。

    来源:Cambridge International 教学大纲

    • 前端 前端在浏览器中运行;后端 后端在服务器上运行并保存 浏览器不能访问的内容。
    • 服务器 服务器接收请求 请求并返回响应 响应。这个循环构成了整个架构。 整体架构。
    • API 应用程序接口是这些请求和响应的约定格式。
    • ⚠ 任何秘密内容——密码、密钥——仅属于后端。浏览器中的代码对每个访问者都是可读的。 任何访问者均可阅读。
    词汇 训练
    English 中文 拼音
    API/ˌeɪ piː ˈaɪ/ 应用程序接口 yìng yòng chéng xù jiē kǒu
    route/ruːt/ 路由 lù yóu
    Validate input/ˈvælɪdeɪt ˈɪnpʊt/ 校验输入 jiào yàn shū rù
    SQL injection/ˌes kjuː ˈel ɪnˈdʒekʃn/ SQL 注入 SQL zhù rù
    3.2

    后端编程

    教学大纲

    GAC017 计算 III:数据科学与网页应用(三级) 课程的第 2 单元(共 6 个单元)。本模块教学时长约 40 学时,另加 20 学时自学,由教学中心进行考核并由 ACT 进行 moderation(审核/调节)——无外部考试。

    本单元旨在实现以下模块成果:

    学习目标 GAC017.2: 使用脚本语言修改后端应用程序,使其能够与数据库进行交互。

    来源:Cambridge International 教学大纲

    • 路由 路由将 URL 映射到在该 URL 被请求时运行的代码。
    • 在服务器端校验输入。在浏览器中检查只是对诚实用户的便利,而非防御手段。 用户,而非防御。
    • 永远不要通过拼接字符串来构建查询 使用用户输入。这就是发生 SQL 注入 SQL 注入的方式,也是本单元旨在防止的安全漏洞。 发生 SQL 注入,这正是本单元旨在防范的安全漏洞。
    • 返回真实的状态码:200 表示成功,400 表示错误请求,404 表示不存在。 不在那里。
    3.3

    数据库入门

    教学大纲

    这是 GAC017 计算 III:数据科学与网络应用(三级)6个单元中的第3个单元。该模块授课时间约为40学时,另需20小时自主学习,由教学中心进行评估并由ACT进行 moderation(审核/校准)——无外部考试。

    本单元致力于实现以下模块成果:

    学习目标 GAC017.3: 创建包含多个表的数据库。

    来源:Cambridge International 教学大纲

    • relational database(关系数据库)把数据存放在由行和列组成的 tables(表)里。
    • 主键 主键唯一标识一行。外键 外键指向另一个表的主键,该指针即为关系。 表的主键,而该指针即为关系。
    • 规范化 规范化消除重复数据,使一个事实只存储在一个地方。
    • 通过询问什么是实体 实体,然后是什么将它们连接起来来进行设计。

    例题。 一所学校希望存储学生、课程以及谁选修了哪些课程。两个表无法做到这一点:一个学生选修多门课程,一门课程有多个学生。多对多关系需要一个第三张表——选课表——其行是(学生,课程)对。认识到需要这张第三张表是本模块中最有用的数据库概念,也是大多数初步设计出错的地方。

    两张表无法实现:一名学生选修多门课程,一门课程也有多名学生。该 多对多关系需要一个第三张表——选课表(enrolments),其行由(学生,课程)对组成。

    认识到需要这个第三张表是⟦database⟧中最有用的概念之一 模块,而大多数初始设计都在此出错。

    词汇 训练
    English 中文 拼音
    database/ˈdeɪtəbeɪs/ 数据库 shù jù kù
    web app/web æp/ 网络应用 wǎng luò yìng yòng
    data analysis project/ˈdeɪtə əˈnæləsɪs ˈprɒdʒekt/ 数据分析项目 shù jù fēn xī xiàng mù
    front end/frʌnt end/ 前端 qián duān
    back end/bæk end/ 后端 hòu duān
    server/ˈsɜːvə/ 服务器 fú wù qì
    request/rɪˈkwest/ 请求 qǐng qiú
    response/rɪˈspɒns/ 响应 xiǎng yìng
    relational database/rɪˈleɪʃənl ˈdeɪtəbeɪs/ 关系数据库 guān xì shù jù kù
    tables/ˈteɪblz/ 表 biǎo
    primary key/ˈpraɪməri kiː/ 主键 zhǔ jiàn
    foreign key/ˈfɒrən kiː/ 外键 wài jiàn
    Normalisation/ˌnɔːməlaɪˈzeɪʃn/ 规范化 guī fàn huà
    entities/ˈentɪtiz/ 实体 shí tǐ
    3.4

    用于后端编程的 SQL

    教学大纲

    这是 GAC017 计算 III:数据科学与 Web 应用(三级)6 个单元中的第 4 个单元。该模块授课时长约为 40 课时,外加 20 课时的自主学习时间;考核由教学中心进行并由 ACT 进行 moderation( moderation 指审核/校准评分标准),无外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC017.4: 使用 SQL 分析数据以辅助决策。

    来源:Cambridge International 教学大纲

    • SQL 结构化查询语言向数据库提问。SELECT … FROM … WHERE … 是核心。
    • JOIN 连接基于匹配键将两个表的行组合在一起。
    • GROUP BY 分组配合 COUNT、SUM 或 AVG 回答“每……有多少”的问题。
    • ⚠ WHERE 在分组之前过滤行;HAVING 在分组之后过滤组。用错它们是经典的 SQL 错误,通常返回看似合理但错误的答案。 经典的 SQL 错误,它通常会返回一个看似合理但错误的结果。

    例题。 哪些课程的学生人数超过 20 人?

    SELECT c.title, COUNT(*) AS students
    FROM enrolments e
    JOIN courses c ON c.id = e.course_id
    GROUP BY c.title
    HAVING COUNT(*) > 20;
    

    计数是组的属性,因此过滤器应为 HAVING。如果写成 WHERE 则无法运行——而当类似的错误运行时,它会无声地回答不同的问题。 运行——当类似的错误再次运行时,它会无声地回答另一个问题。

    词汇 训练
    English 中文 拼音
    JOIN/dʒɔɪn/ 连接 lián jiē
    GROUP BY/ɡruːp baɪ/ 分组 fēn zǔ
    parameterised query/ˌpærəˈmetəraɪzd ˈkwɪərɪ/ 参数化查询 cān shù huà chá xún
    3.5

    将 JavaScript 与 SQL 连接

    教学大纲

    这是 GAC017 计算 III:数据科学与 Web 应用(III 级)6 个单元中的第 5 个单元。该模块教学时长约为 40 学时,另需 20 学时自主学习,由教学中心进行评估并由 ACT 进行 moderation——无外部考试。

    本单元致力于实现以下模块成果:

    学习目标 GAC017.2: 利用脚本语言修改后端应用程序以与数据库交互。

    学习目标 GAC017.4: 使用 SQL 分析数据以辅助决策。

    来源:Cambridge International 教学大纲

    • 后端接收请求,运行参数化查询 参数化查询,并将结果行作为数据返回,通常是 JSON 数据交换格式。 data,通常为 JSON 数据交换格式。
    • 参数化意味着值与查询文本分开传输。这使得注入成为不可能,而不仅仅是不太可能。 注入不可能,而非不太可能。
    • 处理空结果的情况。返回零行的查询是正常的,因它而崩溃的页面尚未完成。 未完成。
    词汇 训练
    English 中文 拼音
    JSON/ˈdʒeɪsn/ 数据交换格式 shù jù jiāo huàn gé shì
    Data science/ˈdeɪtə ˈsaɪəns/ 数据科学 shù jù kē xué
    Descriptive statistics/dɪˈskrɪptɪv stəˈtɪstɪks/ 描述性统计 miáo shù xìng tǒng jì
    visualisation/ˌvɪʒuːəlaɪˈzeɪʃn/ 可视化 kě shì huà
    Correlation is not causation/ˌkɒrɪˈleɪʃn ɪz nɒt kɔːˈseɪʃn/ 相关不等于因果 xiāng guān bù děng yú yīn guǒ
    3.6

    数据科学

    教学大纲
    • GAC017 计算机 III:数据科学与网络应用(三级)第 6 单元中的第 6 个单元。该模块授课约 40 学时,外加 20 学时自主学习,在教学中心进行评估并由 ACT 进行 moderation(质量审核/协调评估)——无外部考试。

    本单元旨在实现的模块成果:

    学习目标 GAC017.5: 将数据科学应用于其他学术领域。

    来源:Cambridge International 教学大纲

    • 数据科学 数据科学将数据转化为决策,而大部分工作发生在分析之前:清洗、连接和检查数据所能支持的内容。 分析:数据清洗、整合,以及评估数据所能支持的内容。
    • 描述性统计 描述性统计进行总结;可视化 可视化展示形状;两者都不能证明因果关系。 证明了因果关系。
    • 相关不等于因果 相关不等于因果——这是每个数据项目都需要提及而大多数项目忽略的句子。 省略。
    • 陈述数据集的局限性。明确指出其数据无法显示什么的项目,得分高于那些悄悄夸大其词的项目。 高于1的分数,悄悄夸大其词。
    Additional notes PDF

    Follow one request from browser to database

    教师询问哪些俱乐部还有名额。电子表格可以一次性回答。 Web应用允许读者使用不同的筛选条件再次提问。

    我们的示例中有四名学生、四个班级和五次报名。所有记录均为虚构。 这是一个学习项目,而非学校预订服务。

    三个部分有不同的职责:

    部分 示例中的职责 运行位置
    浏览器页面 收集最小值并显示表格 读者的浏览器
    JavaScript服务器 检查请求并运行查询 本地服务器
    SQLite数据库 存储相关记录并计算课程总计 在该服务器进程内部

    HTTP请求 请求信息 要求获取资源。HTTP响应 响应信息 包含状态和内容。 浏览器发送GET /api/courses?min=2。服务器检查该数值,然后向SQLite查询课程总计。 它返回一个 JSON 对象 ⟦数据对象⟧。浏览器读取该对象并创建表格单元格。 数据库不会向浏览器发送 HTML。浏览器也不会运行我们服务器的 SQL 语句。

    使用 node server.mjs 启动提供的三文件示例。打开它打印出的地址。 使用 Node.js 22.13 或更高版本,并配合内置的 SQLite 模块。 请保留 server.mjs、index.html 和 courses.sql 在您自己的练习副本中。 无需注册账户或下载软件包。使用 Ctrl-C 停止自己的服务器。

    从站点的静态教学文件夹获取完整示例文件:

    • /static/teaching/gac_computing/database-app/server.mjs
    • /static/teaching/gac_computing/database-app/courses.sql
    • /static/teaching/gac_computing/database-app/index.html.txt
    • /static/teaching/gac_computing/database-app/README.txt

    将前两个文件按显示的名称保存。将 index.html.txt 另存为 index.html。 最后一个文件包含完整的运行和修改说明。 在站点地址后使用这些路径。页面文件以文本形式提供供下载。 它必须通过本地示例服务器运行才能访问对应的 API。

    此示例使用 内存数据库 ⟦in-memory database⟧。重启后会重新生成原始记录。 文件系统数据库可在重启后保留更改。这需要不同的存储方案。

    Design relationships before writing queries

    每个学生对应 students 中的一行。每个班级对应 courses 中的一行。 选课记录将学生与班级关联起来。一名学生可能选修多个班级。 一个班级可能包含多名学生。这是一种 多对多关系 ⟦many-to-many relationship⟧。 第三张表每行存储一个学生-班级配对。

    学生 1 选修了课程 10 和 20。课程 10 包含学生 1、2 和 3。 同一学生姓名不必在每个选课记录行中重复出现。 要修改 Mei 的姓名,只需更改一条学生记录。这样可以避免数据冲突。

    以下两个代码块构成一个完整脚本。请在新建的空练习数据库中按顺序运行它们。 请勿针对现有的项目数据库运行此脚本。

    PRAGMA foreign_keys = ON;
    CREATE TABLE students (
      id INTEGER PRIMARY KEY,
      name TEXT NOT NULL
    );
    CREATE TABLE courses (
      id INTEGER PRIMARY KEY,
      title TEXT NOT NULL,
      capacity INTEGER NOT NULL CHECK (capacity >= 0)
    );
    CREATE TABLE enrolments (
      student_id INTEGER NOT NULL REFERENCES students(id),
      course_id INTEGER NOT NULL REFERENCES courses(id),
      PRIMARY KEY (student_id, course_id)
    );
    

    此时表已创建。添加虚构记录,然后查询每个班级的总数。

    INSERT INTO students VALUES
      (1, 'Mei'), (2, 'Kai'), (3, 'Lin'), (4, 'Jia');
    INSERT INTO courses VALUES
      (10, 'Coding', 3), (20, 'Coding', 2),
      (30, 'Art', 2), (40, 'Music', 3);
    INSERT INTO enrolments VALUES
      (1, 10), (2, 10), (3, 10), (1, 20), (4, 30);
    SELECT c.id, c.title, c.capacity,
           COUNT(e.student_id) AS enrolled
    FROM courses c
    LEFT JOIN enrolments e ON c.id = e.course_id
    GROUP BY c.id, c.title, c.capacity
    ORDER BY enrolled DESC, c.id;
    

    约束(constraint)会拒绝违反规则的数据。 NOT NULL 要求必须有值。CHECK (capacity >= 0) 拒绝负数容量。 配对外键主键会拒绝重复的选课记录,例如两次出现 (1,10)。 任一 ID 均可出现在多组配对中,但配对本身必须唯一。

    当启用外键检查时,外键会拒绝缺失的学生或班级记录。 该脚本显式启用了该项检查。外键不会自动创建缺失的行。 这些规则无法杜绝所有错误。例如,容量设置 3 本身并不限制选课人数为 3。 实际的预订操作需要增加容量检查,并妥善处理并发预订的情况。

    Count classes without losing empty ones

    课程 10 和 20 的标题均为“编程”(Coding),但它们是不同的班级。 除标题和容量外,还需按课程 ID 进行分组。 仅按标题分组会导致其选课记录被合并,从而得出错误的结论。

    LEFT JOIN 保留所有课程,包括没有选课记录的“音乐”课。 未匹配的课程对应的选课部分为空。 COUNT(e.student_id) 统计已匹配的 student ID 数量,并为“音乐”课返回零。 COUNT(*) 统计连接后的行数,包含上述未匹配行,因此会给“音乐”课计数为一。

    ID 课程 容量 已选课 剩余名额
    10 编程 3 3 0
    20 编程 2 1 1
    30 艺术 2 1 1
    40 音乐 3 0 3

    浏览器通过容量减去已报名人数来计算剩余名额。 存在五条报名记录,但仅有四名学生。梅出现在两条报名记录中。 不要将五视为唯一学生的人数。

    若要保留至少包含两名学生的班级,请在 GROUP BY 之后添加此行:

    HAVING COUNT(e.student_id) >= 2
    

    这是一个查询片段,添加到完整查询中。它仅返回课程 10。 HAVING 检查每组的总数。WHERE 在计算总数之前检查单独的行。 例如,WHERE c.id = 20 在分组前选择单个班级;它不测试其总数。

    Validate and bind the backend input

    该路由 /api/courses 接受来自 0 到 99 的最小值。 浏览器数字控件帮助用户输入该数值。直接请求可跳过该控件。 因此服务器会再次检查输入内容。

    它会拒绝负数、小数、100、重复的最小参数以及文本。 缺失的 min 表示零。没有课程的成功查询仍然是有效请求。

    请求 状态 含义
    GET /api/courses?min=2 200 找到一门课程
    GET /api/courses?min=4 200 有效查询;空列表
    GET /api/courses?min=-1 400 无效输入
    GET /missing 404 路由不存在
    POST /api/courses 405 此只读路由接受 GET 请求

    预编译语句(prepared statement)将 SQL 结构与值分离开来。 服务器使用 >= ? 准备其按课程统计的查询,然后调用 courses.all(minimum)。 绑定的数值填入值占位符位置,但不会拼接进 SQL 文本中。

    绑定值可防止该值通过注入攻击危害此查询。 但这并不能证明所有路由或操作都是安全的。 SQL 关键字和列名不能作为普通绑定值提供。 保持查询结构固定,或从服务器允许的选项中进行选择。

    服务器仅发送公开的课程统计数据,学生姓名不包含在此响应中。 实际记录还需访问规则和权限才能使用。 虚构示例无需真实的学生信息。

    Handle loading, empty results and failures

    浏览器使用 fetch 请求数据,必须检查响应状态。 完成的网络请求仍可能返回 400 或 500。 浏览器的 response.ok 用于区分成功的 HTTP 响应与错误响应。

    页面在加载前会清除旧行,否则失败的请求可能导致旧结果看似最新。 请求期间显示加载消息并禁用加载按钮。 随后显示结果、空消息或失败消息。 按钮恢复可用状态,以便用户重试。

    每个显示的数值应填入 textContent,而不是填入由数据字符串构建的 HTML 中。 课程标题作为文本置于单元格内,不被视为页面标记语言。

    该示例使用请求编号,在发起新请求后忽略较旧的响应。 这可以防止页面因延迟响应而替换最新结果。 它不会修改数据库记录,也不能保证预订的安全。

    依次尝试最小值 0、2 和 4。预期结果分别为四门课程、一门课程和无课程。 然后停止服务器并再次尝试加载。页面应解释失败原因并允许重试。 重新启动服务器并再次加载。原始虚构数据集应返回。

    Turn results into a supported academic decision

    以一个问题开始:目前哪些班级还有剩余名额? 说明你的分析单位:一个班级,通过课程ID进行标识。 在分析之前,检查缺失值、重复的注册对、有效的ID以及非负容量。 在真实报告中注明数据日期,因为注册人数可能会发生变化。

    当前答案为:编程 20、艺术 30 和音乐 40。 音乐班有三个剩余名额;其余两个班各有一个。 教师在宣布这些名额前,可以先核实它们是否仍然可用。

    可以使用条形图来比较每个课程ID的注册人数与容量。 将两个编程班分开显示,并用它们的ID进行标注。 展示音乐班的零注册人数。不要因其条形较短而将其隐藏。

    解释此决定的局限性。这些记录描述的是某一时刻四个虚构的班级。 它们无法衡量教学质量、未来需求或学生选择某门课程的原因。 更多的注册人数并不能证明某门课程带来了更好的学习效果。 避免使用描述性计数作为因果主张的证据。

    一份简短报告可采用五个部分:问题、数据与核查、方法、结果、局限及后续行动。 包含查询语句或注明计算名称,以便其他读者能够复现结果。 将学生人数与注册人数分开统计。

    Practise with changes and explain your answers

    1. 绘制三张表的草图。它们之间通过哪些键连接?为什么需要第三张表?
    2. 在运行任一查询之前,预测最小 1 和最小 3 的值。
    3. 将 COUNT(e.student_id) 替换为 COUNT(*)。哪个原始结果会出错,原因是什么?
    4. 仅按标题分组。两个编程类课程会发生什么变化?
    5. 添加课程 50(戏剧),容量为 2,且无注册人数。预测其总人数和剩余名额。
    6. 添加注册记录 (2,20)。此时最小 2 应返回什么值?
    7. 尝试重复配对 (1,10) 和缺失学生配对 (99,10)。解释每种情况被拒绝的原因。
    8. 为什么服务器必须检查浏览器已经验证过的最小值限制?
    9. 解释为何空数组会返回 200,而负数最小值会返回 400。
    10. 使用原始数据撰写两条建议句和一个局限性说明。

    答案解析

    1. 学生ID和课程ID将关联的注册表与其父表连接起来。 第三张表表示多名学生参与多门课程,同时避免了姓名或课程信息的重复。
    2. 最小 1 返回 10、20 和 30。最小 3 仅返回 10。两个过滤器均包含等值条件。
    3. 音乐类的数值由零变为一。COUNT(*) 统计了保留下来的未匹配课程行。
    4. 编程类的总数合并为四。这描述的是标题分组,而非单个具体课程。
    5. 戏剧类课程注册人数为零,尚余两个名额。左连接操作使其保留在最小 0 中。
    6. 编码 20 现在有两名学生注册。最低 2 返回 ID 10 和 20,总数分别为三和两。
    7. 配对外键拒绝了重复项。已启用的外键拒绝学生 99,因为该学生不存在。
    8. 调用者可以在不使用页面的情况下发送请求。仅靠浏览器检查无法保护服务器。
    9. 无匹配行是一个成功的查询。负数最小值违反了 API 的输入规则。
    10. 在提供课程之前,请检查编码 20、艺术 30 和音乐 40 的剩余名额。 在此示例中,音乐课程的剩余名额最多。虚构的总数无法预测实际的学生需求。

登录或创建账户

IGCSE, A-Level & AP