软件工程领域的职业令人羡慕,这已不是什么秘密。 事实上,美国新闻与世界报道最近将软件开发评为 2022 年美国最好的工作之一,这是基于求职者最渴望的品质:高薪、低压力水平、就业增长和就业前景。 并且与该列表中的大多数其他工作不同,软件开发不需要高等学历(或者根本不需要任何学历)。
然而,计算机科学 (CS) 仍然让人觉得是一个难以进入的领域。 根据 code.org 最新的年度 CS 现状报告,美国只有 51% 的高中向学生提供基础计算机科学课程。 每年只有 4.7% 的高中生注册这些基础课程。 对于任何希望孩子选择计算机科学职业的父母来说,这些统计数据似乎令人望而却步,尤其是对于那些自己没有任何软件开发背景的父母。
幸运的是,许多高中水平的基础计算机科学课程中使用的课程和工具是完全免费和开源的。 无论您是希望向孩子介绍基础计算机科学原理的家长,还是希望自己学习这些原理,本文都将向您介绍在家中完成此课程所需的工具。
计算之美与乐趣
“计算之美与乐趣”(BJC) 课程 是加州大学伯克利分校、教育发展中心和各种其他机构共同努力的结果。 它由国家科学基金会资助,自 2008 年以来一直在开发中。 他们最初在加州大学伯克利分校开设的计算机科学导论课程(计算之美与乐趣)中使用该课程。 他们专门修改了它,以解决大学理事会相对较新的 AP 计算机科学原理 (AP CSP) 课程的课程框架和考试。 这个针对高中生的课程版本于 2016-17 学年首次提供 AP 考试。 大学理事会已将 BJC 课程认可为课程(针对参加 AP CSP 的学生)和专业发展(针对想要教授 AP CSP 的教师)的认可提供者。 这意味着该课程非常适合对掌握计算机科学基本基础知识感兴趣的青少年或成人学习者。 此外,他们根据 Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License 授权该课程。 此许可证意味着任何人都可以公开复制和以任何媒介或格式重新分发,并且可以免费供公众使用。
该课程包括八个难度逐渐增加的单元,介绍从简单循环到递归函数的编码概念。 每个单元包含几个实验室,这些实验室贯穿整个单元构建复杂性和理解,并且每个实验室都包含有关如何完成实验室的具体说明(带有屏幕截图!)。 实验室还包含可选活动(例如将学生编程的游戏导出到他们的手机),这些活动为学生提供了额外的挑战,并将他们的学习与他们自己的世界联系起来。 单元还提供额外的可选项目(例如模拟 Etch A Sketch 玩具),以加强他们所学的内容并复习资源,以帮助学生在每个单元后自我检查他们的理解。
总的来说,BJC 课程为学生提供了有趣且引人入胜的学习活动,同时也邀请学生深入思考每个概念,并通过故障排除和调查进行学习。 BJC 课程的最佳品质之一是其可访问性:学生可以学习各种计算机科学原理,而无需下载特殊软件或学习高级编程语言。 BJC 通过使用专门构建的工具与课程结合使用来实现这一点。
Snap! 编程语言
Snap! 是加州大学伯克利分校、SAP 和各种其他机构共同开发的工具,用作学生和成人使用 BJC 课程学习计算机科学基础知识的主要学习工具。 Snap! 源代码 完全是开源的,并根据 GNU Affero General Public License v3.0 获得许可。 Snap! 是一种可视化的拖放式编程语言,完全基于浏览器,并具有使用一流数据类型(例如整数、变量、参数和数组)、过程和延续的能力。 这使得 Snap! 足够强大,可以作为计算机科学的严肃入门,同时也可以通过其可视化、拖放的特性实现高度的可访问性。 由于 Snap! 基于浏览器,学习者可以通过任何计算机、手机或平板电脑访问它,而无需购买或安装额外的或专门的软件。
在 Snap! 中,代码块像拼图一样组合在一起,使用平台的预构建片段或学生自己创建的片段。 这些片段的工作方式与真实的代码片段完全一样,教学习者如何思考循环、函数和顺序等编程概念,而无需担心语法或编译错误。 这是一个 Snap! 中的代码块的示例:

计算之美与乐趣课程和 Snap! 编程语言的结合使青少年和成人学习者都能够免费、按照自己的节奏以及在自己舒适的家中掌握计算机科学的基础原理。 该课程的高质量以及 Snap! 编程语言的易于访问性使这款开源工具成为学习计算机科学基础知识的最佳方式之一。
面向年轻学习者的 Scratch 和 ScratchJr 编程语言
虽然 BJC 课程和 Snap! 编程语言的目标是青少年和成人学习者,但也有一些工具适用于 5 岁以下的儿童。 与 Snap! 类似的开源工具也可用。 事实上,Snap! 是 Scratch 的扩展重新实现,Scratch 是一种面向 8-16 岁儿童的可视化拖放式编程语言。 对于 5-7 岁的儿童,ScratchJr 是一个流行的选择。 虽然 Scratch 和 ScratchJr 没有完全开发的课程来帮助学习过程,但它们包括指南和建议的活动来帮助吸引年轻的学习者 - 教他们各种技能,使他们将来能够在 BJC 等基础计算机科学课程中取得成功。
【另请阅读:用 Scratch 编写你的第一个算法】
计算机科学适合所有人
虽然计算机科学是大多数父母乐于让他们的孩子进入的领域,但中学后水平以下提供的计算机科学课程的低可用性,以及注册这些课程的学生的低百分比,可能会让父母和学生一样,不确定有哪些资源可用于向年轻学习者介绍基本的计算机科学原理。 然而,存在大量的免费和开源选项,使父母和学生能够掌握这些原则,包括面向 5-7 岁儿童的 ScratchJr、面向 8-16 岁儿童的 Scratch,以及面向青少年和成人学习者的 Snap! 和计算之美与乐趣课程。 这些工具的易于访问和使用,再加上研究和开发,使所有年龄段的学习者都能够获得必要的知识和技能,从而在计算机科学领域开创事业。
评论已关闭。