作为 80 年代的孩子,我的学生时代记忆充满了学习如何在微型、功能有限的计算机上编程,例如 Sinclair ZX Spectrum、Commodore 64 和 BBC Micro。我甚至有一个袖珍型 Tandy PC-6,带有一个单行显示屏。 它们可能功能有限,但学习如何编程这些机器给了我们通往世界的钥匙。
当我 9 岁时,我是一个课后计算机俱乐部的成员——在那里,讲义是用气味独特的 油印纸 分发的(因为我们买不起真正的打印机!),我们在那里用 BASIC 编写自己的程序,并存储在磁带上,或者对于少数幸运儿来说,存储在 5.25 英寸软盘 上。我们学习了循环、布尔逻辑、函数和数组——基本计算机科学的构建模块。然而,更重要的是,我们了解到编程不仅仅是目的本身——它让你能够以非程序员永远无法做到的方式探索和推理世界。 如果你能编写代码,你就能理解它。
任何了解计算机历史的人都知道,即使是最便宜的现代笔记本电脑也比我在 80 年代能接触到的任何东西强大数千倍。 甚至有可能以一杯花哨咖啡的价格购买一台现代、功能齐全的计算机。 然而,鲜为人知的是,讲义也得到了升级。
免费和开源的 Jupyter notebook 是一种将格式丰富的文本、数学和交互元素与可执行计算机代码相结合的方式——所有这些都来自熟悉的 Web 浏览器环境。 有些人认为它将 改变未来儿童学习科学的方式。 事情已经从我年轻时的油印机发展而来。
我在谢菲尔德大学的讲师和研究人员热情地采用了 Jupyter notebook 及其周围的生态系统。 该生态系统的一个关键部分是 SageMathCloud,这是一个基于云的平台,进一步扩展了 notebook 的概念。 SageMathCloud 允许您运行 Jupyter notebook,而无需安装任何专用软件,并且还允许多人同时编辑同一个 notebook——提供类似于 Google Docs for notebook 的功能。
作为谢菲尔德大学新的 研究软件工程职能部门 的一部分,我一直在努力帮助生物医学科学、物理学、数学和计算机科学等领域的讲师掌握 Jupyter notebook 和 SageMathCloud。 这项工作的一个成果是为教育工作者提供的 一系列教程,内容是如何使用 SageMathCloud 来 创建 和 管理 基于 notebook 的课程。 它还包括 功能导览 和一系列 技巧和窍门。 这些材料在 GitHub 上协同开发,将随着时间的推移不断改进和发展。
我们使用这种技术堆栈交付的课程的初步反馈非常棒。 我最喜欢的引言来自 Marta Milo 博士和我开发的生物信息学课程的一位学生,我们在六周内教授了编程、生物信息学和云计算的基础知识:“有史以来最难的事情,压力大,令人沮丧,但非常有回报。” 在我听来,他们的话语来自一位刚刚学会以新的方式思考他们学科的人。
1 条评论